ipatool失败,出现以下异常:Xcode 10.1

时间:2019-06-25 06:55:52

标签: objective-c jwplayer ios12

我正在使用JWPlayer开发音乐播放器应用程序。以前我使用的是iOS_SDK 2.9.1。现在,我将SDK更新为新版本iOS_SDK 3.5.1。更新SDK之后,我无法从XCode导出.ipa文件。正在收到错误消息,原因是“ ipatool失败,并发生以下异常:

请按照以下说明查看错误消息的屏幕截图。

enter image description here

3 个答案:

答案 0 :(得分:1)

如果要在启用位码的情况下进行构建。您可以检查以下步骤:

  1. 删除项目中的所有依赖项,然后尝试将其一个接一个地添加,确保哪个框架导致生成错误,检查最新的稳定版本或向框架所有者报告以解决此问题(应与位码相关)

  2. 在构建供其他人使用的框架之前,请在项目计划测试部分中禁用与代码覆盖率相关的所有功能。

    code coverage disabled

    1. 就我而言,该框架的构建没有错误,但是使用我的框架时,它将在Project的.ipa存档上生成ipatool错误。一直试图解决此问题,发现有一行代码导致ipatool失败:
if (@available(iOS 10.0, *)) {

}

更改为此代码可以为我解决问题:

if(([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0)) {

}

注意:我将Xcode 11.3.1与调试SDK 13.2结合使用,并在启用了位码的情况下构建目标iOS 9.0

答案 1 :(得分:0)

即使我在更新广告连播后也遇到了同样的问题。对我有用的解决方法是在存档时取消选中“位码”选项。 enter image description here

请检查附件图片

答案 2 :(得分:0)

就您而言,您需要等待框架本身的修复。

我们遇到了类似的问题,我描述了 here,我只是不想分享我们的调查结果,因为似乎没有人公布他们的结果。

没有位码就不需要分发。长话短说,其中包含 LLVM 检测,这会阻止 AppStore 处理。我写了一篇关于 XCode 12 and BigSur issues with XCFramework 的完整博客。

总而言之,在创建 XCFramework 以进行分发时,需要执行以下几个必要步骤:

  • 使用归档构建是必须,发布构建是不够的
  • BUILD_LIBRARY_FOR_DISTRIBUTION 必须设置为 YES
  • SKIP_INSTALL 必须设置为 NO
  • GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO 关闭 GCC 检测并将其从二进制文件中删除
  • CLANG_ENABLE_CODE_COVERAGE = NO 从二进制文件中关闭代码覆盖工具

上述所有内容有助于解决我们的准备和分发问题,如果您碰巧遇到与我们相同的问题,希望可以为您节省一些时间。