1. 程式人生 > >App 提交 iTunes Connect 二進位制無效問題解決方案

App 提交 iTunes Connect 二進位制無效問題解決方案

轉: http://www.tuicool.com/articles/ABbaqaz

自2015年2月份開始,新上傳到iTunes上面稽核的app,必須支援64位,新上傳是指第一次上傳,

或者沒有稽核通過過,總之就是在AppStore上面沒有上架的app,必須支援64位,包括工程裡面的程式碼和用到的靜態庫檔案

如果之前iTunes上面有稽核通過的app,現在只是上傳升級版本,更新版本去稽核,這時也可以提交成功,iTunes上面驗證二進位制檔案可以通過,

不必非得支援64位,但是不要高興太早,這只是權宜之計,到2015年6月份上傳的升級版本還是要支援64位,只是現在這種情況不需要強制,

1.先檢視下是否支援64位(釋出的App要支援64位)

如下圖所示是支援64位

2.檢視Schemes的Analyze和Archive是否是release模式

Analyze要為release模式

以上兩個解決了還是不行,打包上傳TMD還是二進位制檔案無效,why?

用Xcode打包上傳時,蘋果讓我們預設勾選了Include app symbols for your application to receive symbolicated crash logs from Apple.

將勾去掉,但是還是不能上傳還是二進位制檔案無效.繼續解決問題

Architectures:你想支援的指令集。(支援指令集是通過編譯生成對應的二進位制資料包實現的,如果支援的指令集數目有多個,就會編譯出包含多個指令集程式碼的資料包,造成最終編譯的包很大。) Valid architectures:即將編譯的指令集。(Valid architectures 和 Architecture兩個集合的交集為最終編譯生成的版本)

Build Active Architecture Only:是否只編譯當前裝置適用的指令集(如果這個引數設為YES,使用iPhone 6除錯,那麼最終生成的一個支援ARM64指令集的Binary。一般在DEBUG模式下設為YES,RELEASE設為NO)。

還有最好在iOS Device環境下打包,不要插上真機打包。

為了嚴謹可以將包匯出,然後在終端檢檢視是否支援arm64

Resource Reference