首页 > 代码库 > 在没有创建Provision Profile权限的情况下 发布Enterprise inhouse app 的方法

在没有创建Provision Profile权限的情况下 发布Enterprise inhouse app 的方法

   由于用普通开发者证书,发布的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 的方法