在Cocoa Touch Framework中包装静态库

时间:2017-04-11 08:33:08

标签: ios objective-c swift xcode cocoa-touch

我有一个带有2个架构片的胖静态库(armv7,arm64)。 我尝试使用swift并将其包装到Cocoa Touch Framework中。

我的所作所为:

  1. 创建Cocoa Touch Framework项目
  2. 拖动带标题的静态库
  3. <div data-options="dxTemplate:{ name:'lookupEditCell' }" dx-item-alias="cell"> <div dx-lookup="{ dataSource: cell.data.Company, valueExpr: 'ID', displayExpr: 'Name', onValueChanged: $parent.valueChangeAction }"></div> </div> 设为OTHER_LDFLAGS
  4. -all_load设为ONLY_ACTIVE_ARCH
  5. NOVALID_ARCHS设为ARCHSarmv7
  6. 使用发布版本配置构建
  7. 从DerivedData /../../ Products /
  8. 获取.framework文件

    当我将此.framework放入我的swift项目时,在我的目标常规设置中添加嵌入式二进制文件部分,导入框架并使用其中一个类,我得到arm64或{{1} }。

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

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

1 个答案:

答案 0 :(得分:3)

我想你也忘了添加:

项目 - &gt; 目标 - &gt; 构建阶段 - &gt; 将二进制文件链接到库: 添加+:libz.dyliblibz.tbd (由于Xcode 7 *.dylib文件是now *.tbd个文件)

请务必同时清除文件夹:/User/yourname/Library/Developer/XCode/DerivedData

PS:如果您需要,还应该能够通过添加参数在构建设置中添加来自“其他链接器标志”libz.tbd - LZ