上傳AppStore所遇到的問題

1、icon 圖片錯誤

解決方案:此問題是應用開啟了ipad設備適配,需要添加ipad App icon,如果應用不在ipad上運行,可以直接選擇只在iphone上運行,如圖:

2、ERROR ITMS-90087: "Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]' 此錯誤是由于第三方包的問題導致,需要添加以下腳本:

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|whileread-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=()

forARCHin$ARCHSdo

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

I used it and it worked perfectly.

edited Sep 17 '15 at 18:05KPM

answered Jun 16 '15 at 11:46

pAkY88

6,3233 31 58

2Pity I cannot up vote this answer more than ++ –NCFJan 28 at 17:32

3@pAkY88 I've used this script in my Xcode project to fix up the App Store Issues mentioned above, but now

when I go to Build, I have alot of fatal errors -> fatal error: lipo: input file

(/...Frameworks/Bolts.framework/Bolts) must be a fat file when the -extract option is specified. Any ideas

how to fix this? –SamoanProgrammerFeb 5 at 16:08

1I think it's pretty stupid: you have to combine arm+x86 to allow your app runs on both simulator and device,

and have to strip x86 out to submit to app store. Why Apple doesn't do the strip on their end as long as x86

is detected? They can help a lot of technical reasons to defend this, but none business reason since it's not

user friendly at all. –superarts.orgMar 22 at 4:05

1@fancy yes, check out my post on how I fixed my issuestackoverflow.com/questions/35240330/...–SamoanProgrammerMar 22 at 20:38

2@Skoua Select the relevant target, then "Build Phases" and put it after the "Embed Frameworks" action –TobolJul 11 at 17:43

If you're usingCarthagethen you may experience this issue because the project is:

Missing thecarthage copy-frameworksbuild phase.

Or the build phase doesn't include all the frameworks (incomplete list).

This action filters frameworks to a list of valid architectures(code).Setting up the copy-frameworks build phase

From theCarthage building for iOS steps:

2,2749 33 50

On your application targets’ “Build Phases” settings tab, click the “+” icon and choose “New

Run Script Phase”. Create a Run Script in which you specify your shell (ex: bin/sh), add the

following contents to the script area below the shell:

/usr/local/bin/carthage copy-frameworks

and add the paths to the frameworks you want to use under “Input Files”, e.g.:

$(SRCROOT)/Carthage/Build/iOS/Box.framework

$(SRCROOT)/Carthage/Build/iOS/Result.framework

$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework

This script works around an App Store submission bug triggered by universal binaries and

ensures that necessary bitcode-related files and dSYMs are copied when archiving.

answered Sep 1 at 10:48

odlp

8177 17

Awesome, work :D –zetanovaOct 22 at 0:05

I resolved the error ITMS-90080 by removing a framework (the excellent SVProgressHUD)

from the Embedded Binaries section (Xcode target -> General tab).

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

需注意腳本格式,如圖:

3、Invalid Bundle - A nested bundle contains simulator platform listed in CFBundleSupportedPlatforms Info.plist key.此錯誤主要是第三方包在打包時info.plist 中CFBundleSupportedPlatforms 是設置的模擬環境,改成生產模式就可以,如圖:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容