我有一个脂肪静态库与2架构切片(armv7,arm64).
我试图让它与 swift一起工作,并将其包装到 Cocoa Touch Framework中.
我试图让它与 swift一起工作,并将其包装到 Cocoa Touch Framework中.
我做的事:
>创建Cocoa Touch Framework项目
>拖动.a静态库与标题
>将OTHER_LDFLAGS设置为-all_load
>将ONLY_ACTIVE_ARCH设置为NO
>将VALID_ARCHS和ARCHS设置为armv7和arm64
>使用版本构建配置构建
>从DerivedData抓取.framework文件/../../产品/
当我将这个框架放入我的快速项目中时,添加到我的目标常规设置的嵌入式二进制文件部分,导入框架并使用其中一个类,我将获得架构arm64的未定义符号或架构armv7的未定义符号.
编辑:
不知道是否有帮助,但我注意到静态库的大小大约为34MB,而生成的框架的大小大约为12MB.
编辑2:
我在静态库和生成的动态库上运行nm -arch arm64 -g myLibraryName.动态库不包含静态库的所有符号.像XCode构建过程似乎很多.
解决方法
我想你也忘了补充一点:
项目 – >目标 – >构建阶段 – >链接二进制与库:
添加:libz.dylib或libz.tbd
(由于Xcode 7 * .dylib文件现在是* .tbd文件)
确保也清理文件夹:/ User / yourname / Library / Developer / XCode / DerivedData
P.S:如果您希望,还可以通过添加参数-lz在Build Settings中的“Other Linker Flags”中添加libz.tbd.