在尝试分发IPA时,Xcode引发错误:
“ IPA处理失败”
步骤:
产品->存档。 ->分发->企业/开发->“ IPA处理失败”
Xcode: Version 11.0 beta 3 (11M362v)
操作系统: 10.15 Beta (19A501i)
注意:我一次升级到Xcode 11后就能够构建,但是在对代码进行额外的计数检查之后,从那一刻起我就无法成功。即使我最后一次也无法重新导出成功生成存档。
答案 0 :(得分:7)
答案 1 :(得分:2)
同一问题,Xcode 11.1中仍然存在相同的技巧 即使项目设置禁用了位码,在分发应用程序时,它也会执行检查。当前的解决方法是在该窗口出现时立即按Enter键,因为“下一步”按钮具有焦点,或者快速单击它。
注意:当失败时,从日志中可以断言失败似乎与otools有关,而不是针对一个或多个3d party框架的某些预期数量的arch。 (如果使用Xcode 11+重建那些框架,则可以解决此问题,而无需解决办法)
更新
此“方法”仍适用于Xcode 11.3
希望有帮助
答案 2 :(得分:1)
我只是从嵌入式框架中删除了WEbRTC框架,因为从Mac安装位置手动添加了WEBRTC框架。删除后,项目运行正常,应用成功构建到Apple Store Connect。我可能是错的,但我认为嵌入式框架仅适用于使用迦太基安装的框架。
答案 3 :(得分:0)
我认为这是由于我的项目中包含了某些框架造成的,当时,第3方框架尚未针对新的编译器发布。
现在,它们发布了支持Swift 5.1和Xcode 11编译器的版本。因此,这个问题现在对我而言不再存在。
答案 4 :(得分:0)
我在Xcode 11.3中遇到过同样的问题。 我已经解决了使用这些步骤的问题。这对我有用。
构建阶段->加号按钮->创建新的运行脚本阶段
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:
我的解决方案是根本不嵌入框架。