【问题标题】:importing swift framework only working on Simulator导入仅适用于模拟器的 swift 框架
【发布时间】:2017-05-31 12:59:40
【问题描述】:

我一直在尝试将这个 swift 框架导入到一个名为 CreditCardForm 的目标 c 项目中,但它无法运行。它将在真正的 iPhone 上运行,但是当涉及到模拟器时,它会出现此错误。

架构 x86_64 的未定义符号:
“_OBJC_CLASS_$__TtC14CreditCardForm18CreditCardFormView”,引用 从: CreditCardVC.o ld 中的 objc-class-ref:未找到架构 x86_64 的符号 clang:错误:链接器命令失败并出现退出代码 1(使用 -v 查看调用)

我一直在尝试让它运行,但它只在模拟器或 iPhone 上运行。

【问题讨论】:

  • 从错误代码看来框架不支持64位架构。您在哪部 iPhone 上运行代码,是 32 位还是 64 位?另外,您在项目中支持哪些架构?
  • 将框架拖入位于目标下方的“Link Binary with libraries”中,就是这样!或 Build Active Architecture Only 设置为是
  • 当我测试这段代码时,它工作正常。您是使用可可豆荚还是简单地拖放方法来使用它?
  • @Virender 我正在使用拖放,但如果需要,我可以使用可可豆荚。
  • 我获取框架的方式是运行项目。它创建了框架,但它甚至不能在一个空白的新应用程序中工作。

标签: ios iphone swift


【解决方案1】:

确保框架在设备/模拟器中都内置

如果项目仅在“模拟器”中构建,它只会生成让框架专门在模拟器上而不是在设备上运行的架构。或者,如果项目是在“设备”中构建的,它会生成让框架仅在设备上运行的架构。

所以在“模拟器”和“设备”上构建项目。

https://medium.com/swiftindia/build-a-custom-universal-framework-on-ios-swift-549c084de7c8

【讨论】:

    【解决方案2】:

    建立一个胖图书馆

    胖库只是一个具有多种架构的库。在我们的 如果它将包含 x86 和 arm 架构。正确的名字是 “通用静态库”。但我们会坚持使用“胖库”,因为 它的编写更小,这正是我们生成的库 将会。胖的!!!包含多种架构。

    https://medium.com/@hassanahmedkhan/a-noobs-guide-to-creating-a-fat-library-for-ios-bafe8452b84b

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2012-10-22
      • 2016-08-17
      相关资源
      最近更新 更多