解决XCode8.1 用Ad Hoc打包出现的0xE8008016问题

升级了XCode 8.1,用Ad Hoc 证书打包,出现了0xE8008016。这个问题在XCode7上没出现,在XCode8上出现了。错误提示如下:
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.(0xE8008016)
改用了Archive方式打包,就没有出现这个问题了。具体操作是

1Product-》Archive,完成后弹出Organizer界面;
2、在右边选择Export,选择Save for Ad Hoc Deployment;
3、选择Development Team,过一会选择Device Support;
4、一直点击Next5、选择完成后ipa文件存放的文件夹。

虽然我解决了这个问题,但是还是在网上搜索到了这个问题的其他解决方法,列举出来分享给大家。
第一种:用itunes打包

1、先在项目的Target里的General进行设置,把Signing下的Automatically manage singing取消
2、在Signing(Debug)和(Release)里的Provisioning Profile选中已经配置好的证书(Wildcard那种)
3、直接Build项目(⌘b)
4、Build完后在项目文件夹找到Products,看看xxx.app是否变成黑色。
5、打开iTunes,把xxx.app拖入iTunes,会生成一个app,右键那个app的icon,用Finder打开,会看到xxx.ipa的文件,把此xxx.ipa拖入即可。

第二种:检查TeamID

找到变换前后两个账号的teamID,这个可以到ituneconnect里面,或者直接到project.pbxproj查找,出问题的此刻,已经存在两个不同的teamID。

查找到切换的ID,把project.pbxproj工程文件中的签名ID全部手动替换成目标ID。DEVELOPMENT_TEAM = XXXX ; XXXX填写新的teamID

根据Target数量的不同,可能有好几处,全部替换成统一一个样即可。

此问题在Xcode8beta版中已经存在,若有多个包名和账号切换的工程,可作为参考。

第三种:检查Capabilities

检查AppID所设置的功能,一般默认开启了Game Center,那么就要在Capabilities把Game Center 打开。如果开启了推送,那么就要在Capabilities把Push Notification打开。诸如此类都要打开。

你可能感兴趣的:(IPhone开发)