老板,我要打包!花式的那種!
沒有錯!折騰了這么久,我們卻還有件最重要的事情沒做,那就是給我們的寶貝兒App打個LV,哦,不對,IPA包包。
設置修改
上一篇里填寫提交信息的時候,這一塊我們自己嘗試的時候肯定都看到了,其實就是現在要用到的地方。上面的Apple Watch點開就會發現跟App的相關信息一樣,如果你有開發對應的Watch App,就需要在那里填寫和上傳相關信息及文件,這里不多說了。我們要看的是下面的構建版本,這里的構建版本就是我們剛剛說的需要上傳的.ipa包。IPA是Apple程序應用文件iPhoneApplication的縮寫,作為文件名后綴的.ipa就表示了這是一個蘋果手機程序安裝文件,可以安裝到iPhone和iPad上。那我們要怎么樣把我們開發的App打包成一個ipa文件呢?先不急,在打包之前我們必須對工程文件做一些必須的設置修改。
首先打開我們的工程文件,看到Project里的info選項頁,這里有個iOS Deployment Target需要注意下,這是你的App所支持的最低iOS系統版本,你如果調到9.3,那只有iOS9.3的系統才能安裝你的App,所以這里其實開發的時候就應該根據實際支持情況設置好,打包前最好再來核實一下,當然這個不是你想支持多低版本就可以隨便設置的,牽涉到你接入的各種SDK支持版本,以及你工程中實際調用到的API所支持的最低版本等等。
再看到Build Settings,往下滾動找到Build Options,這里有個Bitcode的開關,如果你引入了第三方庫,編譯后發現報錯bitcode,可以在這里來關掉,或者你不想蘋果二次編譯你上傳的App來優化,也可以關掉。最重要的是下面的Code Signing,也就是我們之前講到的代碼簽名,檢查你的證件的時候到了。先在下面的Provisioning Profile里改成你之前申請安裝好的對應的App的描述文件,再在Code Signing Identity下,把所有的選項都改成你之前已經申請并安裝好的發布證書即可。
接下來轉到Targets下你的目標文件,選擇第一個General。圖中這三塊區域需要仔細核對一下。
Identity下,Bundle Identifier不必多說,當你的各類證書文件都申請好后,這里就不要再輕易改動了,而且很多第三方的SDK需要綁定Bundle ID,隨意的改動會導致SDK運行錯誤,也會讓你之前申請的描述文件失效,無法進行必要的操作。Version是版本號,和你之前網頁上填的一致即可。Build是你編譯的版本號,相對Version可以更細化一點,每一次最終提交的版本可能在開發階段還經歷了幾個小版本的迭代開發,最后綜合成一個大版本提交,所以在這里可以做一個迭代記錄。
Deployment Info下,第一個和剛才Project下的最低支持版本一致即可。第二個是你的App支持的設備平臺,如果你只支持其中一種就選擇對應的選項,如果iPhone和iPad都支持,就選擇Universal。第三個Main Interface是你如果用了StoryBoard(故事版)開發的話,這里需要選定一個主故事版,如果沒用到就清空。第四個Deviece Orientation是你的App支持的設備旋轉方向,像有的App不僅支持豎屏,也支持橫屏,如果你只支持豎屏就勾選Portrait即可。最后一個是狀態欄的顯示,就是你手機屏幕頂上那個有信號和電量的條,默認Default是黑色的,選擇Light是白色。Hide status bar是問你是否隱藏狀態欄。最后一個Requires full screen,我上網搜了下,應該是跟iOS9后加入的多任務功能特性有關,如果不需要就勾上,具體的可以點進入鏈接了解下(iOS項目更新之升級Xcode7 & iOS9)。另外記住這里的選項的對應App全局的,如果你只是在一兩個頁面更改狀態欄的顯示,還需要根據情況調用相關API進行設置。
最后的App Icons and Launch Images,是關于App圖標和啟動屏顯示的。App Icons Source是你的圖標資源集,Launch Image Source是你的啟動屏資源集,它們都在你的.xcassets文件夾下。在你的左側工程目錄里找到這個文件夾,可以看到下面的頁面。一般新建工程默認只有個AppIcon,可以看到右側會有很多尺寸的圖標需要上傳,我這里因為只支持iPhone,所以只顯示了iPhone所需要的圖標資源,如果你還支持iPad,需要上傳的圖標會更多,具體的尺寸要求其實挺簡單的,可以看到每一大項最下面都有一個pt數,比如圖中第一個是29pt,每一個圖標框下有一個倍數,1x就是29x29,2x就是58x58,然后以此類推即可,如果傳PNG記得關掉Alpha通道。
再來看一下LaunchImage。新建工程默認是沒有LaunchImage的,所以我們得手動建一個新的,在目錄空白處右鍵彈出菜單,如圖選擇即可。新建后會讓你傳不同屏幕的啟動圖,尺寸要求跟上一篇版本信息那里一樣,可以參考下那里的表格,這里不再重復。
將所有需要的圖片資源都上傳好后,回到之前General設置頁面,將這兩個Source選為你剛剛傳了圖片的兩個資源集即可。第三個Launch Screen File是如果你有用到默認建立的LaunchScreen.xib或者你自行建立的一個IB頁面來做啟動頁,就需要在這里選上,沒用到就清空。
把這些弄完后,別忘了檢查下是否打了斷點忘記去掉。
再到Edit Scheme中檢查一下。
先看看Run-Info里的Build Configuration是不是改成了Release,再看看Run-Diagnostics中的僵尸模式有沒有關。
然后再瞅瞅Archive下,Build Configuration是不是選的Release,下面的Archive Name又是不是正確的App名字。
都設置完成后,將模擬器切換到Generic iOS Device,然后Command+B進行一次編譯,當然你選擇真機編譯也可以。
打包
這以上的一切都沒問題了,就可以最后的打包上傳了。打包的方法有多種,我們一個個來看看。
方法一(常規方法):
首先確認下你的版本是Xcode6及以上,我們在xcode頂部工具欄里選擇Product-Archive,工程會再次編譯,然后彈窗。
查看一下相關信息無誤后,選中你需要上傳的App,然后點擊右側的Export,彈出彈窗。
如圖我們選擇第一個Save for iOS App Store Deployment,點Next下一步。然后會讓你選擇開發者賬號,這個不用我多說了,用哪個賬號發布就選哪個。
選好賬號下一步,核對一下包的信息,看看簽名證書有沒有錯,描述文件有沒有錯,然后Export,保存到你找得到的位置即可。
打開生成的文件夾,里面的.ipa文件就是我們需要的包。
方法二:
我們在之前的編譯成功過后,工程目錄最底下Products索引里的.app文件就會從紅色變成黑色,表示該文件已經存在。右鍵點選彈出菜單,選擇Show in Finder,找到文件所在。
找到后,先打開你的iTunes,切換到應用,把你剛才找到的.app文件直接拖進去。
此時空白處就會出現你的App,此時右鍵點選彈出菜單,再選擇在Finder中顯示,就能找到你需要ipa包了。
方法三:
還是找到你剛才的.app文件,現在桌面建一個空文件夾,取名“Payload”,不要寫錯哦。然后把你的.app文件扔進去,右鍵點擊文件夾壓縮得到一個.zip的壓縮包。把壓縮包的后綴名.zip改成.ipa就行了。
方法四:
上面這些打包的方式是不是有些麻煩?別著急,有捷徑?,F在有一款叫做AMAppExportToIPA的Xcode插件,可以一鍵打包。
先看看怎么安裝這個插件,我們可以使用Xcode的插件管理工具--Alcatraz來安裝插件,怎么安裝這個管理工具可以看看這篇文章(使用Alcatraz來管理Xcode插件),在工具的搜索欄里搜索剛剛的插件名稱找到插件安裝即可。另一種方式就是直接下載去github上下載AMAppExportToIPA,打開其中的工程文件直接Command+B編譯一次,然后重啟Xcode即安裝成功。
插件安裝成功后,右鍵.app文件彈出菜單,選擇最下面的Export IPA即可輸出我們需要的包文件。是不是很簡單粗暴?
方法五:
用插件打包是簡單了,但前面繁瑣的設置還是很麻煩呀?有沒有全自動一條龍包干服務呢?勞動人民是智慧無窮的,而懶也是人類前進路上的催動力之一。打包,我們也可以偷偷懶,用腳本來自動打。不過這里我就不多說了,大家感興趣的可以看看這篇文章(詳解Shell腳本實現iOS自動化編譯打包提交)。
上傳
包打好了,我們還得上傳呀。上傳構建版本有兩種方法,第一種是通過Xcode上傳,僅支持Xocde6以上版本,另一種是通過Application Loader來上傳。
Xcode上傳
回到打包方法一的Archive,我們在點Export輸出前,可以看到上面的藍色按鈕Upload to App Store,其實這里不用輸出IPA,直接點這個就會自動打包并上傳構建版本了,當提示成功時即上傳成功,可以去網頁端找你的構建版本了。。。。。。
畫外音:“那你前面啰里啰嗦講辣么多打包干啥子?調戲我們老實人?”
當然不是,因為這種上傳方式,偶爾是會出現些不可描述的問題的,很可能傳一次就成功,也可能怎么傳都傳不上去,哪怕你次次提示上傳成功,網頁端的構建版本也仍然找不到你的寶貝兒App。那怎么辦呢?當然先得按之前的設置流程好好檢查下有沒有什么設置錯誤,沒有的話,再試幾遍,還不行那就用第二種方法來上傳了。
Application Loader上傳
在構建版本那里點擊Application Loader,下載最新版本并安裝到你的Mac上。然后打開后如下圖,先檢查下左上角的Apple ID是不是你的開發者賬號,然后點選“交付您的應用程序”,在點右下角選取。
然后找到你之前打好的ipa包,這時會有彈窗讓你核對相關信息是否正確,核對無誤后點下一步就可以了,等待上傳成功提示,然后去構建版本處就能看到你剛剛上傳的包了。
最后一切就緒,就點右上角的提交審核吧,如果點了不成功,會有提示你哪里填錯或者少填了,會用紅色標注出來,根據提示修改后即可。提交審核時還會讓你選擇App中是否用到了IDFA,即廣告標識符,有就選是,沒有就否。具體相關可以看看這篇文章(iOS提交審核:您的 App 正在使用廣告標識符)
關于審核
AppStore的審核是非常嚴格的,App的上線被拒是家常便飯的事情,所以大家心里要有所準備,也應該合理安排提交的時間,以免耽誤了正常的發布。以往審核的時間還比較長,大約需要1周左右的時間甚至更長,今年中旬起蘋果增加了審核人力,審核速度明顯加快了不少,但不代表審核的標準就下降了,這里貼幾篇審核注意事項,大家可以好好參考下,看看自己上傳的App有沒有這些問題。
另外萬一時間非常緊迫,還能申請加急審核,可以看看這幾篇文章了解下。
結語
到這基本整個流程都仔仔細細了梳理了一遍了,沒想到居然弄出四篇來了,我也是醉醉的,不過總算可以收工交差了。這既算我自己的一些工作記錄,也希望能分享給大家少走點彎路吧,非常感謝能看到這的每一位朋友!