二进制文件中没有体系结构。 Lipo无法检测到捆绑可执行文件中的任何体系结构-先前的答案不起作用

时间:2018-11-13 21:17:24

标签: ios xcode nativescript

我最近在我的xcode项目(SquareReaderSDK.framework)中添加了一个框架,现在每次尝试上载或验证它时都会遇到此问题:

No architecture in the binary. Lipo failed to detect any architectures in the bundle executable

这在所有设备上都可以在本地正常运行(我已经在运行最新操作系统的iPad上以及在运行9.3.5的旧版本的iPad上进行了测试)-仅在存档并尝试验证/上传之后才会发生。

我发现许多其他人也有类似的问题,但似乎没有一个修复程序对我有用:

  • 名称和绑定ID是正确的
  • 重新启动XCode,重新运行pod install,清理项目并没有任何改变

我设法通过一系列奇怪的步骤将其上载,这些步骤需要进行生产更改,因为它们限制了我可以部署到的架构:

  • 我必须使部署的目标是插入的设备,而不是Generic iOS Device。我知道我需要找出一种不必这样做的方法,或者我无法在较旧的iPad上下载它
  • 我必须将Build Active Architecture Only设置为Yes。我认为这也需要改变,否则我将遇到与第一个项目符号相同的问题
  • 在带有库的链接框架下,我选择了Optional而不是Required。为了使它在所有较旧的设备上都能正常工作(此框架仅在iOS 11+上有效),必须保持这种状态。
  • 构建阶段/嵌入框架下,我为Code Sign On Copy取消选择了SquareReaderSDK.framework。我不知道是否需要更改,我添加了它,因为其他人建议删除构建阶段将解决此问题。
    • 作为iOS的Square Reader设置中的说明之一,我必须添加运行脚本作为最后的构建阶段:FRAMEWORKS="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}" "${FRAMEWORKS}/SquareReaderSDK.framework/setup"

此步骤组合中的任何变化似乎都会给我带来原始错误。有什么想法吗?

我可以分享可能有用的其他信息

1 个答案:

答案 0 :(得分:0)

我的问题最终只针对SquareReaderSDK.framework。 Square创建了一个安装脚本,该脚本需要在设备上运行。但是,在存档过程中,该脚本的一部分将删除SquareReaderSDK不支持的体系结构。我不得不注释掉这些行,以使存档和验证过程正常运行,然后处理代码中不受支持的体系结构