我有一个带有2个架构片的胖静态库(armv7,arm64)。 我尝试使用swift并将其包装到Cocoa Touch Framework中。
我的所作所为:
<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
-all_load
设为ONLY_ACTIVE_ARCH
NO
和VALID_ARCHS
设为ARCHS
和armv7
当我将此.framework放入我的swift项目时,在我的目标常规设置中添加嵌入式二进制文件部分,导入框架并使用其中一个类,我得到arm64
或{{1} }。
编辑:
不确定它是否有帮助,但我注意到静态库的大小约为34MB,但生成的.framework的大小约为12MB。
编辑2:
我在静态库和生成的动态库上运行undefined symbols for architecture arm64
。动态库不包含静态库具有的所有符号。看起来像XCode构建过程剥离了很多。
答案 0 :(得分:3)
我想你也忘了添加:
项目 - &gt; 目标 - &gt; 构建阶段 - &gt; 将二进制文件链接到库:
添加+:libz.dylib
或libz.tbd
(由于Xcode 7 *.dylib
文件是now *.tbd
个文件)
请务必同时清除文件夹:/User/yourname/Library/Developer/XCode/DerivedData
PS:如果您需要,还应该能够通过添加参数在构建设置中添加来自“其他链接器标志”的libz.tbd
- LZ