使用Xcode 6,我们可以创建自己的 Dynamic Cocoa Frameworks
。
因为:
模拟器仍然使用
32-bit
库-
从 2015 年 6 月 1 日开始,提交到 App Store 的应用更新必须包含 64 位支持并使用 iOS 8 SDK ( developer.apple.com )构建
我们必须制作胖库才能在设备和模拟器上运行项目。即在框架中支持 32 位和 64 位。
但是我没有找到任何手册,如何导出通用胖框架以供将来与其他项目集成(并与某人共享此库)。
这是我的重现步骤:
设置
ONLY_ACTIVE_ARCH=NO
在Build Settings
添加支持
armv7 armv7s arm64 i386 x86_64
(Architectures
肯定)
- 构建框架并在 Finder 中打开它:
- 将此框架添加到另一个项目
实际结果:
但最后我仍然无法在设备和模拟器上同时运行这个框架的项目。
如果我从
Debug-iphoneos
文件夹中获取框架 - 它适用于设备并在模拟器上出错:ld: symbol(s) not found for architecture i386
xcrun lipo -info CoreActionSheetPicker
胖文件中的架构:CoreActionSheetPicker 是:armv7 armv7s arm64
如果我从
Debug-iphonesimulator
文件夹中获取框架 - 它适用于模拟器。我在设备上有错误:ld: symbol(s) not found for architecture arm64
xcrun lipo -info CoreActionSheetPicker
胖文件中的架构:CoreActionSheetPicker 是:i386 x86_64
那么,如何创建一个适用于设备和模拟器的动态框架呢?
这个答案与Xcode 6 iOS Creating a Cocoa Touch Framework - Architectures 问题有关,但不是重复的。
更新:
我为这种情况找到了一个“肮脏的黑客”。请参阅下面的答案。如果有人知道更方便的方法 - 请告诉我!