【发布时间】:2019-04-16 19:04:04
【问题描述】:
我最近向我的 xcode 项目 (SquareReaderSDK.framework) 添加了一个框架,现在每当我尝试上传或验证它时都会遇到这个问题:
No architecture in the binary. Lipo failed to detect any architectures in the bundle executable
这在所有设备上本地运行良好(我在运行最新操作系统的 iPad 和运行 9.3.5 的旧设备上进行了测试) - 这仅在存档并尝试验证/上传后发生。
我发现许多其他人有类似的问题,但似乎没有一个修复程序适合我:
- 名称和包 ID 正确
- 重新启动 XCode,重新运行
pod install,清理项目并没有改变任何东西
我已经设法通过一系列奇怪的步骤将其上传到生产环境中,因为它们限制了我可以部署到的架构:
- 我必须将部署目标设为插入的设备,而不是
Generic iOS Device。我知道我需要想办法不必这样做,否则我无法在我的旧 iPad 上下载它 - 我必须将
Build Active Architecture Only设置为Yes。我相信这也需要改变,否则我会遇到与第一个项目符号相同的问题 - 在带有库的链接框架下,我选择了
Optional而不是Required。这需要保持这种状态才能使其在旧设备上运行(此框架仅适用于 iOS 11+)。 - 在构建阶段/嵌入框架下,我为
SquareReaderSDK.framework取消选择Code Sign On Copy。我不知道这是否需要更改,我添加它是因为其他人建议删除构建阶段可以解决此问题- 我不得不添加一个运行脚本作为最终构建阶段,作为 iOS 的 Square Reader Setup 中的说明之一:
FRAMEWORKS="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}" "${FRAMEWORKS}/SquareReaderSDK.framework/setup"
- 我不得不添加一个运行脚本作为最终构建阶段,作为 iOS 的 Square Reader Setup 中的说明之一:
这种步骤组合的任何变化似乎都会让我发现最初的错误。有什么想法吗?
我可以分享任何可能有用的额外信息
【问题讨论】:
-
更新:如果我将部署目标从 9 提高到 11,我可以让它与通用 iOS 设备一起使用。但是任何更低,我都会收到这个错误。我知道 SquareReaderSDK.framework 只能在运行 11+ 的 iPad 上运行,但我可以通过在 Linked Frameworks and Libraries 部分将其设置为 Optional 来在 9.3.5 的 iPad 上运行它。归档时有什么不同的原因吗?
标签: ios xcode nativescript