iOS App研發(fā)的最后沖刺:內測與部署

當開發(fā)者歷經(jīng)磨難瓢宦、披荊斬棘,完成了一個iOS項目后灰羽,最后的臨門一腳就是應用的內測驮履、部署。那么廉嚼,在這最后的射門動作中玫镐,都有哪些地方需要開發(fā)者注意?有哪些方式能夠更好地幫助我們進行iOS應用的發(fā)布部署怠噪?

本文針對iOS App開發(fā)的最后階段來詳解如何在真機上進行調試恐似,將App發(fā)送給其他測試人員進行內測,以及內測完成后如何將App上傳至App Store進行應用審核傍念,針對蘋果賬號的類型矫夷、真機調試、打包與崩潰收集進行深度剖析捂寿。

蘋果賬號的類型

蘋果開發(fā)者計劃分為個人口四、公司、企業(yè)和教育開發(fā)者四個類型秦陋。個人開發(fā)者證書費用為$99一年蔓彩,該賬號在App Store銷售者只能顯示個人的ID。并且驳概,個人賬號只能有一個開發(fā)者赤嚼,100個蘋果的iOS設備UDID測試。

1.png
1.png

公司開發(fā)者費用為$99一年顺又,該賬號在App Store銷售者可以顯示類似Studios更卒,或者自定義的團隊名稱。公司賬號可以允許多個開發(fā)者協(xié)作開發(fā)稚照,比個人多一些帳號管理的設置蹂空,可以設置多個Apple ID俯萌,分4種管理級別權限,100個蘋果的iOS設備UDID測試上枕。但是咐熙,申請時需要填寫公司的鄧白氏編碼(D-U-N-S),D-U-N-S鄧白氏碼可以在 蘋果官方網(wǎng)站免費申請辨萍。

企業(yè)開發(fā)者賬號費用為$299一年, 該賬號開發(fā)應用不能發(fā)布到App Store棋恼,只能企業(yè)內部應用,蘋果的iOS設備UDID數(shù)量不限制锈玉。企業(yè)賬號適合不希望上線App Store爪飘,但是需要企業(yè)內部,比如1000人的iOS設備都部署拉背。

2.png
2.png

特別需要注意的是师崎,其他渠道提供的所謂的企業(yè)證書實際上是與他人共用一張企業(yè)證書,蘋果會偵測到這種情況去团,并進行封號處理抡诞。封號后,包括已經(jīng)使用該證書安裝了的App都會無法繼續(xù)使用土陪。

這些開發(fā)者賬號的申請都需要一個重要的條件昼汗,那就是有一張支持Visa或MasterCard的信用卡。

真機調試

使用真機調試鬼雀,必須要使用開發(fā)者證書顷窒,以及正確填寫App ID,配置好Provision Profile源哩,具體流程如下:

  1. 安裝調試證書
  2. 填寫 App ID
  3. 根據(jù) App ID 填寫 provision profile 鞋吉,并下載安裝到 Xcode
  4. 真機調試運行

怎樣申請開發(fā)者證書?

需要下列幾步:
1.請求CSR文件

  • 打開鑰匙串訪問励烦, 從證書頒發(fā)機構請求證書
3.png
3.png

4.png
4.png
  • 填寫電子郵件地址谓着,常用名稱,勾選存儲到磁盤坛掠,最后保存CSR文件到指定位置


    5.png
    5.png
  • 最后保存CSR文件到指定位置


    6.png
    6.png

2.創(chuàng)建調試證書

  • 選擇CSR文件


    7.png
    7.png
  • 點擊Download下載赊锚,雙擊安裝到鑰匙串匙串


    8.png
    8.png
  1. 雙擊安裝

可以看到鑰匙串中有了我們剛安裝的證書,左側有個三角屉栓,點擊展開可以看到證書私鑰舷蒲,如果沒有私鑰,則證書是不可用的友多,一般這種情況是你在開發(fā)者網(wǎng)站上下載了其他Mac上制作的證書牲平,可以從這臺Mac導出證書安裝到自己的電腦上。

9.png
9.png

創(chuàng)建AppID

1. 填寫AppID Name

10.png
10.png

2. 支持推送域滥、Game Center等功能的話不能創(chuàng)建含有通配符的AppID纵柿,所以這里我們選擇Explicit App ID*
11.png
11.png

3. 勾選需要的服務蜈抓,然后Continue
12.png
12.png

添加設備

1. 填寫設備名稱、設備UDID

13.png
13.png

2. Register
14.png
14.png

注意:最多添加100臺設備

創(chuàng)建Provisioning Profile

15.png
15.png

16.png
16.png
  • iOS App Development:真機調試Profile(需要選擇iOS設備藐窄,只有包含的設備可以真機調試)
  • App Store:上傳到AppStore商店Profile
  • In House:企業(yè)內發(fā)布Profile(所有設備可以安裝)
  • Ad Hoc:Ad Hoc Profile(需要選擇iOS設備资昧,除了只有包含的設備可以安裝外與AppStore酬土、Inhouse版本基本沒有區(qū)別)

1. 選擇AppID

17.png
17.png

2. 選擇證書
18.png
18.png

3. 選擇設備(只有Development荆忍、AdHoc需要選擇設備)
19.png
19.png

4. 填寫Profile Name
20.png
20.png

5. 點擊Download下載,雙擊安裝到Xcode

XCode打包

Configurations

默認Configurations包含兩個配置撤缴,Debug刹枉、Release,可以看到Build Setting里好多配置都區(qū)分了Debug屈呕、Release微宝,可以根據(jù)不同的情況配置不同的選項,最常用的就是根據(jù)真機調試虎眨、打包發(fā)布蟋软,分別在Debug、Release選擇合適的證書嗽桩、Profile岳守。

21.png
21.png

個人認為,現(xiàn)在的Xcode不用再Duplicate Release配置來建立專門打包AppStore或者Adhoc或其它的Configuration碌冶,因為感覺并不會方便多少湿痢,只是省去了選擇證書,但是你還是設置Archive選項扑庞。
22.png
22.png

一般來說譬重,Adhoc、AppStore\Inhouse罐氨,二者用的都是同一個證書臀规,只是Profile不同而已,簡單的選擇一下Profile栅隐,是不是更省事一些呢塔嬉。

指令集

先說一下iOS設備的指令集:

  • arm64:

iPhone 5s, iPhone 6, iPhone6 Plus;
iPad Air, iPad Air 2;
iPad Mini 2, iPad Mini 3;

  • armv7s:

iPhone 5, iPhone 5c;
iPad 4;

  • armv7:

iPhone 3GS, iPhone 4, iPhone 4S;
iPad, iPad 2, iPad 3, iPad Mini;

  • armv6:

iPhone, iPhone 3G;

23.png
23.png
  • Architectures
    該編譯選項指定了工程支持哪些指令集,如果支持的指令集數(shù)目有多個约啊,就會編譯出包含多個指令集二進制包邑遏,造成最終編譯的包很大恰矩。

  • Valid Architectures
    該編譯項指定可能支持的指令集,該列表和Architectures列表的交集外傅,將是Xcode最終生成二進制包所支持的指令集俩檬。

如上圖所示,Architectures 支持的指令集為 armv7碾盟、arm64、Valid Architectures 支持的指令集為armv7冰肴、armv7s、arm64熙尉,這時只會生成一個 armv7联逻、arm64 指令集的二進制包。

  • Build Active Architecture Only
    該編譯項用于設置是否只編譯當前使用的設備對應的arm指令集检痰。通常情況下,該編譯選項在Debug模式都設成YES铅歼,Release模式都設成NO。該選項起作用的條件有兩個厦幅,必須同時滿足才會起作用:

注意:許多用戶可能會發(fā)現(xiàn)自己的應用安裝不了俭识,這時候可以看看自己的App支持的指令集,遇到過幾個用戶的指令集只支持arm64套媚,這樣的App在設備不是arm64的情況下是安裝不了的。

Code Signing

24.png
24.png

上圖中Code Signing Identity包含的Debug和Release兩項玫芦,其中本辐,Debug指選擇真機調試證書,Release指選擇發(fā)布證書(AdHoc慎皱、AppStore/Inhouse打包都使用發(fā)布證書)。而在 Provisioning Profile中祈匙,無論真機調試,還是發(fā)布App夺欲,選擇的Profile的App ID要與項目工程的BundleId匹配。

注意:Provisioning Profile的Release這里選擇的Profile伞剑,并不一定就是簽名ipa用的Profile市埋,后面會講到黎泣。

導出ipa

導出ipa首先需要選擇ipa版本腰素,導出App Store/AdHoc/企業(yè)版ipa,然后點擊Next。如果Xcode 沒有登錄企業(yè)開發(fā)者賬號献起,選擇導出企業(yè)版ipa的時候會提示添加企業(yè)開發(fā)者賬號到xcode。

選擇證書

25.png
25.png

這里就是上面說的在工程選擇的證書姻政、profile可能并不是簽名用的岂嗓,關鍵在這里,這里會顯示已經(jīng)添加到Xcode的開發(fā)者賬號對應的證書列表厌殉,可以選擇簽名用的證書。如果跟工程設置的證書一致器紧,并且Profile匹配楼眷,則會根據(jù)工程配置的證書、Profile來簽名導出罐柳。如果跟工程配置的證書不一致,則會根據(jù)選擇的證書自動查找匹配的Profile來簽名導出ipa齿梁。
26.png
26.png

這里會顯示導出的ipa用的是哪一個證書芦拿、Profile簽名的查邢,Profile旁邊那個箭頭并不是選擇Profile酵幕,然后在Finder中顯示當前Profile。 所以導出的最后一步芳撒,盡量確認一下簽名的證書、Profile是不是自己指定的芥备。

內測分發(fā)ipa文件

內測分發(fā)ipa文件給測試人員主要有3種方法:

  1. 使用iTunes將iPa同步到手機中舌菜;
  2. 使用itms-services協(xié)議進行下載分發(fā);
  3. 使用第三方工具進行下載分發(fā)日月。

請注意,無論使用何種形式分發(fā)尺借,內測的人數(shù)限制精拟,以及App的UDID限制始終是存在的。如果想新增加測試人員蜂绎,開發(fā)者仍然需要將UDID寫入Provision Profile荡碾,重新生成ipa文件進行分發(fā)。

使用iTunes進行內測分發(fā)

使用iTunes進行分發(fā)比較麻煩坛吁,需要測試用戶使用數(shù)據(jù)線連接裝有iTunes的電腦上,先將ipa文件添加到iTunes哆姻,再將iTunes的App同步到手機上。由于國內用戶對iTunes熟悉程度不高矛缨,故不推薦大家使用這種方式進行內測分發(fā)。

使用itms-services協(xié)議進行下載分發(fā)

相比iTunes的分發(fā)方式箕昭,使用itms-service 分發(fā)的最大好處是測試用戶無需使用數(shù)據(jù)線落竹,只需打開Safari中訪問包含itms-service連接的頁面,單擊連接后即可下載IPA文件述召。

itms-services的原理是itms-services指向一個plist文件,這個plist文件包含了ipa文件下載的地址藤为,iOS設備的Safari會自動將plist中指定的ipa文件下載安裝到本地夺刑。

itms-services的麻煩之處就是開發(fā)者需要自己搭建一個服務器,之后蘋果在iOS 7.1 以后安裝ipa性誉,寫入ipa地址的plist文件的存放地址必須是一個https的地址.

itms的結構參考如下

<a href="itms-services://?action=download-manifest&url=https://xxx/test.plist">安裝IOS BetaV1.0 </a>

plist 的結構參考如下

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0"><dict>
  <key>items</key>
  <array>
    <dict>
      <key>assets</key>
      <array>
        <dict>
          <key>kind</key>
          <string>software-package</string>
          <key>url</key>
          <string><![CDATA[http://fir.im/xxxxxx]]></string>
        </dict>
        <dict>
          <key>kind</key>
          <string>display-image</string>
          <key>needs-shine</key>
          <integer>0</integer>
          <key>url</key>
          <string><![CDATA[http://fir.im/xxx]]></string>
        </dict>
        <dict>
          <key>kind</key>
          <string>full-size-image</string>
          <key>needs-shine</key>
          <true/>
          <key>url</key>
          <string><![CDATA[http://fir.im/xxx]]></string>
        </dict>
      </array>
      <key>metadata</key>
      <dict>
        <key>bundle-identifier</key>
        <string>im.fir</string>
        <key>bundle-version</key>
        <string><![CDATA[1.3.0]]></string>
        <key>kind</key>
        <string>software</string>
        <key>title</key>
        <string><![CDATA[Fir plist Demo]]></string>
      </dict>
    </dict>
  </array>
</dict></plist>

我們可以看到错览,雖然說用戶比較方便煌往,但對開發(fā)者而言需要寫很多東西,還得搭建服務器羞海,上OpenSSL等曲管,比較麻煩。

使用第三方工具進行內測分發(fā)

為了避免開發(fā)者使用itms-services而帶來的額外工作量腊徙,可以使用第三方工具如 fir.im 檬某,將ipa快速地進行內測分發(fā)。


本文整理自:【CSDN技術公開課】iOSApp研發(fā)的最后沖刺:內測與部署恢恼,作者紀承,演講PPT>>下載地址漓踢。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市奴迅,隨后出現(xiàn)的幾起案子薯酝,更是在濱河造成了極大的恐慌,老刑警劉巖吴菠,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做葵,死亡現(xiàn)場離奇詭異,居然都是意外死亡榨乎,警方通過查閱死者的電腦和手機瘫筐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來策肝,“玉大人,你說我怎么就攤上這事拙毫」缀蹋” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵缺前,是天一觀的道長竣付。 經(jīng)常有香客問我,道長肆良,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任惹恃,我火速辦了婚禮巫糙,結果婚禮上,老公的妹妹穿的比我還像新娘参淹。我一直安慰自己,他們只是感情好恳不,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布开呐。 她就那樣靜靜地躺著,像睡著了一般卵惦。 火紅的嫁衣襯著肌膚如雪瓦戚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天较解,我揣著相機與錄音,去河邊找鬼哨坪。 笑死乍楚,一個胖子當著我的面吹牛,可吹牛的內容都是我干的忿偷。 我是一名探鬼主播臊泌,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渠概!你這毒婦竟也來了嫂拴?” 一聲冷哼從身側響起筒狠,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤箱沦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谓形,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寒跳,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年匈挖,在試婚紗的時候發(fā)現(xiàn)自己被綠了康愤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡择膝,死狀恐怖检激,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情叔收,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布窃页,位于F島的核電站复濒,受9級特大地震影響,放射性物質發(fā)生泄漏巧颈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一十籍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娶吞,春花似錦械姻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至她混,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坤按,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工酗钞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留来累,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓葫录,卻偏偏與公主長得像领猾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內容