【问题标题】:iPhone Static Library Issues With Simulator模拟器的 iPhone 静态库问题
【发布时间】:2012-08-22 03:18:35
【问题描述】:

所以我有一个我正在尝试构建的 iPhone 静态库。我有这个问题中使用的脚本(http://stackoverflow.com/questions/3520977/build-fat-static-library-device-simulator-using-xcode-and-sdk-4),但是我遇到的问题是我似乎仍然无法成功地为模拟器构建静态库。当我在静态库项目中构建时,我收到以下警告:

warning: no rule to process file '$(PROJECT_DIR)/GDInAppStore/GDInAppStore.m' of type sourcecode.c.objc for architecture i386
warning: no rule to process file '$(PROJECT_DIR)/GDInAppStore/SKProduct+priceAsString.m' of type sourcecode.c.objc for architecture i386
warning: no rule to process file '$(PROJECT_DIR)/GDInAppStore/VerificationControllerPBK.m' of type sourcecode.c.objc for architecture i386

我相信这个问题导致了导致我从构建脚本获得的通用库导致我的其他项目中出现此错误的问题

ld: warning: ignoring file /Users/abotkin/Projects/Static Libraries/GDInAppStore/libGDInAppStore.a, missing required architecture i386 in file
"_OBJC_CLASS_$_GDInAppStore", referenced from:
objc-class-ref in SubscribeNowInAppController.o
ld: symbol(s) not found for architecture i386

我正在使用 Xcode 4.3.2 并在静态库 Xcode 项目中设置了标志,以便 i386 包含在架构和有效架构中。有什么建议吗?

【问题讨论】:

    标签: iphone xcode ios-simulator i386


    【解决方案1】:

    如果您正在为 i386 编译,请确保您正在为模拟器构建。基本上,您的 arch 参数必须与您的 sdk 参数相匹配。即

    xcodebuild -project proj.xcodeproj -arch armv64 -sdk iphoneos8.1 build

    xcodebuild -project proj.xcodeproj -arch i386 -sdk iphonesimulator8.1 build

    【讨论】:

      【解决方案2】:

      我能够通过使用 Karl 的 iOS 通用框架来解决这个问题,他在此处的另一个主题 https://stackoverflow.com/a/5721978/497718 中提到了这一点

      也就是说,如果有人能指出我在同一主题中使用脚本时可能做错了什么,我很想学习如何以正确的方式去做。

      【讨论】:

        【解决方案3】:

        在 Xcode 6 中,Apple 在其构建工具中添加了 iOS 框架支持。

        对所有新项目使用 Apple 的框架目标,因为它不那么 hacky 并且得到 Apple 自己的支持。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-04-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-03
          • 1970-01-01
          相关资源
          最近更新 更多