IOS打包出現(xiàn) Found an unexpected Mach -O header code:0x72613c21 出現(xiàn)錯誤 && x86_64,i386 錯誤解決方案

場景1-------> IOS打包出現(xiàn) Found an unexpected Mach -O header code:0x72613c21

當(dāng)你導(dǎo)入一個***SDK 之后 build 沒有任何問題 然后你開開心心的去打包 發(fā)現(xiàn)WTF 居然報錯了!!!!報錯信息如下~

為啥嘞?那么好吧 點(diǎn)擊show logs 打印日志發(fā)現(xiàn) 出現(xiàn)最多的信息就是Didn't find archived user entitlements (沒有發(fā)現(xiàn)存檔的用戶權(quán)利) 其實(shí)說白了就是你導(dǎo)入的SDK 出了問題(至于哪個SDK 日志當(dāng)中都有指出就不貼圖片出來了)

然后你就發(fā)現(xiàn) 如下圖~

你將一個*** framework 的靜態(tài)庫 放到了 Embedded Binaries(放動態(tài)庫依賴文件) 里面導(dǎo)致 項(xiàng)目打包 報錯。

到了這里 你當(dāng)然需要 將*** framework 從 Embedded Binaries(動態(tài)庫里來文件)中刪除 ,但是你直接刪除 會發(fā)現(xiàn)下面 linked Frameworks and libraries (簽署了框架和庫)中*** framework也沒了。那咋辦? 很簡單 你只需在 linked Frameworks and libraries 重新 “+” 那個被刪除的 *** framework 就好了~
到這里 重新打包ipa文件 發(fā)現(xiàn) ipa文件 生成成功~

場景2------->x86_64,i386 錯誤解決方案

但是你以為到這里就完了嗎?你還有可能遇到 如下問題 (如果你沒有遇到 請略過 ) 你雖然 ipa 文件生成成功,但是不代表上傳ipa 文件到appstore 會成功,在上傳 appstore 的時候 你可能會遇到 下圖所示問題

發(fā)布問題

遇到這個問題 你可以直接百度 搜索關(guān)鍵詞 "ERROR ITMS - 90209" 就可以找到類似的解決辦法 , 如果你懶得找 那么看我下面的解釋也可以。

首先為啥會報 x86_64,i386 的錯誤 ...........
因?yàn)?br> 1、你導(dǎo)入的 **** 庫文件有可能有兩種, 一種支持真機(jī)和模擬器, 一種只支持真機(jī), 如果測試需要用到模擬器, 測試時可以用前一種, 如果不用模擬器全程只用真機(jī), 建議用只支持真機(jī)的庫, 在Release文件夾下, 發(fā)布應(yīng)用時不能使用同時支持真機(jī)和模擬器的庫文件, 否則會報錯

2、使用腳本打包前去掉不需要的架構(gòu)(推薦) 如下圖~

創(chuàng)建Run Script

將如下代碼 放置到Run script中

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

EXTRACTED_ARCHS=()

for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done

echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"

echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done
搞定

搞定這步之后,你需要重新生成ipa文件,重新提交到Appstore 提交,這回你會發(fā)現(xiàn) 哇塞,居然不報錯了耶~

到這里你的所有沖突解決完畢~ 希望可以幫到你 謝謝~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 介紹 動態(tài)庫形式:.dylib和.framework 靜態(tài)庫形式:.a和.framework 動態(tài)庫和靜態(tài)庫的區(qū)別...
    齊滇大圣閱讀 46,801評論 18 251
  • 友友們,最近我遇到難題了,希望你們指正方向!拜托,拜托, 我大學(xué)畢業(yè)兩年,畢業(yè)找到了還算不錯的單位,世界五百強(qiáng)企業(yè)...
    37攝氏度的冰棍閱讀 305評論 0 0
  • 傳遞美好的能量, 讓全世界都在幸福中覺醒! 1、一切都是最好的安排! 2、作為自己世界里正能量的源頭! 3、最大的...
    Lucky感謝愛閱讀 139評論 0 1

友情鏈接更多精彩內(nèi)容