模拟器的iPhone静态库问题

时间:2012-08-22 03:18:35

标签: iphone xcode ios-simulator i386

所以我有一个我想要构建的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包含在架构和有效架构中。有什么提示吗?

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

我能够通过使用他在其他主题中提到的Karl的iOS Universal Framework来解决这个问题https://stackoverflow.com/a/5721978/497718

那就是说,如果有人能指出我在同一主题中使用脚本时遇到的错误,我很乐意学习如何以正确的方式做到这一点。

答案 2 :(得分:0)

借助Xcode 6,Apple为其构建工具添加了iOS框架支持。

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