發佈IOS應用程序到蘋果APP STORE完整流程

參考:http://blog.csdn.net/mad1989/article/details/8167529(xcode APP 打包以及提交apple審覈詳細流程(新版本更新提交審覈))

http://www.ttlsa.com/dev/how-to-publish-iosapp-to-appstore/ (如何發佈IOS應用程序到蘋果APP STORE)

 

開發環境:xcode5.1.1

iphonesdk:7.1

開發機器:iMac

真機部署測試:apple個人開發者ID

 

嚮導:

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

http://www.cnblogs.com/JuneWang/p/3798201.html (該鏈接所指文章實現了消息推送的功能、詳細講解了各個證書的申請,以及使用)

http://www.ttlsa.com/dev/ios-kaifazhe-shenqing-zhengshu/ (iOS開發這申請發佈證書)

 

我就說說接下來應該做的流程。在你保證擁有以上兩個證書的前提下,距離app提交審覈,已經剩下兩大步了:1,itunes-connect創建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。

 

如果你不確定什麼樣的App ID適合你的項目,我推薦你讀下蘋果關於這一主題的文檔:Technical Note QA1713。

 

Step 2: Distribution Certificate(發佈證書)
iOS應用都有一個安全證書用於驗證開發者身份和簽名。爲了可以向App Store提交app,你需要創建一個iOS provisioning profile 。首先需要創建一個distribution certificate(發佈證書),過程類似於創建一個development certificate(開發證書)。如果你已經在實體設備上測試你的App,那麼你對創建development certificate就已經很熟悉了。

 

如果對此不熟悉,我建議你讀下蘋果關於signing certificates和provisioning profiles的詳細指導。

 

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就可以解決這個問題。

配置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時,要在新版本的版本註釋中進行說明。如果你提前告知用戶,那麼至少有一點,你已經盡力阻止問題的發生了。

 

 

(2) 對於一款新app,我經常會把deployment target設置爲最近發佈的系統版本。因爲新iOS版本發佈後,滲透率的增長速度是令人難以置信的。很多人認爲提高deployment target會失去大部分市場,這個說法並不準確,比如iOS 6,iOS 6發佈後一個月,超過60%的設備已經進行了更新。但對android而言,就是另外一回事了,Android用戶並不會像iOS用戶那樣熱衷於更新操作系統版本。

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

 

 

在最新的WWDC2014上,公佈的數字顯示,iOS7的市場佔有率已經爲87%

 

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) 120px x 120px(required) for iPhone5/iPhone5c/iPhone5s
Search Icon: 29px x 29px and 58px x 58px (optional)
Settings Application: 50px x 50px and 100px x 100px (optional)

 

Step 2: 屏幕截圖


屏幕截圖的作用不言而喻,你可以爲每個app上傳5張截圖,雖然至少需要上傳一張,可能很少有人會只上傳一張圖片。另外,你還需要分別爲iPhone/iPod Touch和iPad/iPad Mini準備不同的屏幕截圖。這也是不小的工作量,但卻能展示應用的另一面。Shiny Development開發的一款售價6.99美元的Mac軟件Status Magic可以爲你節省不少時間。Status Magic可以幫你把狀態欄放在截圖的正確位置。

 

屏幕截圖和icon是應用給用戶的第一感覺,直接關係到用戶會不會購買。不過,你所上傳的屏幕截圖也不一定非得是實際的截圖,看看Where’s My Water? 截圖可以通過使用此策略,更具吸引力和說服力。

 

 

當我們連上調試機以後。可以利用Xcode中Organizer中的New Screenshot輕鬆的截出標準大小的圖片。

 

Step 3: 元數據
在提交應用之前,要管理好app的元數據,包括1應用名稱、2版本號、3主要類別,4簡潔的描述,5關鍵詞,6.支持URL。如果你需要更新應用,你還要提供新增加的版本內容。

 

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

 

 

3. 提交準備

Xcode 4以後,開發者提交應用的過程就簡單多了,可以直接使用Xcode進行提交。首先在iTunes Connect中創建app,訪問iTunes Connect,使用你的iOS開發者賬號登陸,點擊右邊的“Manage Your Apps”,點擊左上角的“Add New App”,選擇“iOS App”,然後完成表格。

(注意,創建時填的APP就是你開發的項目,名稱和ID一定要相同)。https://itunesconnect.apple.com

 

點擊進入

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

第一個頁面,選擇語言,應用名稱,skunumber,bundleID(會讓你選擇自己創建項目的APPID)。(答疑:在我們進行版本更新的時候名字,描述,新版本描述,關鍵詞,支持URL,截圖、聯繫方式,Review Ntoes)均可以更改

 

 

SKU Number是一個用來識別app的特殊字符串。我經常使用app的bundle identifier。最下邊是app的Bundle ID,你可以從下來菜單中選擇通配符App ID或者準確的App ID。

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

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

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

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

接下來是選擇APPicon 一張1024X1024的軟件圖標,讓ui做吧,我也不曉得軟件的圖標爲啥要做這麼大;

繼續上傳5張軟件的截圖,要挑選最重要的圖片展示,大小是640x960,xcode上集成了截圖功能,則是打開window-organizer視圖窗口,點擊自己的手機標籤頁下的screenshot,就可以截圖了,尺寸正好,很方便的噢親。

完事後檢查無誤,點擊提交。

 

選擇是否使用各種加密技術,是否使用第三方的內容,是否有廣告等。

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

好了,走到這一步,基本上算是完成了一個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 alt="" />

 

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

 

 

 

4.xcode上操作:設置證書,build打包,提交項目。

 

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

 

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

 

 

 5. 上傳二進制文件

  • 接下來打包應用程序(前提,已經申請過發佈證書並安裝,未申請的請參照本文開頭的鏈接進行操作)

a.打開Xcode,選擇Product->Archive (必須採用真機)

AppStore

b.然後選擇distribute…

AppStore

c.選擇第二個

AppStore

d.選擇發佈證書

AppStore

點擊next之後便會生成.ipa文件

3.上傳.ipa文件,,需要用mac自帶的Application Loader

a.在finder中選擇應用程序(Applications)->右鍵選擇Xcode->顯示包內容->contents->Applications->Application Loader

AppStore

b.打開Application Loader會出現登錄界面,同樣用登錄開發者中心的賬號登錄,第一次登錄會出現一個接受協議頁面,打√後繼續就行了

c.進入後選擇Deliver Your App,會出現你在developer中心填寫的項目,是等待上傳狀態,選擇上傳ipa就可以了。

4.上傳成功後再回到開發者中心,刷新頁面就會發現項目是等待審覈狀態了,正常審覈週期是5個工作日

 

 

注意:

在使用Application Loader上傳.ipa文件的過程中,遇到了以下問題,

 

通過修改Valid Architectures 刪掉arm64/arm7s,只保留armv7的方式解決該問題:

 

 

提醒:

如果你使用了CocoaPods來進行第三方類庫管理,你需要把你CocoaPods管理的工程的(Valid Architectures 刪掉arm64/arm7s,只保留armv7)

 

 

哈哈。第一次發佈。碰到了很多問題,得到了不少好友幫助,非常感謝。

也希望本文能對即將發佈系統的你起到一些知道、幫助。那我也將會非常開心。

 

 因爲還沒體驗過應用更新,所以一下內容均摘抄自     http://blog.csdn.net/mad1989/article/details/8167529

 

PS。當我們的ipa文件通過application loader上傳後,忽然發覺不對。想重新替換上傳的話。可以通過以下步驟:

1.https://itunesconnect.apple.com  進入到我們的應用

2.點擊view detail

3.進入view detail後,在右上角有 

 

選擇Binary Details

4.進入頁面以後,點擊Reject This Binary就行了

5.重新通過Archive打包,重新通過Application Loader上傳

 

 

 

 

 

 

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

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

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

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

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

 

 

2014年5月30日插播

如果您都看到了這裏,我真的佩服您能忍受我如此繁瑣的措辭,因爲時間原因,寫一篇博客並不是很容易,所以有些語言或是排版組織的不是很好,1年過來了,現在我終於理解整個調試以及發佈以及多人開發的流程,如果您現在也是朦朧狀態,感覺apple的機制好麻煩,或是在多人開發時遇到了:Valid signing identity not found 不妨建議您看我另一篇文章,文章最後介紹了Certificate、App ID、Devices、Provisioning Profiles之間區別和聯繫,相信您看完後一定會恍然大悟!

Valid signing identity not found解決辦法(原有IDP私鑰丟失)及Certificate、App ID、Devices、Provisioning Profiles之間區別http://blog.csdn.net/mad1989/article/details/8699147

 

 

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

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

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

 

 

20121109

mryang

 

 

 

 

 

2013年1月14日最新更新 :新版本提交審覈

 

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

 

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

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

Version是顯示對外的版本號,(itunesconect和Appstore用戶可以看到),而build別人看不到,只有開發者自己才能看到,相當於內部版本號。【更新版本的時候,也要高於之前的build號】

 

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

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

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

 

5,Xcode設置 codesign identity 爲發佈的證書,Divice選則iosDevice ,然後build 然後archive,跟上邊第一次發佈時一樣。

6,打開organizer界面的archive標籤頁,檢查無誤後,先驗證Validate後Distribute。

等待完畢後,如果沒有什麼問題,刷新itunescnnet網站吧,你新提交的項目狀態變成了:Waiting For Review

 

 

20120114

 

 

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

 

 

 

上傳時出錯:Application failed codesign verification.

 

它是說,你的簽名不對,打包發佈APP時,一定要使用Release模式,並把證書選擇爲自己的Distribution發佈證書。

 

關於Validate Built Product設置YES或NO

有時打包遇到錯誤,網上都說,在Target設置----->build------>Validate Built Product選項去掉或設置爲NO就可以了。從網上搜了一下Validate Built Product的含義,大概意思是說開啓內置驗證,比如apple規定的一些icon大小是57X57,而你的icon尺寸不是這個,就會導致發佈失敗。

 

 

 

上傳時出錯:code signing is required for product type Application in SDK iOS 6.1.

 

 

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

TARGETS --> Build Settings --> Code Signing --> Code Signing Identity設置爲 iPhone Developer

這樣就ok啦。

 

 

 

上傳時警告:cApplication failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011).

 

 

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

首先要養成一個查閱官方文檔的習慣: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

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

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

 

20140111



轉自http://www.app-edu.net/article-101631-1.html

發佈了2 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章