3

所以我有一个我正在尝试构建的 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 包含在架构和有效架构中。有小费吗?

4

3 回答 3

2

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

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

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

于 2014-12-19T17:50:07.523 回答
0

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

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

于 2012-08-22T14:48:35.230 回答
0

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

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

于 2014-12-19T18:03:44.790 回答