我正在构建一个 Swift 库,并将其托管在 GitHub 上。
一切都很顺利,直到我将蓝牙套件添加到项目中。然后我得到了一个苹果Mach-O链接器错误:
ld: warning: directory not found for option '-F/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.0.sdk/Developer/Library/Frameworks'
ld: /Users/calebklevetertest/Library/Developer/Xcode/DerivedData/Napalm-dblvhbjdwovurocsvzrzaxzkjjyw/Build/Products/Debug-iphonesimulator/Napalm.framework/Napalm compiled with older version of Swift language (2.0) than previous files (3.0) for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
从阅读错误来看,问题似乎以某种方式源于我正在使用 Swift 3 的事实,但我无法弄清楚如何解决它。
当我添加蓝牙套件时,我确实将它转换为 Swift 3。
有一个类使用蓝牙套件,它被称为 NPFBluetooth
.
需要注意的几件事是 1)即使该类是公共的,编译器也会给出"未解析的标识符"错误,2)该类未显示在自动完成中,3)所有其他类都工作正常。
我在迁移到 swift3 时遇到了错误。事实证明,Xcode 保留了构建框架的副本,迁移到 swift3 显然不是重建这些框架的提示(即使在发现它是使用 swift2 构建的......不,让我们抛出一个模糊的错误...
解决方案是删除"派生数据"文件夹的内容。
适用于安装有迦太基和椰子足的框架.....
转到构建设置,并将目标的设置切换到 ENABLE_BITCODE = YES。它对我有用;)