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


什么是Provisioning Profile?

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

0

現在開發者控制台相比之前在界面布局上已經進行了改版,更加直觀,也更加美觀。紅框標記的地方我們可以看到Provisioning Profile文件夾圖標,點擊進去,就來到了所有證書和配置文件的管理控制中心。我們可以在最下方看到標記為Provisioning Profiles的區域,這里就是我們管理iOS或者Mac應用程序Provisioning Profile的地方啦。

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台)。

到這里,我們已經知道Provisioning Profile有兩類,一類是開發狀態下的,一類是發布狀態下得。那Provisioning Profile里面究竟有些什么東西呢,我們接着往下看。

1

我們選擇創建一個Development狀態下的Provisioning Profile,首先需要我們填寫App ID,我們知道,每一個應用都有唯一的App ID,這個ID就好比我們應用程序的身份證,通過下圖可以看到關於App ID的構成。

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格式。

1

關於App ID的創建,可以到證書配置管理控制台Identifiers模塊下App IDs欄目下進行創建,這里就不再詳細贅述了。App ID選好了,我們繼續下面的步驟。這時,提示會要求我們選擇Certificates。

1

那什么是Certificates呢?你可以在蘋果開發者賬號那些事兒(二)中得到詳細的答案。如果你現在不想看,那簡單的說,Certificates就是一個來驗證你是合法開發者的證書文件,這里通常是對你進行開發的Mac進行授權。我們可以選擇一個經過驗證的Certificate來配置這個Provisioning Profile。選擇完畢后我們就可以進行下一步了。這時,提示會要求我們選擇Device。

1

選擇Device也就是說我們希望這個Provisioning Profile對哪些設備進行授權,只有選中的設備,才能使用這個配置文件來進行真機調試,否則,裝了也沒有,因為別人壓根沒對你授權。設備選擇完畢后,我們繼續下面的步驟,這時,提示就會要求我們輸入這個Provisioning Profile的名字了。

1

在統計信息中我們可以看到,Provisioning Profile的類型為Development類型,選擇了一個指定的App ID,指定了一個Certificates,另外指定了一台設備,這樣,我們的Provisioning Profile就配置完成了。這時到配置文件列表我們可以看到剛剛生成的這個配置文件,顯示為Active已激活,另外要說的是,每一個Provisioning Profile都有一個有效期,通常是一年,過期后就得重新驗證一下,不需要重新生成,只需手動驗證一下即可,點擊查看詳情。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM