蘋果開發者帳號那些事兒(三)

什麼是Provisioning Profile?

從字面翻譯,Provisioning Profile就是配置文件的意思,它在開發者帳號體系中所扮演的角色也是配置和驗證的做用。若是你有開發者帳號,能夠打開你的開發者控制檯,在首頁能夠看到以下界面。若是你沒有開發者帳號,那就看圖片意會吧!:)html

0

如今開發者控制檯相比以前在界面佈局上已經進行了改版,更加直觀,也更加美觀。紅框標記的地方咱們能夠看到Provisioning Profile文件夾圖標,點擊進去,就來到了全部證書和配置文件的管理控制中心。咱們能夠在最下方看到標記爲Provisioning Profiles的區域,這裏就是咱們管理iOS或者Mac應用程序Provisioning Profile的地方啦。ios

1

點擊右上方的「+」號會提示咱們新建什麼類型的Provisioning Profile,能夠看到,Provisioning Profile分爲兩大類,一類是Development,一類是Distribution,前者是建立咱們在開發環境下的配置文件,不能進行發佈,後者能夠建立發佈到App Store或者以Ad Hoc發佈的配置文件。建立Development下得Provisioning Profile後,咱們能夠在真機上對App進行開發和調試。在Distribution下的Provisioning Profile,咱們能夠選擇建立發佈到應用商店的配置文件,另外就是Ad Hoc方式下的配置文件。Ad Hoc是指在不發佈到App Store的狀況下,能夠將發佈狀態下的App裝在指定的一些真機上進行測試,可是這裏指定的設備數量是有限的(99臺)。web

到這裏,咱們已經知道Provisioning Profile有兩類,一類是開發狀態下的,一類是發佈狀態下得。那Provisioning Profile裏面究竟有些什麼東西呢,咱們接着往下看。微信

1

咱們選擇建立一個Development狀態下的Provisioning Profile,首先須要咱們填寫App ID,咱們知道,每個應用都有惟一的App ID,這個ID就比如咱們應用程序的身份證,經過下圖能夠看到關於App ID的構成。app

1

如今,App ID由一個Apple產生的Team ID做爲前綴,後面跟的其實就是咱們在Xcode中設置的Bundle ID,其實就至關於包名(Android裏面也是利用應用包名來惟一標記App)。經過這種方式,咱們就將一個指定的App與一個Provisioning Profile進行綁定了,也就是說這個Provisioning Profile只能做爲這一個App的開發配置文件。那咱們每一次開發新應用的時候就得從新來新建Provisioning Profile,這顯得很是麻煩,好在Apple已經爲咱們想到了這一點,咱們能夠經過通配符來標記App ID,這樣咱們能夠只建立一個開發配置文件就能夠來測試全部咱們開發的App了,下圖是使用通配符標記的App ID格式。ide

1

關於App ID的建立,能夠到證書配置管理控制檯Identifiers模塊下App IDs欄目下進行建立,這裏就再也不詳細贅述了。App ID選好了,咱們繼續下面的步驟。這時,提示會要求咱們選擇Certificates。佈局

1

那什麼是Certificates呢?你能夠在蘋果開發者帳號那些事兒(二)中獲得詳細的答案。若是你如今不想看,那簡單的說,Certificates就是一個來驗證你是合法開發者的證書文件,這裏一般是對你進行開發的Mac進行受權。咱們能夠選擇一個通過驗證的Certificate來配置這個Provisioning Profile。選擇完畢後咱們就能夠進行下一步了。這時,提示會要求咱們選擇Device。post

1

選擇Device也就是說咱們但願這個Provisioning Profile對哪些設備進行受權,只有選中的設備,才能使用這個配置文件來進行真機調試,不然,裝了也沒有,由於別人壓根沒對你受權。設備選擇完畢後,咱們繼續下面的步驟,這時,提示就會要求咱們輸入這個Provisioning Profile的名字了。測試

1

在統計信息中咱們能夠看到,Provisioning Profile的類型爲Development類型,選擇了一個指定的App ID,指定了一個Certificates,另外指定了一臺設備,這樣,咱們的Provisioning Profile就配置完成了。這時到配置文件列表咱們能夠看到剛剛生成的這個配置文件,顯示爲Active已激活,另外要說的是,每個Provisioning Profile都有一個有效期,一般是一年,過時後就得從新驗證一下,不須要從新生成,只需手動驗證一下便可,點擊查看詳情。ui

1

這裏,咱們能夠看到比以前的詳情更豐富的信息,其中Enabled Service中例舉的信息是在配置App ID的時候選擇的,做用是爲這個配置文件申請諸如消息推送和應用內購買的權限。另外,Expires指明瞭這個配置文件的過時時間,最後Status就顯示狀態爲Activie,若是不可用的話會顯示Invalid。若是發現配置文件過時,就像以前說的,手動驗證一下便可。最後,能夠將Provisioning Profile下載到本地,下載完成後,咱們就能夠看到一個擴展名爲.mobileprovision的文件,打開Xcode,連上設配,雙擊這個配置文件,這個配置文件就被安裝到咱們的測試設備中了,經過Xcode的Device窗口能夠查看這臺測試設備全部的Provisioning Profile。到這裏,咱們已經知道了Provisioning Profile是用來作驗證受權的,也知道了它實際上是裝在咱們的測試設備上的,固然,你也知道了如何去建立它。那麼,接下來咱們就來看看Provisioning Profile的內部結構圖。

1

這裏,拿Ad Hoc方式的配置文件來舉例,按照以前說的,Ad Hoc可以在不發佈到App Store的前提下容許指定的設備安裝App,那這個配置文件中確定就包含Devices信息,同時也包含App ID,另外還包含一個發佈狀態下的Certificate。到這裏,或許你會有疑問,正式發佈狀態下的配置文件應該是怎樣的,首先要說的是,正式發佈App時,Provisioning Profile是不須要提早安裝到用戶手機上的,若是這樣的話,那估計Apple就傻了。在正式發佈到Apple Store時,發佈狀態的Provisioning Profile已經以簽名的方式和App進行了綁定,有一點不一樣的是,發佈狀態的Provisioning Profile不須要指定Device,由於它不知道將被哪些設備使用,下圖是發佈狀態下的配置文件結構。

1

最後,若是是Company類型的開發者帳號,能夠生成一個供團隊使用的Team Provisioning Profile,經過這個配置文件,團隊內成員能夠共用一個配置文件來進行開發調試,固然,App ID得指定成通配類型的。

1

這裏須要注意的是,每個蘋果開發者帳號只有一個Agent權限,就就是說,最終真正有權限發佈到App Store的人就是這個開發者帳號的擁有者,他的身份類型就是Agent,另外還有兩種身份類型,一種是Admin,一種是Member,關於更多團隊帳號角色的信息,你能夠參考這裏

總結

經過上面的內容,你是否已經可以回答最開始提出的問題呢?什麼是Provisioning Profile?這裏作一個簡單的總結:

  • Provisioning Profile是一個安裝在測試設備上的配置文件,文件擴展名爲.mobileprovision
  • Provisioning Profile有兩種類型,一種是Development、一種是Distribution,分別對應開發狀態和發佈狀態的配置文件
  • 配置Provisioning Profile以前須要先設置好Certificates、App ID、Devices等信息
  • Provisioning Profile的有效期爲12個月,過時後得手動驗證方可繼續使用

內容就到這裏了,要想理解的更透徹,仍是實際去操做和實驗來的快。若是你是Xcode5了,進到Preferences裏面,選擇Accounts選項卡,將你的Apple ID添加到Xcode裏面,而後到工程General和Build Settings裏面去折騰吧。後面的事,你就本身琢磨吧!:)

1

1

本期內容就到這裏了,有不足之處,歡迎指正,若是你但願常常收到一些有趣的內容,歡迎微信掃描網頁右邊的二維碼關注個人微信公衆帳號「Android及iOS開發彙總」。

Reference From Apple Developer Center

相關文章
相關標籤/搜索