標籤:
原文轉自:http://blog.sina.com.cn/s/blog_68661bd801019uzd.html
首先確定帳號是否能發布, https://developer.apple.com/account,如果你開啟Provisioning Portal,然後點擊DisTribution看到的是中那樣,再考慮按下面的方法弄
(1)圖中加號是灰色,點擊圖中的加號,沒有反應,說明你的帳號不能發布,找你們老大要帳號,正常情況是加號是黑色,點擊會彈出一個建立認證介面。
(2) 沒有發布認證,如果有,是圖中那樣,如果你沒有或者狀態不對,則你需要建立認證,下面的內容會一步步介紹。
(3)發布還需要用到Xcode,就是需要一個蘋果系統,最好要有原始碼。(因為用ipa上傳更複雜,可能有的公司是外包買的代碼,然後自己公司上傳,對一個新手來說,第一次就用ipa上傳可能會崩潰。)
1.進入開發人員中心,進入到iOS Provisioning Portal介面,然後進入app ids介面建立一個專為發布軟體用的appid,並為其建立認證
名字不是很重要,隨意
根據最近幾年開發iOS的經驗,如果是上傳應用到APP Store必選第一個APP ID----explicit app id。如果是平常開發使用,用第二個更好,減少設定app id時選擇太多的麻煩;當然申請的第一個在平常測試的話,只能對一個簽名有效了。所以通常app id的選擇就是你有多少個項目就建立多少個專用app id。然後建一個開發用的app id。
第一個專用意思是說建立單一應用程式的appid,要用到:遊戲中心,在應用程式內購買、資料保護、和iCloud,推送,等一些對簽名有精確操作的情況,一個explicit app id只能為單一程式使用,舉個例子:com.csc.wahaha。 如果上傳選第二個也是可以的。使用*,*代表的是匹配任一字元,就是你的應用程式名稱任意。Bundle ID怎麼寫,我給個例子:(com.csc.*)。
蘋果建議使用完整的app ID進行上傳。因為如果你在以後想增加推送等其它功能,如果之前不是完整的app ID那麼你需要重傳軟體。如果你選的是第一項,畢竟推送是蘋果軟體一大特色,用的也很多,那麼你不能使用*,假設你的項目名叫wahaha,那麼appid就應該是com.csc.wahaha。
最後再強調一遍,上傳應用一定要使用explicit格式的app id。
項目名不要用中文,而新手可能會奇怪,手機案頭上軟體名為什麼是中文的呢,那個是在plist裡面設定的。
上面圖上的內容,如果是第二種appid,那麼不用看,如果是第一種,則用到什麼就選什麼。然後點擊繼續。
建立完appid後再添加一個認證,發布認證,必須是管理員身份,組員 身份沒有Distribution許可權,無法發布。
新手可能有疑問,Certificates與Provisioning Profiles的功能和區別是什嗎?Certificates就是認證,Provisioning Profiles是配置。認證是用於鑰匙串的,而設定檔是用於xcode的。應該先弄一個認證,再弄設定檔。最終這兩個都是必須的。
選擇Certificates,點擊加號,選擇App Store and Ad Hoc,點擊繼續,知道看見
然後開啟鑰匙串,
然後點擊電腦狀態列上的鑰匙串,然後從頒發機構請求認證
按照上面的操作,填上你帳號郵箱地址,名稱,然後點擊繼續,然後儲存到磁碟,儲存到案頭
然後點擊choose Files,選擇剛才那個CertificateSigningRequest.certSigningRequest建立的那個認證,然後就建立完成,然後下載發布認證,安裝到鑰匙串裡。
然後在弄一個Provisioning Profiles檔案,同樣的辦法,點擊加號,選擇Appstore,然後選擇你建立的那個appid,包含建立的認證,然後為認證取個名字。等到看到Your provisioning profile is ready.然後下載設定檔,然後雙擊開啟安裝到xcode中。在最新版本的xcode安裝這一步是不需要了。在4.X版本中會看到如:
看到這樣的時候,說明你認證安裝,設定檔都沒問題了
2,發布應用時需要選擇iOS Device。
對於用較低版本xcode的兄弟,可能有一些額外操作。(這個圖片隨著xcode版本的更新,已經失效,意思就是新版的XCODE介面與圖片不符,操作方式為,有個朋友用最新的版本就不需要做,當然如果跟著下面的做了也不會出錯)
將內容改成Distribution
3.配置TARGETS裡面的Summary的Bundle Identifier,
TARGETS裡面的Build Settings的Code Signing Identity,
PROJECT裡面的Build Settings的Code Signing Identity這三部分匹配,(在填寫開發人員網站時的
Bundle Id時也要匹配。具體怎麼算匹配在文章最下面已經補充,如果在出錯後可以看下,這裡的話還是按照順序一步一步做),然後進入Product菜單->Archive,然後會自動彈出Organizer,Archive包是用來上傳到AppStore的
之前說的認證匹配什麼的說的比較複雜,其實如果按步驟一步步來很簡單
這裡選擇你建立的發布認證就OK了
Applications must be ready for upload on iTunes Connect before they can be validated or submitted from within Xcode.
4.如果看到的是上面的介面,那是正常的,因為你還沒告訴蘋果公司你要上傳你的軟體,蘋果公司沒準備好接收你的軟體,那你接下來的是登陸開發人員中心,開啟https://developer.apple.com/account/
登陸IOS Dev Center的iTunes Connect,然後點擊Manage Your Applications,然後點擊Add New App ,(第一次發布的時候有一個介面選擇公司和語言,我是隨便寫的,好像沒什麼區別)然後開始配那些項,這個沒什麼難度,一看就懂,按照要求寫上去就行
10月17日補充,由於ios6的推出,蘋果在開發人員網站上有了一些變動,在填寫資訊的時候有個朋友糾結了3天也沒弄好,最後直接Q我,我就直接幫他做了。我就把如何填寫的資訊完整的發出來吧
可能在這裡填寫的時候,要注意一下,如果之前appid如果不是用*,可能看不到以下介面,這個要去重新建立一個appid,然後更新發布認證,指向那個appid,如果你看到的是下面的介面,那麼就不需要建立了,然後在Bundle ID Suffix這一欄寫上你的應用程式名稱,這一欄非常重要,與你Xcode上的程式名要一致才能上傳
這個介面沒什麼要填的,就是選擇價格,一般都是免費軟體,收費的同學一般都有“管”層級的同學在弄,一般不會看這個,呵呵。選擇完就繼續。
這個部分填寫的時候沒什麼需要注意的地方,當然越準確越好,但是就上傳而言,不會有太過嚴肅的審核,可能有時候要選擇primary category,一般都是business,其他視自己需要和實際情況。
這個部分一般全部選none就好,如果你的程式確實有涉及一些不健康的或者暴力的,那就需要仔細看看了
新增了一個內容,是鼓勵為小孩開發軟體,如果軟體是針對小孩子設計的,就選上,在分類和搜尋時會優先搜尋到。
這個部分將會在軟體通過後顯示在appstore介面的本文部分,雖然在上傳的時候審核的不強,但是還是要認真填寫,其他帶選擇性填寫的,如果有的話,最好還是填上去。
這個介面是ios6之後新加的,之前上傳的時候是沒有的,那些資料怎麼填寫的呢,郵箱就是你的登陸郵箱,名稱就是你填寫的使用者名稱,我的是
你也可以點擊Edit Profile查看你填寫的一些資訊,你也可以看到
suntiezheng不是我的名字,哈,是我們老大的。
接下來的,你要準備一個在蘋果商店顯示的表徵圖,當然是炫一點好,是使用者的第一印象,然後就是要有,按照標準,點擊旁邊的問號查看有什麼要求,至少要一張,如果你要相容iphone 5 ,那也要iphone5的。
(這裡點開中問號,會看到蘋果要求你上傳什麼格式,大小的圖片,而不是只能jpg,這個才是最標準的要求)
5如果抖按照要求順利提交,你的郵箱會收到蘋果公司的一封郵件,告訴你現在是Prepare for Upload這個狀態,然後在點擊Ready to Upload Binary之後,狀態會變成Waiting For Upload,到現在就可以回到Xcode上傳軟體了,就是
進入Product菜單->Archive,
6.看到這個介面就可以鬆一口氣了,這是蘋果公司告訴你你可以上傳瞭然後點擊Finish,然後回到Organizer-Archives介面,選擇Dis
tribution按鈕,會有如下介面
然後點Next,然後繼續點,直到上傳
到這個時候你要做的就是等待了,當上傳完成的時候你會收到郵件,通知你Waiting For Review。也就是大功告成。
可能第一次發布的時候有各種困惑,
1:到底怎麼樣算配置好各種參數?其實很簡單,只要把認證設定為專門發布的認證即可,沒有網上說的那麼恐怖,之前我被誤導了
2.我在弄的時候有No identities are available for signing 的錯誤,並且在target的bilding setting裡面選不上認證,就是灰色的。最後的原因是:在建立app id時
第二個項Bundle Identifier (App ID Suffix)沒有設定好
3.一定要有一個發布認證
有一個朋友出現這個問題,是發布認證不能識別,對於這個問題,分三步解決,第一步,點擊那個Organizer介面最下面的Refresh,要是依然是黃色驚嘆號,則第二步,右鍵刪除不能識別的認證,再到蘋果開發人員網站下載那個發布認證,如果這樣做後依然是黃色驚嘆號,那第三步,再蘋果開發人員網站移除掉那個發布認證,重新來,移除後,開啟鑰匙串,請求一個認證,然後提交,重新整理一下介面然後重新下載,安裝。如果還有問題,那就操作步驟有問題了。每一個步驟都不能錯,這就是蘋果的變態處
4.可能有各種問題
- You must provide a last name.
- You must upload at least one screenshot.
- You must provide an email address in a valid format (for example, [email protected]).
- You must provide a phone number in a valid format (for example, +1 123 456 7890).
- You must upload a large app icon.
- You must select a primary category for your app.
- App Description must be at least 10 characters in length.
- You must provide a first name.
- 對於這個問題是,是在填寫Last Name時沒有與你帳號的使用者名稱相對應的結果
- 這個問題是因為你的appid與
不對應。假如你設定的appid是com.csc.*,那麼你的Bundle Identifier應該是com.csc.calinks。calinks是我的項目名,是灰色的,無需自己修改,自己修改的只是前兩個欄位。類似的問題也有你在蘋果開發人員網站上填寫Bundle ID Suffix與你的項目名不同造成的。
這個也有可能你選擇的發布認證與這兩者不對應,建立發布認證在選擇appid時一定要看清了。這個就是前面說的3者要相對應。簡單的說就是最好按照步驟一步步來。
5.有個朋友問我,“我準備了這些圖片,該如何使用呢”
可能這個朋友同時看多個文檔,但我之前沒有明確提出來在哪個地方傳這些圖片,可能那個朋友就迷惑了,其實我有提到的,紅色的第5點的上面,用括弧補充出來了
6.有個朋友問:“那個所謂的把程式打包啥的是不是那個什麼操作Archive的過程?”這個問題,說的很對,我自己是這麼認識的。根本就不存在打包的概念,不象安桌產生一個APK,拿到手機上面就直接裝,當然越獄的是可以。如果你把你的程式用itunes產生一個ipa出來,我覺得這個過程才叫打包。而網上有些朋友說的打包,應該就是提交過程,所以根本不需要理會打包什麼
7.有個朋友問“在itunes connect上面,我想上傳一個免費的應用程式,我難道只需要操作
這個嗎?不需要額外的提交什麼合約之類的東東,嗎?”
這個問題,是沒必要擔心的,因為在申請開發人員帳號的,它所要求的資訊基本都已經錄入了,99美元你也付了,你有權利上傳你的程式,無需其他任何其他需求。當然通不通的過,那是審核階段的事情了。審核標準網上也有。
8.有朋友問,appid是不是一定要按照那個格式?蘋果公司推薦使用完整的APPID作為你發布的軟體的appid,不用使用帶有*的萬用字元,每一個軟體發布都對應一個唯一的appid,因為如果你沒用完整的appid,假如後續需要升級要用到完整的,而如果相同的appid被佔用,那麼你得重新上傳。
9.最近有朋友遇到了不能安裝認證的問題,而且不止一個人,其實是因為蘋果介面的變動,有一個是用於管理上傳到app store的版本,有一個是用於建立開發人員的認證。要看清選項
10.有人問可以不可以用ipa直接發布軟體到APPStore?這個是可以的,但最好還是先弄清楚正常的流程之後再弄ipa上傳。ipa上傳也是很有意義的事情,特別在大公司分工合作中,產品不歸開發人員管理。上傳的人可能不能看到代碼。
11.企業帳號的問題?如果用企業帳號,是可以直接裝到使用者的手機,無需經過蘋果的APPStore下載。確實挺方便。網上說適合500人以上的大公司,我感覺不是,無論大小公司,如果想讓客戶體驗到最新的軟體,那麼企業帳號絕對物超所值。而且無需知道安裝者的裝置號,無需越獄,所有的手機都可以裝。如何申請企業帳號以及企業帳號發布APP流程,推薦幾個文章:
申請蘋果開發人員企業帳號I
iOS 企業認證發布app 流程
有一個朋友說在弄的時候所有的步驟都沒有問題,但是在手機裡面開啟連結遇到“無法到達”的情況。itms- services:///?action=download-manifest&url=http://www.XXX.com /mytest.ipa,原因是伺服器不識別那兩個檔案類型,.plist和.ipa,後台伺服器需要添加檔案對這兩種類型的支援。在mime裡面添加。
我一 同學寫的-ios企業開發人員帳號使用
12.如何為AppID續約?續約流程連結
13.企業帳號的神秘面紗,任何未越獄手機在wifi模式下都能安裝。用iphone手機QQ或者其它軟體掃描如片,別用,不支援itms-services協議,點擊安裝搶先版
或者直接用safari開啟
itms-services://?action=download-manifest&url=http://www.calinks.com.cn/buick/dx/Buickhousekeeper.plist
不過我覺得企業帳號很廢。299美元沒必要,如果有一些特殊情況,軟體更新太頻繁,又不想通過蘋果的審核,或者軟體必須用到私人介面卻要給未越獄使用者安裝,或者你的大多數使用者都不是通過AppStore下載,根據你的情況,那麼你可以考慮下299美元的帳號。一般情況下,還是用99美元的好。
問:這種模式下載,是不是一定要在appstore有才行?答,不是。只要有299帳號,不需要在App Store上線,也上不了。
14.有人問,不管是開發,還是發布,appid都是同一個對不對?這個問題顯然不是,開發的appid和發布的appid沒有要求一定要同一個,你可以開發的時候是一個appid,發布的時候另外一個,完全沒任何關聯。推送認證跟開發認證和發布認證也沒有半毛錢的關係,唯一共同點是他們都是鑰匙串裡面。發布軟體不需要推送認證也能發布,如果你要加上推送功能,那麼才需要推送認證。不要被上面所有的要一致而迷惑,上面是指發布這一個操作內的所有的appid,認證要一致。而開發而發布是兩個不同的動作。就像抬手與放腳是兩個不同動作,類似於手指跟腳趾的關係。沒有任何關係,有關係的是手臂與手指,腿與腳的內部關係。
15.提交時提示錯誤This Bundle is invalid.New apps and app updates submitted to the App Store must be built with public。原因在於你用的xcode版本或者sdk的版本低,先確認你的版本是否為最新版或者是較新版。這個問題是因為從2014年2月1日開始所有新提交的app和更新,都要用xcode5和IOS7。用xcode4.6是不行的。這個過一段時間蘋果就會將提交應用的版本提高,所以最好的辦法就是保持xcode最新。
16.提示The session‘s status is Failed and the error description is failed to open ssh session
如果出現很多這樣的錯誤,原因在於你所在的網路,譬如大學學校的網路,房東的網路,或者公司網路限制了上傳跟下載。這種問題的解決辦法你可以先試著重傳,試個5遍還是這樣的錯誤,那就考慮換個網路環境,或者找網管釋放保留。
17.The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message.可能是Build Active Architecture Only的release設定有誤。
appStore應用發布流程