標籤:style blog http io ar os 使用 sp strong
由於用普通開發人員認證,發布的app或ipa沒法在普通機器上安裝運行,原因是apple限制了普通開發人員發布appstore以外的環境中,只有Enterprise企業版認證才能發布inhouse。 今天在發布一款公司內部使用的app時,由於mac中同時安裝了 普通開發人員認證 和 企業認證,xcode可能預設使用了普通開發人員帳號,因此發布的ipa始終無法在普通機型中安裝成功。幾經周折,終於發現了這個問題,於是想辦法找到了設定成使用企業版認證,但是這時候連編譯都無法通過,錯誤提示如下:
No matching provisioning profiles found
his product type must be built using a provisioning profile, however no provisioning profile matching both the identity “iPhone Distribution: PIXXX CORPORATION” and the bundle identifier “xx.xxx.enterprise.xxx.appname” was found. Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.
意思是說:我使用的企業認證 與 當前發布的程式bundle identifier 不匹配。
原因就很明顯了,由於安裝認證時安裝了一個provisioning profile 檔案,這個Provision Profile中記錄了一些資訊:開發人員認證、開發人員Apple ID、一系列裝置ID(開發人員可以使用哪幾部裝置進行調試),以及造成以上問題的 Application Identifier 。 這就是為什麼會提示這個錯誤了。
插一句,我如何根據我的provisioning file 得知對應的 app identifier呢?
只需雙擊該檔案,重新安裝,待自動開啟keychains之後,即可查看到該provision profile的 app id 了。
所以,當你只有企業認證,但卻沒有建立Provision Profile許可權,可以委屈求全,將項目屬性中的bundle identity 改成該profile的app id就可以了。才能在普通iphone運行, 但是企業認證有個問題,必須把名字改成該認證對應的provision Profile綁定的app id。
缺點也很明顯,開發機如果同時安裝我們的這個app 和 公司的另一個原始app, 則有一個會被覆蓋,因為他們的簽名是一樣的。 你已經知道,我這裡所說的沒有建立Provision Profile許可權的意思是指,當前擁有一個ios開發的企業認證, 擁有inhouse app發布許可權,但卻沒有該企業認證對應的apple id, 無法登陸蘋果開發人員中心添加applicaiton id.
參考:
1. 如何解決修改項目名 或 bundle identity 而產生的test子集的 link error ? http://stackoverflow.com/questions/16513934/how-do-i-add-modify-the-bundle-loader-setting-in-xcode-4-6-2
2. 企業認證的申請流程, 使用,發布方法: http://blog.csdn.net/kmyhy/article/details/6418280
在沒有建立Provision Profile許可權的情況下 發布Enterprise inhouse app 的方法