2012年2月2日 星期四

Titan: 使用實機測試及其前置需求

這篇文章講的是怎麼在Titanium studio 1.0.8(或之後版本?)安裝app到iOS device上
Titanium無法直接和iOS Device溝通,需要透過iTunes安裝app到device上
而要用iTunes安裝app,需要provisioning profile
provisioning profile需要有app ID和device ID
而app ID需要有apple dev帳號和certificate才能產生

這篇會從頭開始說明整個作法

第一步,請先付dev 稅然後登入apple dev帳號..
接下來可以參照 http://fstoke.me/blog/?p=1805 這邊的說明並建立profile

名詞說明:
certificate: 簽章檔案,每個dev account應該只會有兩組,分別對應到dev/dis環境,也就是說每個環境一組對應的certificate
device ID: 每個iOS device的唯一序列號,可以從xcode中的organizer看到
app id: 每個app的id,對應bundle identifier(如com.abc.app123)
provisioning profile: 以開發環境來說,就是一組綁定app ID+指定device id的檔案
白話一點的解釋,每個dev帳號會有對應dev/dis環境的簽章(certificate)
每個dev帳號可以有多個不同的app ID(程式)
而不同的app ID可能在不同機器上測試,所以用Provisioning profile設定不同的app可以在哪些機器上測試
因此要安裝app到測試機器上面時,需要先在機器上安裝profile,然後機器就可以跑對應的app

當profiile設定完成後
就可以將profile配置給Titanium,讓Titanium可以安裝程式到裝置上(記得先下載)
在Titanium studio 1.0.8中,profile的安裝和以前不太一樣
請參考下圖的位置,選擇iOS device
%2525E8%25259E%2525A2%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A72012-02-05%2525E4%2525B8%25258A%2525E5%25258D%2525883.35.58-2012-02-2-16-53.png

接著會出現下圖的畫面
由於我是import別人的專案
該專案裡面已經有另一個porfile, 我必須要先移除才能使用另一個profile, 不確定是bug或我的問題
PastedGraphic-2012-02-2-16-53.png


到這邊為止,算是大部分都完成了
接下來就是將機器連接到電腦上,選擇 Run iOS device
Titanium studio會開啟iTunes sync執行
這邊建議先clean build後重新compile一次
接下來,到iTunes中,設定該裝置的應用程式為自動同步新的應用程式
不然就自己手動勾選應用程式
理論上之後的修改應該會自動更新,不用每次都重新勾選
到這邊為止,就大功告成了





%2525E8%25259E%2525A2%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A72012-02-04%2525E4%2525B8%25258B%2525E5%25258D%2525881.04.05-2012-02-2-16-53.png
上圖中的二組記錄代表的是 certificate, 一組是對應到dev環境,一組是dis用
由於剛開始配置,所以在iOS provisiong portal中,provisioning profiles中還沒有對應的profile
這邊要注意的是,一個dev 帳號在一個環境(dev/dis)中只能有一組certificate
另外, request檔案(.CSR)在設定app id的SSL環境中也會用到,記得保存起來日後使用(雖然也可以重新建立)

%2525E8%25259E%2525A2%2525E5%2525B9%252595%2525E5%2525BF%2525AB%2525E7%252585%2525A72012-02-04%2525E4%2525B8%25258B%2525E5%25258D%2525881.06.59-2012-02-2-16-53.png

device部分不用講,使用xcode測和設定即可,如果是其他人的機器,取得device id自行設定即可

app id是application 的ID記錄,由bundle identifier和帳號組成
一組可以用於push用的設定,基本上不同的程式應該都要有不同的app id設定
app id和push,iCloud有關,建議在建立app id之前,先把相關的certificate建立好,避免需要手動設定的情況發生
A Provisioning Profile is a collection of digital entities that uniquely ties developers and devices to an authorized iOS Development Team and enables a device to be used for testing.

APP ID可以分別設定對應不同環境(dev/dis),所以會有如同以下對應不同環境的push用SSL簽章(使用.CSR檔案申請)
其他兩筆是key錯的資料,完全不能使用



Provisioning 是一組機器+dev的紀錄,可以讓指定的測試用的機器執行特定程式
因此Provision設定時需要指定app ID和device ID的搭配
設定好後,就可以開啟xcode安裝provision
PastedGraphic6-2012-02-2-16-53.png
這邊重複一次certificate/app id/provisioning profile的說明
certificate是帳號的數位簽章,分成dev/dis兩種環境
app id是不同App的簽章
provisioning profile用於1. 測試環境:這類型的profile會記錄device id+app id
  1. 正式環境
0309更新
如果是新的專案,在選擇使用iOS device時,出現數個步驟讓使用者提供provision
如果已經有provision, 直接選擇倒數第二個的upload,讓Titanium studio將provision檔案和專案連結就好


沒有留言: