標(biāo)簽(空格分隔): work
公司最近的一次App提交過程中遇到的一些問題睬塌,現(xiàn)貼在這里庐船,有檢索到本篇的朋友們可借鑒。
首先是上傳到iTunes Connect構(gòu)建版本榄棵,點(diǎn)擊以下藍(lán)色按鈕凝颇,之后會(huì)有蘋果為你的代碼進(jìn)行檢查:
本人在ios11上做了提交,發(fā)現(xiàn)問題進(jìn)行分類:
- 第一個(gè)是第三方庫存在x86_64,i386的鏈接庫疹鳄,有以下問題:
iTunes Store Operation Failed
ERROR ITMS-90087: "Unsupported Architectures. The executable for LeWaiJiao.app/Frameworks/GCDWebServers.framework contains unsupported architectures '[x86_64, i386]'."
PS:以下所有翻譯來源于歐路詞典拧略,粘貼過來的,僅供參考尚辑;
iTunes Store Operation Failed
ERROR ITMS-90209: "Invalid Segment Alignment. The app binary at 'LeWaiJiao.app/Frameworks/GCDWebServers.framework/GCDWebServers' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."
無效段對(duì)齊辑鲤。應(yīng)用程序二進(jìn)制的“l(fā)ewaijiao。應(yīng)用程序/框架/ gcdwebservers杠茬≡氯欤框架/ gcdwebservers”沒有正確對(duì)齊。嘗試用新的Xcode版本重建應(yīng)用程序瓢喉。
iTunes Store Operation Failed
ERROR ITMS-90125: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."
“二進(jìn)制無效宁赤。在lc_encryption_info負(fù)荷指令加密信息丟失或無效,或是已經(jīng)加密的二進(jìn)制栓票。這個(gè)二進(jìn)制文件似乎沒有用蘋果的鏈接器構(gòu)建决左°倒唬”
iTunes Store Operation Failed
WARNING ITMS-90080: "The executable 'Payload/LeWaiJiao.app/Frameworks/GCDWebServers.framework' is not a Position Independent Executable. Please ensure that your build settings are configured to create PIE executables. For more information refer to Technical Q&A QA1788 - Building a Position Independent Executable in the iOS Developer Library."
“可執(zhí)行的有效載荷/ lewaijiao。應(yīng)用程序/框架/ gcdwebservers佛猛』蟀牛框架”不是一個(gè)獨(dú)立的可執(zhí)行文件的位置。請(qǐng)確保您的構(gòu)建設(shè)置配置為創(chuàng)建餅可執(zhí)行文件继找。更多信息請(qǐng)參閱技術(shù)問答qa1788在iOS開發(fā)者庫位置獨(dú)立的可執(zhí)行的建筑遂跟。”
ERROR ITMS-90362: "Invalid Info.plist value. The value for the key 'MinimumOSVersion' in bundle ***.app/Frameworks/SDK.framework is invalid. The minimum value is 8.0"
后面這個(gè)90362貌似是連帶問題婴渡,定位的時(shí)候發(fā)現(xiàn)與最小版本無關(guān)幻锁,所以一同被解決了;
解決方法呢是在該工程里添加腳本處理這些被添加進(jìn)來的第三方庫边臼,如下:
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
以上代碼來源于Google哄尔,解決方法經(jīng)確認(rèn)iOS11 + Xcode9.0有效;
- 項(xiàng)目有icon不合規(guī)定的錯(cuò)誤
iTunes Store Operation Failed
ERROR ITMS-90717: "Invalid App Store Icon. The App Store Icon in the asset catalog in 'LeWaiJiao.app' can't be transparent nor contain an alpha channel."
無效應(yīng)用程序商店圖標(biāo)柠并。在資產(chǎn)目錄中的lewaijiao App Store圖標(biāo)岭接,應(yīng)用程序不能透明也包含alpha通道√美穑”
該錯(cuò)誤原因是上傳的icon不符合蘋果規(guī)定亿傅,公司項(xiàng)目存在的問題是1.使用了圓角;2.有透明alpha通道瘟栖;
解決方法自然容易了葵擎,找設(shè)計(jì)重新做,自己解決的話第二個(gè)可以DIY半哟,如下:
用系統(tǒng)預(yù)覽打開icon圖片酬滤,點(diǎn)掉Alpha的勾,再保存就可以了寓涨;
- 提交上傳結(jié)束后又出現(xiàn)了一個(gè)問題
App Installation failed, No code signature found.
真機(jī)無法運(yùn)行了盯串!這個(gè)問題純屬偶然,所以繼續(xù)解決戒良;打開終端体捏,輸入
sudo chmod -R 777 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
修改文件權(quán)限,然后修改字段屬性糯崎,打開:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist
几缭,修改 CODE_SIGNING_REQUIRED 字段為 YES ,保存沃呢;