天天看點

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

向導:

必備idp證書和distribution證書(第一個證書是真機部署測試時用到的,後者證書是釋出時需要用到的,缺一不可)。

我就說說接下來應該做的流程。在你保證擁有以上兩個證書的前提下,距離app送出稽核,已經剩下兩大步了:1,ituneconnect建立app,填寫項目詳細資訊。2,xcode打包驗證通過,送出項目。好的,我就開始說重點了,童鞋們跟着我的流程走,保證不會迷糊和出錯。

1.預先準備

在你開始将程式送出到app store之前,你需要有一個app id,一個有效的釋出證書,以及一個有效的provisioning profile。下面來看看它們各自的作用。

step 1: app id(應用id)

app id是識别不同應用程式的唯一标示符。每個app都需要一個app id或者app辨別。目前有兩種類型的app辨別:一個是精确的app id(explicit app id),一個是通配符app id(wildcard app id)。使用通配符的app id可以用來建構和安裝多個程式。盡管通配符app id非常友善,但是一個精确的app id也是需要的,尤其是當app使用icloud 或者使用其他ios功能的時候,比如game

center、push notifications或者iap。

step 2: distribution certificate(釋出證書)

ios應用都有一個安全證書用于驗證開發者身份和簽名。為了可以向app store送出app,你需要建立一個ios provisioning profile 。首先需要建立一個distribution certificate(釋出證書),過程類似于建立一個development certificate(開發證書)。如果你已經在實體裝置上測試你的app,那麼你對建立development certificate就已經很熟悉了。

step 3: provisioning profile(配置檔案)

一旦你建立了app id和distribution certificate,你可以建立一個ios provisioning profile以友善在app store中銷售你的app。不過,你不能使用和ad hoc distribution相同的provisioning profile。你需要為app store分銷建立一個單獨的provisioning profile,如果你使用通配符app id,那麼你的多個app就可以使用相同的provisioning profile。

step 4: build settings(生成設定)

配置app id、distribution certificate 和provisioning profile已經完成,是時候配置xcode中target的build settings了。在xcode project  navigator的targets清單中選擇一個target,打開頂部的build settings選項,然後更新一下code

signing來跟之前建立的distribution provisioning profile相比對。最近添加的provisioning profiles有時候不會立馬就在build settings的code signing中看到,重新開機一下xcode就可以解決這個問題。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

配置target的build settings

step 5: deployment target(部署目标)

非常有必要說下deployment target,xcode中每個target都有一個deployment target,它可以指出app可以運作的最小版本。不過,一旦應用在app store中生效,再去修改deployment target,你要考慮到一定後果。如果你在更新app的時候提高了deployment target,但是已經購買應用的使用者并沒有遇到新的deployment target,那麼應用就不能在使用者的移動裝置上運作。如果使用者通過itunes (不是裝置)下載下傳了一個更新過的app,然後替代了裝置上原先的版本,最後卻發現新版本不能在裝置上運作,這确實是個問題。

(1) 當你決定提高現有app的deployment target時,要在新版本的版本注釋中進行說明。如果你提前告知使用者,那麼至少有一點,你已經盡力阻止問題的發生了。

【以上簡而言之,最好從項目設計時,就決定是否考慮相容低版本使用者,支援的話,寫代碼時使用ios新特性時最好做一下判斷,if是老版本if是新版本】

2. assets(資源包)

step 1: icons(圖示)

icon是app中不可分割的一部分,你要確定icon尺寸不會出現差錯。

itunes artwork: 1024px x 1024px (required)

ipad/ipad mini: 72px x 72px and 114px x 114px (required)

iphone/ipod touch: 57px x 57px and 114px x 114px (required)

search icon: 29px x 29px and 58px x 58px (optional)

settings application: 50px x 50px and 100px x 100px (optional)

step 2: 螢幕截圖

step 3: 中繼資料

在送出應用之前,要管理好app的中繼資料,包括1應用名稱、2版本号、3主要類别,4簡潔的描述,5關鍵詞,6.支援url。如果你需要更新應用,你還要提供新增加的版本内容。

如果你的應用需要注冊【打開app需要登入,比如飛信】,你還得向蘋果提供一個測試賬戶或者demo賬戶,這樣稽核人員就能很快進入app,而不用再新增賬號。

3. 送出準備

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

點選進入

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

左上角,添加一個app,如果你的開發賬号之前已經送出過app,下面就會列出來。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

第一個頁面,選擇語言,應用名稱,skunumber,bundleid(會讓你選擇自己建立項目的appid)。

sku number是一個用來識别app的特殊字元串。我經常使用app的bundle

identifier。最下邊是app的bundle

id,你可以從下來菜單中選擇通配符app id或者準确的app id。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

這個頁面是選擇app上線的日期(因為apple還需要稽核,一般都是推遲幾天),售價,以及是否支援教育機構之類的。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

以上頁面是寫版本号,公司名稱,軟體首類别,次類别(注意兩個類别不得重複,否則不會通過),以及評級劃分。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

以上是軟體的内容描述,關鍵字,技術支援url,以及下面的技術負責人的名字,姓,email,手機号碼,這些都很簡單,你們都懂的。

----------------------------------------------------------------------------------------------------------------------------------------

接下來是選擇appicon 一張1024x1024的軟體圖示,讓ui做吧,我也不曉得軟體的圖示為啥要做這麼大;

繼續上傳5張軟體的截圖,要挑選最重要的圖檔展示,大小是640x960,xcode上內建了截圖功能,則是打開window-organizer視圖視窗,點選自己的手機标簽頁下的screenshot,就可以截圖了,尺寸正好,很友善的噢親。

有正常的iphone4,iphone5,以及ipad各個add的入口,有的話就上傳,沒有的話就空着

由于上傳時我忘記截圖了,是以次頁面就不能展示給大家了,不過很簡單的一看就懂。

完事後檢查無誤,點選送出。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

好了,走到這一步,基本上算是完成了一個app的建立,這裡列舉了你的skunumber,bundleid,appleid,随處可見的edit點選進入可以修改剛才送出的資訊,看到紅色圈住的狀态了:prepare for upload 千萬不要認為此時工作完成了,還差一步,如果此時你關閉了頁面,準備最後一步,你會發現到時會出錯的。我就因為這個繞了半天。

點選坐下的view details進入後的頁面回會是此軟體的一個詳細清單展示了軟體的名稱,描述,軟體截圖,技術聯系人資訊,等。看完無誤後,一定要點選右下角(或右上角)的按鈕(ready

to upload binary),隻有點了這個按鈕,才會改變目前status的狀态為:waiting for upload。

【注意:如果是ready for upload 狀态,在xcode下打包送出應用,會有:no suitable application records were found.

please make sure that you have set up a record for this application on itunes connect.的錯誤提示。】

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

此時,如果你的首頁status變成了:waiting for upload 那麼恭喜你,此步順利通過,剩下最後了。(注意如上截圖,點選continue,完成了網頁的所有工作)。

4.xcode上操作:設定證書,build打包,送出項目。

打開xcode,首先確定你配置好了distribution證書,看我如下截圖。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

確定debug和release都是選中我們申請好的distribution證書。到了次步驟,有的教程說建立一個新的codesigning identity 我也嘗試建立了,不過這裡不推薦新手建立,因為使用release照樣可以打包,創新新的identity認為會讓新手更暈菜。(如上截圖)

 5.

上傳二進制檔案

為了上傳程式,需要為程式建立一個archive。你隻能在一台真實裝置上建立一個archive。如果你在active

scheme中選擇了ios simulator,那麼在xcode的product菜單中archive選項是灰色不可選的。連接配接一台ios裝置到mac機器上,然後在active scheme中選擇這台裝置,然後選擇xcode中product菜單裡面的archive。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

選中項目名稱,裝置改為ios device(我們不需要使用模拟器或真機來build打包),然後選擇 edit scheme(如上截圖)

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

此界面頂部要确定選中的是你的項目名稱和iosdivice裝置;左邊欄選中archive,右邊的内容為以上視圖。點選ok。(如上截圖)

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

此時大功告成,在xcode-product菜單選中build一下(快捷鍵command+b),然後再點選archive。(如上截圖)兩個都成功的話,就繼續下一步,否則請檢查兩個證書的配置。

 如果一切正常的話,現在你會獲得一個archive,并且xcode的organizer會自動打開,并顯示出剛剛生成的archive。在清單中選中archive,然後點選右邊的“distribute”按鈕。在顯示出來的畫面中,選擇“submit to the ios app

store”。然後輸入你的ios開發者賬号進行認證。接着選擇application 和code signing identity。

應用程式的二進制檔案會上傳到蘋果的伺服器中——在這個過程中,你的程式同樣需要被驗證。如果在驗證過程中遇到了錯誤,程式的送出流程就會失敗。驗證處理非常有用,如果程式中有一些錯誤,蘋果的 app store評審團會告訴你具體原因。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

archive成功後,就會在organizer界面生成我們的應用,進入後可以看到軟體詳細資訊,這個identifier一定要和我們第三步網頁上的一緻。

1111》點選右邊的第一步1,驗證此項目。(如上截圖);(點選進入後輸入apple開發者賬号和密碼,下一步)

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

賬号通過後,會讓你選中application 和distribution證書,依次選擇,next(如上截圖)。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

驗證通過後,會有如上界面展示,ok,恭喜你。

2222》接下來,我們繼續第二步,送出項目(distribute)

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

如果你的項目是需要送出到appstore,則選擇第一個,next(如上截圖)

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

如果是如上提示,那麼恭喜你,我們終于完成了這shit的流程,點選finish!!我再也不想看到這些了,close xcode。(如上截圖)

我們再次打開itunesconnect,登入進入-會發現目前項目的status終于變了

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

waiting for review~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~這不就是我們最想要的結果麽!!!終于送出完成了,apple稽核時間大約是1-2周,如果通過的話,就會按照我們寫的時間上架,如果未通過,會發email~~注意查收噢。

好了,接下來說一下,如何在有idp證書,開發者賬号的情況下,通過正規途徑,導出ipa,安裝在任意iphone手機中(親測越獄手機)

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

 當我們在上幾步,打包build的時候,觀看你項目的products檔案夾下,已經生成了真實的app,不過這個還不是我們真正想要的.ipa檔案。(如上截圖)選中product下的app,右鍵show in finder,此時打開我們的itunes,拖動軟體到itunes下。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

此時,我們的軟體就拖到了itunes中了,可是發現沒有軟體圖示啊,不用怕,這是很正常的。右鍵軟體,選擇在finder中顯示(如上截圖)

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

此時,眼前這個軟體,就是我們想要的ipa啦。我親測安裝到越獄後的手機,一點問題都沒有(不用擔心證書的問題)【注意:越獄手機的版本一定要高于軟體的版本要求】

目前還沒有測試未越獄的手機,不過我想應該無法安裝,因為apple的審查機制是很嚴格的,必須安裝在有描述檔案provision的手機中内(這一點在真機部署測試時就已經展現出來了)

2014年5月30日插播

如果您都看到了這裡,我真的佩服您能忍受我如此繁瑣的措辭,因為時間原因,寫一篇部落格并不是很容易,是以有些語言或是排版組織的不是很好,1年過來了,現在我終于了解整個調試以及釋出以及多人開發的流程,如果您現在也是朦胧狀态,感覺apple的機制好麻煩,或是在多人開發時遇到了:valid signing identity not found 不妨建議您看我另一篇文章,文章最後介紹了certificate、app id、devices、provisioning profiles之間差別和聯系,相信您看完後一定會恍然大悟!

好了,謝謝各位看到這裡,說的有些啰嗦,但是如果你按照此步驟,走完流程,就會悟出其原理。至少不是看到一教程,又看到另一教程,都不一樣,幹着急。

有什麼問題可以給我留言,我看到後會盡量幫助大家解決,一起學習,成長。

贈送傳送門一個:http://www.cocoachina.com/special/market.html

20121109

mryang

2013年1月14日最新更新 :新版本送出稽核

當我們經過重重關卡,新項目終于在appstore 上線之後,就會接踵而來遇到維護的問題,那麼新版本送出,就沒有這麼複雜了,如果以上的教程你都了解了,新版本也就那麼幾個需要注意的地方,聽我慢慢道來。

1,首先需要修改代碼,就是說,你要有更新的内容,比如功能,比如bug(貌似是廢話)

2,當确定一切都ok之後,需要設定項目的version和build号,新版本

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

version是顯示對外的版本号,(itunesconect和appstore使用者可以看到),而build别人看不到,隻有開發者自己才能看到,相當于内部版本号。【更新版本的時候,也要高于之前的build号】

3,登入ituneconnect網站,在項目右側,點選add new version ,彈出提示輸入版本名稱和更新内容,完事後點save。

4,在網站上詳細審查一下新的版本名稱和更新内容,還有是否有需要替換的截圖,确定無誤後點右上角的ready to binary ,到此網站的設定完畢。接下來就是xcode送出新項目了。【此設定有一個需要注意的提示,如下截圖】

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

讓你選擇是稽核通過後自動更新到應用商店,或是自己手動控制更新,很人性化。

5,xcode設定 codesign identity 為釋出的證書,divice選則iosdevice ,然後build 然後archive,跟上邊第一次釋出時一樣。

6,打開organizer界面的archive标簽頁,檢查無誤後,先驗證validate後distribute。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

等待完畢後,如果沒有什麼問題,重新整理itunescnnet網站吧,你新送出的項目狀态變成了:waiting for review

20120114

**********************************打包上傳時錯誤彙總《持續更新》**********************************

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

它是說,你的簽名不對,打包釋出app時,一定要使用release模式,并把證書選擇為自己的distribution釋出證書。

關于validate built product設定yes或no

有時打包遇到錯誤,網上都說,在target設定----->build------>validate built product選項去掉或設定為no就可以了。從網上搜了一下validate built product的含義,大概意思是說開啟内置驗證,比如apple規定的一些icon大小是57x57,而你的icon尺寸不是這個,就會導緻釋出失敗。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

這個是說,debug的證書選擇錯誤了,解決辦法:

targets --> build settings --> code signing --> code signing identity設定為 iphone developer

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

這樣就ok啦。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

這個警告,網上遇到的人很多,但是衆說紛纭,貌似沒有一個權威的解決辦法,

首先要養成一個查閱官方文檔的習慣:https://developer.apple.com/ios/manage/distribution/index.action

要明白真機調試和釋出應用的幾個步驟,不能連app還沒建立,就直接想用xcode打包釋出啊!還有要明白debug和release的作用和差別。

這個警告,我的了解是:

前提确認xcode是近期的版本,工程的sdk也至少要是常用的。appid正确,真機調試證書和distribution證書都對應于目前xcode設定。

首先檢查你的project的info是否正确了,還有就是target設定是否正确..

然後注意不要使用模拟器build,要選擇device,去edit scheme裡檢視archive的時候,是不是使用的release!

如果都不行就删除鑰匙串裡的相關檔案,重新去adp裡申請再下載下傳!

20130510

上傳時出錯:failed to get the task for process 624

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

this error happens when you have set distribution provisioning profile in code signing. change it to developer provisioning profile, then it will work. worked for me for xcode sdk 4.5.

把你的code sign由distribution改成developer.就這麼簡單.

上傳時出錯:cfbundleversion

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

這個錯誤是說,我們項目info.plist檔案中的bundleversion弄錯了,這個屬性需要int類型的數值,改成如下圖所示就可以了。

xcode APP 打包以及送出apple稽核詳細流程(新版本更新送出稽核)

20140111