普遍的 IOS 静态库与 i386 x86_64 armv7 armv7s arm64

标签: ios
发布时间: 2017/4/3 13:20:01
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我需要创建一个可可触摸静态库项目,通用库

我使用的

xcodebuild -target mysdsk ONLY_ACTIVE_ARCH=NO VALID_ARCHS="arm64 armv7 armv7s i386 x86_64" -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"

即使我将拆分为两个 xcodebuild iphonesimulator 还我得不到 i386 为 iphone4 simuator

我得到错误

Undefined symbols for architecture i386

基于如何做确定目标体系结构的静态库 (.a) Mac OS X 上?

我试图运行文件命令,则会显示

mysdsk.a: Mach-O universal binary with 5 architectures
mysdsk.a (for architecture i386): current ar archive random library
mysdsk.a (for architecture armv7): current ar archive random library
mysdsk.a (for architecture armv7s): current ar archive random library
mysdsk.a (for architecture x86_64): current ar archive random library
mysdsk.a (for architecture arm64): current ar archive random library

但我仍然得到错误

Undefined symbols for architecture i386

解决方法 1:

你已经跟随了无论哪种方法,从架构列表中我觉得一切都很好。

这里有一个问题与 XCode,即使您拖放mysdsk.a或更改链接器设置里面,XCode 仍然可以捡一个错误的文件的存储在内部

/Users/<your username>/Library/Developer/Xcode/DerivedData/mysdsk_........ folder

您可以标识从 XCode 警告说 3 片,但实际上 5 片

ld︰ 警告︰ 忽略文件 /Users//Library/Developer/Xcode/DerivedData/mysdsk_.../.../mysdsk.a,缺少所需的架构 i386 在文件 /Users//Library/Developer/Xcode/DerivedData/mysdsk_.../.../mysdsk.a (3 片)

因此删除文件夹 /Users / 图书馆/开发人员/Xcode/DerivedData/mysdsk_...

那么它应该是做工精细,事实上我发现这一问题,另一台机器工作正常,我的机器用不了。

参考忽略文件 [路径] 缺少所需的架构 i386 文件中

官方微信
官方QQ群
31647020