【问题标题】:iOS framework works for iPhone 5s, 6, and 6 Plus but does not compile for other iPhone or iPad simulatorsiOS 框架适用于 iPhone 5s、6 和 6 Plus,但不适用于其他 iPhone 或 iPad 模拟器
【发布时间】:2015-01-22 07:13:48
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios swift frameworks


    【解决方案1】:

    您必须创建具有多种架构的库才能为模拟器和设备运行。
    在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 2014-11-22
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多