iOS開發初學者入門 | 第十章:在真機上運行

在這一章節,你將學會如何在真機上運行你的App,你將學會如何創建證書、注冊你的測試設備,設置你的App ID和provisioning profiles。這章節將介紹和練習部分合二為一,所以在看這一章節時,要確保打開Xcode,邊看邊操作。

真機上測試App需要注冊開發者賬戶(Apple Developer account)(現在蘋果已經允許開發者沒有帳號也能在真機上運行了,作者寫這本書的時候,蘋果的政策還沒有開放給所有人。),將App發布到App Store上也需要這個賬戶。Apple Developer Program為開發者提供了最新版本的iOS和OSX,注冊開發者帳號可以觀看WWDC中的視頻。WWDC全稱Worldwide Developer Conference,每年在San Francisco舉行。蘋果公司會在WWDC上發布新的產品和軟件,注冊開發者還能獲得專門的技術支持,每年需要繳納99美元,這將是你一筆劃算的投資。

此章節接下來的部分需要注冊開發者賬戶,你可以在[http://developer.apple.com/programs/ios.](http://developer.apple.com/programs/ios.)上注冊賬戶 如果你是在校學生,蘋果提供了iOS Developer University Program免費項目,更多細節可以在這里找到[http://developer.apple.com/programs/ios/university](http://developer.apple.com/programs/ios/university)

可以用你的名字或者公司名稱來注冊開發者賬戶,注冊在你個人名下就是個人開發者賬戶,注冊在公司名下需要公司的鄧白氏編碼和可證明公司的合法文件。鄧白氏編碼是你公司獨一無二的編碼,你可以在[https://developer.apple.com/support/ios/ D-U-N-S.php](https://developer.apple.com/support/ios/ D-U-N-S.php)這個網站上了解更多的信息。在大多數情況下,注冊成個人開發者會更簡單一些,當你需要的時候,可以把個人開發者賬戶轉換成公司賬戶。更多信息,請見[https:// developer.apple.com/programs/]( https:// developer.apple.com/programs/)。

Page 257

完成注冊后,就可以進入Member Center。Member Center中提供了蘋果開發者需要的工具、更新,在[https://developer.apple.com/member center/](https://developer.apple.com/member center/)注冊登錄Member Center。Member Center中有部分叫做Certifications, Identifiers, and Pro‐files,這部分就是Provisioning Portal,控制管理在你開發過程中需要使用的設備和profiles。

用瀏覽器打開http://developer.apple.com(見圖10-1)

圖10-1 developer.apple.com

點擊右上角的Member Center,輸入你的蘋果開發者帳號密碼,然后登錄(見圖10-2)。

圖10-2 Developer Portal

Page 258 | Chapter 10: Running on a Device

點擊“Certifications, Identifiers and Profiles”這個鏈接,接著點擊“Certificates”鏈接。

Provisioning Portal有四部分:Certificates、Identifiers、Devices、Profiles,把這頁加入收藏夾,因為我們以后會經常用到這個頁面。

Certificates

第一部分是Certificates.在你運行App時,Certificates用來確認你的身份。唯一的certificate就像是你的簽名,這樣能夠限制其他人在未經你允許的情況下向App Store提交App。

打開Certificate部分后,你會看到一個銀色入口(見圖10-3)。左邊是一排選項,Pending表示你目前正在使用的一些certificate,Development certificates表示用于本地電腦上的證書,Production certificates是用在App Store上的。

圖10-3 Certificates

Certificates | Page 259

點擊右上角的加號按鈕,選擇iOS App Development,然后點擊Continue繼續。接著會出現
向導,讓你想創建的證書的類型(見圖10-4)。選擇iOS App Development box,點擊Continue。向導接下來會讓你創建CSR(Certificate Signing Request),CSR是創建Certificate的一個條件。

圖10-4 New certificate

Page 260 | Chapter 10: Running on a Device

想要創建CSR,我們首先要打開你Mac中的Keychain Access這個應用程序。點擊Mac屏幕右上角的Spotlight搜索圖標,輸入keychain Access,然后點擊搜索出來的第一個選項。Keychain Access啟動后會列出你當前電腦上所有的certificates。點擊頂部菜單欄中的Keychain Access,然后選擇Certificate Assistant --> Request a Certificate From a Certificate Authority(見圖10-5)。

圖10-5 Keychain Access App

接著屏幕上會出現圖10-6的向導。填寫email和common name,CA Email address這一欄空著,然后勾選“Saved to disk”,點擊Continue。選擇存放證書的文件夾,然后保存。現在回到瀏覽器繼續Provisioning Portal。

圖10-6 向導Wizard

Certificates | Page 261

創建好CSR后,點擊瀏覽器中Continue按鈕(見圖10-7)。

圖10-7

接下來需要你上傳CSR文件。點擊Choose File按鈕,找到.certSigningRequest文件(見圖10-8)。

圖10-8 CSR

Page 262 | Chapter 10: Running on a Device

接下來點擊Generate,向導開始創建證書。證書創建好后,會出現一個Download按鈕(見圖10-9)。點擊Download下載證書,開發Downloads文件夾,雙擊剛剛下載的ios_development.cer文件,這樣就把文件添加到你的keychain中了。

圖10-9 下載certificate

Certificates | Page 263

再次打開瀏覽器,點擊左邊的All選項。用于App Store的第二個證書也需要創建。再次點擊右上角的加號按鈕,選擇“App Store and Ad Hoc”點擊Continue(見圖10-10)。CSR創建界面這時會彈出來,這一次,你用上次已經創建好的CSR就可以了。點擊Continue。

圖10-10 選擇“App Store and Ad Hoc”選項

點擊Choose File按鈕選擇之前創建好的.certSigningRequest,點擊Generate按鈕。出現Download下載按鈕,點擊Download下載新的證書(見圖10-11)。雙擊*ios_distribution.cer
*文件即可添加到keychain中。然后再次打開瀏覽器。

圖10-11

Page 264 | Chapter 10: Running on a Device

Identifiers

Provisioning Portal的第二部分是Identifiers,在Certificates下方。Identifiers是用來管理App的ID的。有點類似美國人的社保號,每個App都有自己獨一無二的App ID。

要創建一個App ID,我們首先要左邊的側邊欄中點擊App ID,然后點擊右上角的加號按鈕,出現創建App ID的界面(見圖10-12)。Name一欄中輸入App ID Selfie,不要使用下方列出的特殊符號。App ID Prefix一欄空著,勾選Explicit App ID。Bundle ID這部分使用部分倒序的方式書寫,就像是在瀏覽器地址欄中輸入網址,只不過順序是相反的。不用使用圖片中的Bundle ID,例子中的Bundle ID是無效的。輸入你自己的Bundle ID,確保使用以下格式:com.domain.app(例如:com.johnsmith.selfieapp)。

圖10-12 創建App ID

Identifiers | Page 265

Bundle ID會進入Xcode中,當你向App Store提交App時,會核對Bundle ID。App Services,你可以為你的應用添加格外的服務。點擊Continue。需要你再次確認App ID,如果各項都正確點擊Submit。這樣,App ID和Bundle ID都創建完成了(見圖10-13)。

圖10-13

Page 266 | Chapter 10: Running on a Device

Devices

Provisioning Portal的第三部分是Devices。不能隨筆拿個iOS設備就來真機測試你的應用,測試機需要注冊。開發者可以每年注冊最多100臺測試設備,如果這個設備被移除了,就再也不能添加回來了。Devices部分包括了所有可以使用開發者賬戶的設備,我們使用一串唯一的串碼UDID來關聯設備。

點擊Devices下方的All,然后點擊右上角的加號按鈕。

我們需要獲取設備的UDID(見圖10-14),獲取UDID的方法是,先把設備鏈接到Mac上,運行Xcode,設備連接上后,打開Xcode,選擇頂部菜單Window --> Devices,出現設備窗口,從左側欄中選擇iOS設備,這時iOS設備上會彈出是否信任這臺電腦(Trust This Computer)的提示,點擊信任(Trust)。UDID就會在Identifier后面,復制UDID,然后打開瀏覽器。

把UDID粘貼到輸入框中,給這個設備命名(見圖10-14),點擊Continue。

圖10-14

Devices | Page 267

Profiles

一旦你的設備已經激活了開發者模式且添加到了Devices中,你就可以創建provisioning profile了。provisioning file列舉出哪些設備可以運行你的App。把provisioning profile添加到Xcode,然后檢查此設備是否授權運行App,provisioning profile用于本地開發和App Store。然而,App Store的provisioning profile不限于具體的設備。

點擊Provisioning Profiles下方的All,接著點擊右上角的加號按鈕。

選擇iOS App Development,點擊Continue(見圖10-15)。Development用來在你電腦上運行App,Distribution是預留你的App提交到應用市場或者群體測試。

圖10-15

接下來,從下拉菜單中選擇你的應用的 App ID,點擊Continue(見圖10-16)。選擇你要使用此provisioning profile的證書,大部分情況下,你只需要一個可用證書即可。選擇你的證書然后點擊Continue。

圖10-16 選擇App ID

Page 268 | Chapter 10: Running on a Device

接下來,會出現一個你賬戶下授權設備清單(見圖10-17)。選擇你想要測試應用的設備。

圖10-17 設備

最后,使用projectNameDevprojectNameAppStore格式來命名profile name(見圖10-18)(例如:MySelfieAppDev)。使用這種格式命名,可以在Xcode中更容易找到provisioning profile。點擊Generate,然后下載profile。

圖10-18

Profiles | Page 269

打開瀏覽器,點擊Provisioning Profile下方的All,接著點擊右上角的加號按鈕。

選擇App Store點擊Continue。從下拉菜單中選擇App的App ID,點擊Continue。選擇證書,點擊Continue。命名profile(例如:MySelfieAppStore),然后點擊Generate。

下載profile,然后去文件夾中打開你剛剛下載的provisioning profile。會以.mobileprovision結尾的兩個profile(見圖10-19)(MySelfieAppDev.mobileprovision和MySelfieAppStore.mobileprovision)。雙擊這兩個profile即可添加到Xcode,添加成功后,就可以在工程中看到這兩個文件了。

圖10-19

Page 270 | Chapter 10: Running on a Device

打開Xcode工程,點擊Project Navigator中的工程名字,Editor中會顯示出工程的詳細信息。在Team里的下拉菜單中選擇Add an Account。登錄你開發者帳號和密碼,接著點擊Add(見圖10-20)。

圖10-20 添加帳號窗口

Profiles | Page 271

關閉Accounts對話框,回到工程詳細信息中來,點擊上方名為Info的tab按鈕,清空Bundle Identifier,然后輸入上創建App ID時輸入的倒序Bundle ID(例如:com.johnsmith.selfieapp)。

接著選擇Build Settings,滑到Code Signing區域,在Code Signing Identity下方,Debug一欄選擇iPhone Developer:你的名字。確保下方所有的iOS SDK都是同樣的名字。Release一欄選擇iPhone Distribution:你的名字。確保所有的iOS SDK都是同樣的名字(見圖10-21)。

圖10-21 Build Settings tab

點擊上方General這個tab選項,確認bundle和團隊信息是否正確無誤。

打開瀏覽器,到AppSchool下載App icons(圖10-22)。(這個網址我一直打不開,我也不知道咋回事,一開始以為是被墻了,后來覺得可能是網站已經關閉了吧)

圖10-22 App icons

Profiles | Page 273

打開存放icons的文件夾,然后打開Xcode,把文件夾中的圖標拖動到Xcode中的Images.xcassets里。

現在,你可以在真機上運行你的程序了,把你的iOS設備連接到Mac上,點擊Xcode頂部iOS Simulator下拉菜單,選擇iOS device,點擊Play按鈕(Run)。

如果你在真機上運行我們之前講解的小應用Selfie,你可能會看到Xcode的警告“process launch failed: Security”,這是第一次運行時的警告,打開你的設備(iPhone或iPod等等),點擊Trust from the App Developer,接著App會向你獲取使用攝像頭的權限。點擊Home鍵,回到桌面,你看會看App的圖標已經顯示在桌面上了。

祝賀你,現在,你已經成功地在真機上運行應用了。

如果你收到了錯誤或者警告,不要擔心,熟能生巧,到網站上下載源碼(這個網站可能廢掉了),對比學習,多練習幾次,直到成功~

Profiles | Page 273

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379

推薦閱讀更多精彩內容