在Xcode Beta中分发内部版本时,“ IPA处理失败”

时间:2019-07-04 06:24:40

标签: ios xcode ipa xcode11

在尝试分发IPA时,Xcode引发错误:

  

“ IPA处理失败”

步骤:

产品->存档。 ->分发->企业/开发->“ IPA处理失败”

enter image description here

Xcode: Version 11.0 beta 3 (11M362v)

操作系统: 10.15 Beta (19A501i)

注意:我一次升级到Xcode 11后就能够构建,但是在对代码进行额外的计数检查之后,从那一刻起我就无法成功。即使我最后一次也无法重新导出成功生成存档。

6 个答案:

答案 0 :(得分:7)

对我来说,以下解决方案有效。在创建iPA时取消选中位码检查,然后尽快单击下一步,不要让xcode调用api来验证IPA

取消选中带有bitocde的重做,然后单击下一个asap Rebuild from xcode - uncheck this option

答案 1 :(得分:2)

同一问题,Xcode 11.1中仍然存在相同的技巧 即使项目设置禁用了位码,在分发应用程序时,它也会执行检查。当前的解决方法是在该窗口出现时立即按Enter键,因为“下一步”按钮具有焦点,或者快速单击它。

注意:当失败时,从日志中可以断言失败似乎与otools有关,而不是针对一个或多个3d party框架的某些预期数量的arch。 (如果使用Xcode 11+重建那些框架,则可以解决此问题,而无需解决办法)

更新

此“方法”仍适用于Xcode 11.3

希望有帮助

答案 2 :(得分:1)

我只是从嵌入式框架中删除了WEbRTC框架,因为从Mac安装位置手动添加了WEBRTC框架。删除后,项目运行正常,应用成功构建到Apple Store Connect。我可能是错的,但我认为嵌入式框架仅适用于使用迦太基安装的框架。

enter image description here

答案 3 :(得分:0)

我认为这是由于我的项目中包含了某些框架造成的,当时,第3方框架尚未针对新的编译器发布。

现在,它们发布了支持Swift 5.1和Xcode 11编译器的版本。因此,这个问题现在对我而言不再存在。

答案 4 :(得分:0)

我在Xcode 11.3中遇到过同样的问题。 我已经解决了使用这些步骤的问题。这对我有用。

enter image description here

构建阶段->加号按钮->创建新的运行脚本阶段

APP_PATH =“ $ {TARGET_BUILD_DIR} / $ {WRAPPER_NAME}”

找到“ $ APP_PATH”-名称'* .framework'-类型d |同时读取-r FRAMEWORK 做FRAMEWORK_EXECUTABLE_NAME = $(默认为“ $ FRAMEWORK / Info.plist” CFBundleExecutable) FRAMEWORK_EXECUTABLE_PATH =“ $ FRAMEWORK / $ FRAMEWORK_EXECUTABLE_NAME”回显 “可执行文件是$ FRAMEWORK_EXECUTABLE_PATH” echo $(lipo -info “ $ FRAMEWORK_EXECUTABLE_PATH”)

FRAMEWORK_TMP_PATH =“ $ FRAMEWORK_EXECUTABLE_PATH-tmp”

案例“ $ {TARGET_BUILD_DIR}”在 *“ iphonesimulator”) 回声“无需删除拱门” ;; *) 如果$(lipo“ $ FRAMEWORK_EXECUTABLE_PATH” -verify_arch“ i386”);然后 lipo-输出“ $ FRAMEWORK_TMP_PATH”-删除“ i386”“ $ FRAMEWORK_EXECUTABLE_PATH” 回声“ i386体系结构已删除” rm“ $ FRAMEWORK_EXECUTABLE_PATH” mv“ $ FRAMEWORK_TMP_PATH”“ $ FRAMEWORK_EXECUTABLE_PATH” 科幻 如果$(lipo“ $ FRAMEWORK_EXECUTABLE_PATH” -verify_arch“ x86_64”);然后 lipo-输出“ $ FRAMEWORK_TMP_PATH”-删除“ x86_64”“ $ FRAMEWORK_EXECUTABLE_PATH” 回声“ x86_64体系结构已删除” rm“ $ FRAMEWORK_EXECUTABLE_PATH” mv“ $ FRAMEWORK_TMP_PATH”“ $ FRAMEWORK_EXECUTABLE_PATH” 科幻 ;; esac

echo“已为可执行文件$ FRAMEWORK_EXECUTABLE_PATH完成” echo $(lipo -info“ $ FRAMEWORK_EXECUTABLE_PATH”)

完成

答案 5 :(得分:0)

在日志报告中检查您的任何框架是否导致了这个问题,当我使用来自 Amazon 的 Chime SDK 时,我的问题发生了

Assertion failed: Expected 4 archs in otool output:
/var/folders/gw/92tbc3ls1mgfcg8qn1gh4whh0000gr/T/IDEDistributionOptionThinning.~~~aSD3W8/Payload/telehealth.app/Frameworks/AmazonChimeSDK.framework/AmazonChimeSDK:

我的解决方案是根本不嵌入框架。