在Cocoa Touch Framework中包装静态库

我有一个胖的静态库,有2个架构片(armv7,arm64)。 我试图使它与swift一起工作,并将其包装到Cocoa Touch Framework中。

我做的事:

  • 创建Cocoa Touch Framework项目
  • 将.a静态库与标题拖动
  • OTHER_LDFLAGS设置为-all_load
  • ONLY_ACTIVE_ARCH设置为NO
  • VALID_ARCHSARCHS设置为armv7arm64
  • 用发布构建配置构建
  • 从DerivedData抓取.framework文件/../../ Products /
  • 当我将这个.framework放入我的swift项目中时,在我的目标常规设置中添加到嵌入式二进制文件部分,导入框架并使用其中的一个类,我得到undefined symbols for architecture arm64undefined symbols for architecture armv7

    编辑:
    不知道它是否有帮助,但我注意到,静态库的大小约为34MB,但生成的.framework的大小约为12MB。

    编辑2:
    我在静态库和生成的动态库上运行nm -arch arm64 -g myLibraryName 。 动态库不包含静态库具有的所有符号。 看起来像XCode构建过程剥离了很多。


    我想你也忘了补充一下:

    项目 - > 目标 - > 构建阶段 - > 链接库与二进制文件 :添加+: libz.dyliblibz.tbd (由于Xcode 7 *.dylib文件now *.tbd文件)

    一定要清除文件夹: /User/yourname/Library/Developer/XCode/DerivedData

    PS:如果你想你也应该能够添加libz.tbd通过添加参数-lz从构建设置 “其它链接器标记”。

    链接地址: http://www.djcxy.com/p/76415.html

    上一篇: Wrapping static library in Cocoa Touch Framework

    下一篇: iOS: How to create an independent framework