iOS 框架适用于 iPhone 5s、6 和 6 Plus,但不适用于其他 iPhone 或 iPad 模拟器



我使用 Swift 在 Xcode 6.1 中创建了一个非常简单的 iOS 框架(只有一个类和一个方法),并在测试项目中引用了它。我可以使用iPhone 5s,6和6 Plus模拟器编译测试项目,但是对于所有其他模拟器(iPhone 4s和5以及所有iPad),我收到以下编译器错误:

'TestClass' is unavailable: Cannot find Swift declaration for this class

有人看到这个问题吗?谢谢。

您必须创建具有多个体系结构的库才能为模拟器和设备运行。
在 Xcode 中,检查您是否正在为设备构建并将其用于模拟器中的应用程序。
通常在创建库时,您必须在构建过程中编写一个宏,该宏将生成具有i386,x86,armv7,armv7s,arm64等的FAT库,以便它适用于所有设备和模拟器上的所有iOS版本。
如果您生成了两个库,一个用于模拟器(例如libFirst.a),另一个用于设备(例如libSecond.a),则命令

lipo -info libFirst.a libSecond.a

打印已创建的那些库的体系结构。


然后使用该命令生成 FAT 库

lipo -create libFirst.a libSecond.a -o libCombined.a

最新更新