iOS App分發

一:如何打包並分發安裝?

我們都知道,爲蘋果開發應用需要通過蘋果審覈並在App Store上架,但審覈週期極爲漫長,同時如果需要在發佈前,想通過內側的方式對自己的應用進行測試,都需要用到程序的打包方式,下面,介紹幾種主要的打包方式:

  • 分發安裝包供越獄機使用
程序打包前,需要有與應用對應的App ID以及對應的Distribution版本的Provisioning File, 注意,一定要是Distribution版本的,Deployment版本的Provisioning File有效性很短,不能用作正是發佈。

第1步:設置代碼簽名

在iOS設備上運行的代碼都必須有簽名,點擊項目名(左側導航欄中最上側的藍色圖標),會顯示出Projects及Targets兩個選項卡,分別將其中的Build Setting中的Code Singing中的Release部分選中爲我們的Distribution版本Provisioning File,如下圖所示

第2步:生成Archive文件

將運行設備從模擬器設置成iOS Device, 可以不用連接設備,但必須選擇成iOS 設備,否則下面步驟無法進行。
店家Products -> Archive,如果簽名設置正常,簽名、編譯過程會正常的持續一段時間,成功後,會彈出Organizer,並將剛剛進行的Archive文件顯示出來。
點擊"Distribution"按鈕,會彈出三個選項,如下圖:
 
第一個選項用作向App Store正是提交用,這裏我們用不到,第二個選項後面會用到,這裏我們也暫且不提,選中第三個選項,將Archive文件導出,然後保存。
在桌面(默認路徑)找到感剛剛找到的後綴名xcarchive的文件,右鍵選擇,點擊“顯示包內容”,將Product -> application 下的名爲項目名稱的文件拷貝出來。

第3步:生成iPA包
打開iTunes,將剛剛拷貝出來的名爲項目名,後綴名爲app的文件拖拽到iTunes的資料庫中(界面左上角), 在資料庫-> 應用-下找到我們剛剛拖拽進去的應用,右鍵選擇,選擇在Finder中顯示,可以看到一個ipa安裝包,此文件便是我們將要分發給越獄用戶的安裝包了,此文件其實與審覈通過後從App Store中下載的安裝包沒有區別。


  • 製作Ad Hoc包供內測
針對個人開發者,如果開發者想在應用上架之前進行對應用進行內側,可以通過Ad Hoc方式進行分發,這種方式下的測試機不需要越獄。
AD Hoc安裝包生成方式很多,具體請參考此文
第一:可測試的設備最多隻有一百臺,且需要提前提供設備的identifier,開發者在provision中將此設備的identifier添加到provisioning file中。
第二:Ad Hoc安裝的過程中需要開發者提供provisioning file


  • 製作企業分發包
針對企業開發者賬戶,也可以將應用選擇爲企業內分發安裝,而不通過蘋果的應用商店,設備不需要越獄。
企業安裝包打包的過程中大體步驟沒有太大區別,無非是在Organizer中點選Distribute後,選擇第二個選項進行打包。安裝過程參考此文,注意!如果是企業安裝包,那麼並不要求設備一定越獄。企業分發包只能由企業開發者賬號進行,普通開發者無此權限。


二:Xcode debug log無法顯示中文

默認情況下,當調試器爲LLDB時,NSLog輸出函數是無法顯示中文的,如果將調試器換回GDB,中文可正常顯示,更換方法如下圖所示:



注意更換調試器後,會有下面兩個問題:
1:編譯時會有調試器相關的警告
2:使用GDB調試,速度較LLDB確實有下降


三:模擬器調試 vs 真機調試

  • 功能性開發時,兩者基本沒區別,模擬器的使用稍顯便利,機器上最起碼不用老插着設備,編譯運行的速度也較真機要快,同時有些應用情景模擬器模擬起來比較方便,比如內存警告這種錯誤,想在真機上模擬出來還是比較困難的。
  • 模擬是在PC機上模擬的,運行環境,包括CPU速度,可用內存等較真是設備都有很大的優勢,所以,並不能將應用在模擬器上的性能表現認爲是應用的真實表現。
  • 有些功能只能在真機上測試,比如APNS,比如多點觸摸手勢,這時模擬器就無法勝任了
  • 架構的不同(x86 vs ARM)造成了內存管理上的些許不同,所以,在調試內存相關問題時儘量使用真機
四:SVN刪除新添加,且未commit的文件

如果一個文件新添加,且未commit,那麼如果想刪除此文件,首先點擊右鍵-> source control -> discard changes.
此動作也就是執行了svn revert命令,但爲什麼xcode刪除文件未將svn revert 及svn delete這兩個命令捆綁到一起就不得而知了。

五:如何將crash log符號化

首先電腦內要有crash log對應應用發行版的archive,這樣,將設備接入後,crash log自動會將費解的地址符號變成可讀性更高的函數名符號表。
如果沒有設備,而只有crash log,可將crash log手動的import到organizer中log中。
發佈了36 篇原創文章 · 獲贊 0 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章