????? iOS app上架是很坑爹的,在第一次上架過程中,博主一下遇到了N多的報錯,當時博主心里是崩潰的。在崩潰過后,博主開始了漫長的谷歌生活,最后艱辛的上架了,現在博主為了給廣大的iOS開發者提供一些問題的解決方法,希望能幫助大家,加快大家的工作效率,主要是可以不用加班,說多了都是淚。。。
問題一:
這個問題就是你Xcode上設置的bundleID與證書上的bundleID不一致導致的,把他們修改一樣都好了。
問題二:
這個問題有很多的答案,我只提供一個大多數能解決方法
1.在鑰匙串訪問>鑰匙串修改Apple Worldwide Developer Relations Certification Authority證書:右鍵顯示簡介調整"總是信任" 為 "系統默認"。
2.刪除已過期的Apple Worldwide Developer Relations Certification Authority證書,并下載新的Apple Worldwide Developer Relations Certification Authority證書,雙擊安裝。
3.刪除相關的 provisioning profiles,然后重新添加。(Xcode中的證書配置文件路徑:~/Library/MobileDevice/Provisioning Profiles)
問題三:
Getting ITMS-4238 “Redundant Binary Upload” error no mater what I change the build version or app version tobe higher
這個是已經上傳了同一個版本的APP了,不能再繼續上傳,如果需要重新上傳,就需要改版本號。
問題四:
iPhone App Submitting - Error ITMS-90171 Invalid Bundle Structure Can't Contain Standalone Executables
這個是引入的第三方framework所帶的資源包有問題,有可能是bundle里info.plist使用到的資源在bundle里沒有
問題五:
ERROR ITMS-90474: "Bundle Invalid. iPad Multitasking support requires there orientations: 'UIInterfaceOrientationPortrait,UIIinterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight'. Found 'UIInterfaceOrientationPortrait' in bundle.
在 TARGETS > iOS > General > Deployment Info 勾選 “Requires full screen”
問題六:
ERROR ITMS-90542: "Invalid CFBundleSupportedPlatforms value. The key 'CFBundleSupportedPlatforms' in the Info.plist file in bundle 'Payload/PgapIos.app/GoogleMaps.bundle' contains an invalid value '( "iPhoneSimulator" )'.
這個是編譯bundle的時候,是用模擬器來編譯的,解決方法是:在編譯bundle的時候選擇真機
ERROR ITMS-90086: Missing 64-bit support. Submission fails with error on submit app on iTunes
在 build settings 中的Valid Architectures, 添加arm64讓APP支持 64位的機器。XCode7不會有這種情況
問題七:
ERROR ITMS-90535 Unexpected CFBundleExecutable
在我這里是因為我的bundle里是生成了一個可執行文件,從新做一個bundle文件,注意bundle項目Build Settings 中的Mach-o Type 要選擇 Static Library。如果是第三方的就把bundle里info.plist的?Executable file字段刪除掉(我自己的bundle如果刪除,上傳的時候會提示bundle是損壞的),然后重新打包。
問題八:
ERROR ITMS-90034: Missing or invalid signature
這個其實還是因為bundle里有個可執行文件,在打包的時候沒能進行簽名導致的。
問題九:
ERROR ITMS-90096:"You binary is not optimized for iPhone 5....".
在工程里的Images.xcassets添加并設置LaunchImage對解決ERROR ITMS-90096根本不會起到任何作用,需要單獨添加針對iPhone 5的載入圖片。關鍵點有三項:1、圖片的名稱必須叫Default-568.png。2、必須把圖片放在工程的根目錄下。3、圖片尺寸必須是320*568。
然后在plist中添加
問題十:
使用Application Loader 上傳ipa出現的錯誤提示“application loader上傳出錯 生成的API分析文件太大”解決方法:解決辦法就是修改Xcode里面的Build
問題十一:
在Archive項目 時,出現了“Your build settings specify a provisioning profile with the UUID “487F3EAC-05FB-4A2A-9EA0-31F1F35760EB”, however, no such provisioning profile was found”的出錯。一直提示指定UUID的provisioning profile找不到,感覺很奇怪。明明自己的provisioning profile是剛下載好的,并且全是新安裝。于是通過谷歌找到了答案。
參考地址:http://stackoverflow.com/questions/1760518/codesign-error-provisioning-profile-cannot-be-found-after-deleting-expired-prof
這里所說的就是要通過修改你的項目的.xcodeproj文件來解決上述的錯誤。
1.找到項目中的**.xcodeproj文件,點擊右鍵,show package contents(打開包內容)。
2.打開后找到project.pbxproj文件,用文本編輯器打開。其實就是右鍵,點擊open就好了。
3.打開這個文件后,按command+F,在這個文件中查找“PROVISIONING_PROFILE",找到和這個“
PROVISIONING_PROFILE="487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";"PROVISIONING_PROFILE[sdk=iphoneos*]"="487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";”類似的都刪除。(注意:只刪除雙引號里面的487F3EAC-05FB-4A2A-9EA0-31F1F35760EB就可以了)
問題十二:
在要上傳的包上右鍵[Show in Finder]然后依次展開[xxxx.xcarchive][Products][Applications][xxxx] // xxxx–項目名
然后搜索所有的info.plist
找到是哪個plist含有[CFBundleSupportedPlatforms]屬性,看是那個三方庫包含的這個plist,然后到Xcode里面刪除該屬性。
問題十三:
這個原因也有多種,一個出現比較多的原因就是,你之前安裝的描述文件沒有包含推送證書。重新登錄到開發者中心,查看描述文件。
你會發現Status變成的狀態是黃色的(正常是綠色),如下圖。
點擊Edit,然后選擇Cenerate就行了。最后把描述文件下載,安裝。