#0

因為學校有一門課就是要同學能夠寫App

所以老師希望同學能夠將App丟進iDevice進行測試

身為該門課助教,也可是費了好多的時間,才終於搞懂這整個複雜流程阿!


雖然說大部分寫程式的時候,使用模擬器觀看App的執行結果已經足夠

不過要是要寫到許多像是重力感應等其他硬體才有功能的時候,就必須要把程式丟到iDevice測試看看了!


由於將App丟進iDevice測試需要有Apple Developer Program的資格

個人如果要有該資格,就必須要繳交99美元的年費給Apple才可以


而我現在的情況由於是上課使用,便跟Apple申請了University Program,這是免費的

唯獨這個Program只能在自己的iDevice跑App,並不能在App Store上架喔!

 

步驟大致可分為四大步驟 

1.產生個人憑證

2.新增應用程式ID (App ID)

3.產生裝置描述檔 (Provision Profile)

4.將描述檔裝上並執行程式


==========直接開始分隔線==========

1.首先第一步要做的,就是要得到個人憑證

而這個憑證,需要我們先製作一個秘密金鑰才可以產生

 

可以利用Spotlight,叫出鑰匙圈存取這個程式(它位於工具程式資料夾內)
#1

 

 

從功能表點選 憑證輔助程式/從憑證授權要求憑證

#2

 

 

接下來這邊的電子郵件資訊與名稱就隨意填寫即可

毋須跟developer program上的資料一致

然後將要求那項改為: 儲存到磁碟

#3

 

 

將要求檔案存到桌面上即可 

#4

 

 

 完成後就會在桌面上產生一個叫做CertificateSigningRequest.certSigningRequest」的檔案

#5

 

 

接下來請到Apple Developer的網站登入

http://developer.apple.com

點選右上的 Member Center

#6

 

 

 登入後點選Dev Centers下的iOS

#7

 

 

 右半邊的iOS Developer Program下面

點選 Certificates, Identifiers & Profiles

#8

 

 

 先點選 Certificates

#9

 

 

按一下右上角的加號,新增一個憑證 

#10

 

 

這邊選擇iOS App Development 

#11

 

 

 這邊就是上述動作的說明,直接按繼續吧!

#12

 

 

 選擇檔案這邊

就選擇剛剛憑證程式存放在桌面上的檔案:CertificateSigningRequest.certSigningRequest

選完後,直接點選Generate就會把檔案上傳

#13

 

 如果你是這個Program的Admin身分的話(不是的話,要等管理員審核通過才可以下載)

接下來的網頁會直接顯示檔案下載連結(如圖#14所示)

把它下載下來後執行它吧!

電腦會幫你把憑證匯入的

#14

 

 

 

從鑰匙圈來看,個人的私密金鑰已經跟憑證綁在一起了唷~

#15

 

 

2.憑證弄好了,來弄App ID吧!

 

點選左邊Identifiers 類別的App IDs,並按下右方的加號

#16

 

由於App ID一弄完後就不可以刪除了(不過還是可以加新的)

所以名稱得確定好喔!

 

#17

 

 

 

回想一下Xcode在新增Project的時候

是不是有個欄位叫做Company Identifier?

它其實就是下面那張圖所提到的App ID Suffix喔!

#18

 假設你的個人網域名稱是abc.idv.tw

網站上(下圖#19)Wildcard App ID的Bundle ID建議填寫的就是tw.idv.abc.*

而後面的*字號,就是新Project的 Product Name

而這樣組合起來,就是上圖(圖#18)的 Bundle Identifier

 

不過,我在這邊不做太複雜的設定

直接在Wildcard App ID的Bundle ID那欄

直接填上「」就可以了

這代表新增Project的時候,不論Company Identifier填什麼

都可以過的意思啦!

#19

 

將頁面捲到下面來,就會要你勾選這個App ID要啟用哪些服務

由於我們在上面選取的是Wildcard App ID

所以有一些服務是呈灰色無法選取的情形

我這邊勢將能勾的都勾選起來了XD

#20

 

 

再次確認資訊後,按下Submit送出 

#21

 

 

3.新增完AppID後,接下來要產生裝置的描述檔(此步驟比較長,要耐心做完喔!:目)

 

由於每台裝置都有它獨特的ID

電腦要辨別你這台iOS裝置是哪一台,都是從UDID做判斷

 

它可以從iTunes的裝置資訊找到

在裝置頁面一開始會顯示序號,滑鼠點一下就會變成UDID了!

#22

另外,這邊分享另外一個可以找到裝置UDID的方法

就是可以利用Xcode的Organizer

#23
在自己裝置頁面的Identifier那欄(如紅框所示),就是裝置的UDID喔!
#24

 回到剛剛的管理畫面,左邊選擇Devices分類的All

按上右上的加號新增裝置

#25

 

輸入完名稱與UDID後,按繼續

#26

 

 

由於University Program一年有200台iDevice的數量限制

Personal開發資格則有40台的數量限制

如果輸入錯誤,機器的數量是會照算的!

唯有等到一年後,將不要的機器移除,可以註冊的機器數量才會被釋放出來

 

確認無誤後,按下「Register」註冊

#27

 

 機器註冊完成後,按下Done

#28

 

 

 

  註冊好機器,接下來就是來產生描述檔了~

點一下左方分類Provision ProfilesAll

並按下右上方的加號新增一個描述檔

#29

 

這邊也只有一個選擇:iOS App Development 

 

#30

 

 

 由於我們在這邊想要針對所有開發的APP都能在手機上執行

所以我們選擇Wildcard App ID(xxxx.*)這個App ID

(附註:Xcode iOS Wildcard App ID是利用Xcode自動執行所產生的,

如果你是第一次來設定Developer Program,那通常App ID只會有剛剛上面App ID部分所做的”Wildcard ID“)

#31

 

 

 這邊選擇相對應的使用者憑證

如果要多人開發,請一併把其他人也勾進來

#32

 

 

 這邊選擇要開發的裝置

#33

 

 

 最後幫這個描述檔命個名稱

#34

 

 

 做好了,把它下載下來吧!

#35

 4.最後一個且神聖的步驟,安裝描述檔並快樂執行Apps!

 

這個步驟稍早匯入憑證很像

點兩下執行剛下載的描述檔來安裝

#36

 

 如果以上步驟都正確無誤的話,可以發現裝置上安裝了剛剛設定好的描述檔喔!

可以從 設定->一般->描述檔 進去看

#37

 

另外,若是這是你第一次拿實體裝置做開發

在Xcode的 Organizer,也把 “Use for Development“按下去啟動開發模式

#38

 

 

 確認好後,回到Xcode

將建置目標換成自己的iDevice,就可以按下執行測試看看了

#39

 

 按下允許,程式就會出現在你的iOS裝置上面了!

#40

 

透過以上步驟,就完成了將App丟到手機的目標了! 

 

另外,由於個人需要讓班級大量的同學們都可以使用這個Provision

如果今天換了一台電腦測試,就會遇到如下面這樣的狀況:

No code signing identity found

#41

原因就是現在這台電腦並沒有當時製造的憑證與私密金鑰


在每個同學並不可能一人一個憑證的情況下

唯一可行的方法就是共享現有的個人憑證(含私密金鑰)

所以在鑰匙圈存取裡面,在左邊的「類別 / 鑰匙」找到當時產生的個人金鑰

按下右鍵,選擇輸出…..

#42

 

 

這時可以將該憑證存到你記得著的位置

檔案格式選擇p12 

#43

 

 

這時候會問你要不要幫這個憑證加密

到時候匯入的時候就要輸入這個密碼

如果沒有,留空就可以按「好」繼續

#44

 

 這邊這個密碼就是你Mac OS個人使用者密碼了

輸入完,憑證就成功匯出了!

#45

 

屆時,你只需要拿剛剛匯出的p12憑證檔與稍早建立的Provision Profile傳給要開發的夥伴

他就可以用他自己的Mac與iOS裝置進行開發囉

 


最後,來提到一個可能會發生的問題

我自己在這部份可能還沒完全搞懂

#46

No matching code signing identity found

這通常也是私密金鑰跟憑證之間有錯誤的情形

通常是Provision Profile設定的使用者憑證在電腦上找不到造成的

 

當然,如果今天你是Developer Program的Admin身分

按下Fix Issue,Xcode會自動幫你解決

 

不過個人在這邊的經驗是,Xcode這時候會自動在你的裝置幫你裝上「iOS Team Provisioning Profile: *

讓所有你的裝置都可以執行App了

但這時如果你想要用自己的Provision profile,有時候都會被這個iOS Team Provisioning Profile: *干擾

導致我這時候就會把金鑰跟憑證移除掉,重做以上的步驟才能恢復正常= =


Apple在開發要把程式丟進手機的過程也真是繁複…

看來這邊還要在多試幾次才能知道這個憑證的運作邏輯阿(遠目

  • felix

    不好意思

    我想請問

    我的iOS Dev Center 沒有 iOS Developer Program 怎麼辦?

  • →ひろし←

    您好!

    iOS Developer Program是需要付費購買的喔!

    年費是99美元!

    本篇的範例是使用University Program,跟個人program不同,但大部分是差不多的!

  • Po Chang Wu

    嗨,你的教學非常有幫助,讓我成功的把開發的程式放進手機裡測試,非常感謝你!

  • Ted.Lin

    很開心能夠幫助到你!

    感到榮幸 ^_^

  • Clark Chen

    想請問一下,申請Universirty過程複不複雜(我符合資格),還有學員可以自行新增自己的裝置嗎?

  • Ted.Lin

    不複雜,但時間可能會拖很久才會申請到,我自己是填了兩次的申請單,加上第二次有寫信給蘋果人員幫忙督促才得到比較快得答案並成功申請到的

     

    另外第二個問題: 一般會員(學員)不能自己新增裝置,只有管理員能新增喔,畢竟一年只有兩百台的額度,不關輸入對或錯,就會用掉一台的額度,應該不可能會開放學員自己輸入的(你也不想吧?)

     

    希望這樣回答有幫助到你 ^^

  • Clark Chen

    所以你申請時是花了多久?一週,一個月?

    那是否可以有兩個管理者?

     

  • Ted.Lin

    由於第一次申請沒有催促進度

    如果從第一次申請到辦好來算的話,大概是三、四個月

    第二次申請填單到完成大概花了三個禮拜吧

     

    管理者可以兩位以上的,你可以自行指定成員

  • Clark Chen

    感謝你提供資訊!

    Thanks!

  • Ted.Lin

    不用客氣!

    如果還有疑問,歡迎在提問喔!

    我會盡我所能的回答XD

  • 世界宇宙超級無敵大美女

    請問一下,如何申請教育帳號?有網址嗎?還是得直接寫mail給apple?

Ted.Lin 發表迴響取消回覆