我想寫一篇文章來分享一下。
對於IOS來說每個應用程式都需要有一個唯一的ID來識別,這就像是資料庫裡頭的Primary key一樣,Apple的設計就是使用bundle seed id + application id 產生 application id。
舉個例子說明一下
以開發人員角度進入IOS Development Center後,我們到Provisioning Portal下可以看到App Ids這個項目,裡頭會列出所有的隸屬這個賬號的Application Id,我們看下面這個Application Id範例:
33LE83RVLQ.com.infinitystudio.apps.*
33LE83RVLQ
這個數值總共是10個字稱作bundle seed id,這會在建立一個新的App Id的時候由Apple自動產生給你。
com.infinitystudio
這串文字代表的是公司名稱,一般來說我們會使用domain name來呈現,不過當然也可以不需要。
.*
這個意思代表這是一個廣域的定義,你可以依據在這個App Ids下面開發多個應用程式,
例如33LE83RVLQ.com.infinitystudio.apps.erp 或是 33LE83RVLQ.com.infinitystudio.apps.crm,但是要注意的就是33LE83RVLQ.com.infinitystudio.apps 這就不包括在這個廣域設定裡頭。
結論
由上面的說明可以知道,Apple為了確保應用程式的Id是唯一值,所以他控管了前面十個字元也就是bundle seed id來確保每個帳號下面的每個應用程式都是唯一。而在bundle seed id 後面叫交給開發人員來自行決定自己的產品要如何分類規劃。
補充
application id 與 bundle seed id對於開發純軟體應用app限制並不大,但是對於開發應體與ios設備連接的設計來說就需要注意一下不要使用廣域的app id像是 843EIDJQUJ.com.infinitystudio.*,因為這樣子在附加設備與IOS設備溝通的時候將不能自動啓動軟體。下面說明一下IOS設備與附加硬體設備溝通的流程:
- 附加設備連接上IOS設備
- 附加設備送出預先燒錄在ROM上的bundle seed id給IOS設備
- IOS使用bundle seed id搜尋符合的軟體
- 開啓應用軟體
如果使用廣域的app id的話,IOS會跳出提示要你去app store搜尋,所以要注意的是!如果你開發的軟體需要連結硬體,那就要使用完整的唯一的才有辦法自動開啓。
太棒了 這篇文章
回覆刪除welcome! 很高興這篇文章對大家有幫助
回覆刪除如果我有兩個APP都要用同一個硬體,要如何設定呢?可以重複嗎?
回覆刪除內容實用,謝謝!
回覆刪除