Xcode 8和iOS 10 Cordova项目上的代码签名错误

我有一个cordova项目,我build立和运行本地部署在我的iPhone和Android设备上。

但是,我升级到Xcode 8和我的iPhone iOSiOS 10 ,我无法在本地生成ipas。 它失败,并出现以下错误。

===使用configurationdebugging===构build目标*的项目*

检查依赖性签署“ *”需要一个开发团队。 在项目编辑器中select一个开发团队。 ** SDK'iOS 10.0'中的产品types'Application'需要代码签名

更新之前,这是完美的工作。 更新之后, iOS构build失败。

该项目的相关版本号是

 ios-deploy -V - 1.8.6 xcodebuild -version - Xcode 8.0 Build version 8A218a 

我有我的Xcode安装与适当的证书和供应configuration文件。

正如dpogue指出的那样,cordova用这个承诺来解决这个问题

92a62997adb3c8512328d5a0ae42fe5d156291f1

它位于iOS平台存储库的主分支中。

为了从这个修复中受益,你必须安装最新的开发版本

 cordova platform remove ios && cordova platform add https://github.com/apache/cordova-ios.git 

你需要添加一个build.json文件到你的项目根目录,看起来像这样

 { "ios": { "debug": { "developmentTeam": "YOURTEAMID" }, "release": { "developmentTeam": "YOURTEAMID" } } } 

你可以在这里获得你的团队ID: https : //developer.apple.com/account/#/membership

现在运行你的构build

 cordova run ios --device 

…或者指定你的build.json

 cordova run --buildConfig=build.json ios --device 

它应该工作!

我写了有关解决此问题的解决方法:
https://dpogue.ca/articles/cordova-xcode8.html

总而言之,您需要指定您的开发者团队ID。 在Cordova-iOS的下一个版本中,您可以在build.json文件中使用developerTeam进行此操作。 我同时有一个钩子 。

您还需要将您的代码签名标识设置为“iPhone开发人员”, 即使是发布版本 。 在build.json中用codeSignIdentity来做到这一点。

您不需要指定供应configuration文件,Xcode将自动处理它具有团队ID。

希望有所帮助!

这对我有用

  "ios": { "release": { "developmentTeam": "yourdevteamid", "packageType": "app-store", "provisioningProfile": "yourprovfileUUID" } } } 

如果我添加“codeSignIdentity”:“iPhone开发”,它不起作用,所以删除build.json文件中的codeSignIdentity。 我还必须将所有图标添加到config.xml

  <icon src="res/ios/icon-60@3x.png" width="180" height="180" /> <!-- iOS 7.0+ --> <!-- iPhone / iPod Touch --> <icon src="res/ios/icon-60.png" width="60" height="60" /> <icon src="res/ios/icon-60@2x.png" width="120" height="120" /> <!-- iPad --> <icon src="res/ios/icon-76.png" width="76" height="76" /> <icon src="res/ios/icon-76@2x.png" width="152" height="152" /> <!-- Spotlight Icon --> <icon src="res/ios/icon-40.png" width="40" height="40" /> <icon src="res/ios/icon-40@2x.png" width="80" height="80" /> <!-- iOS 6.1 --> <!-- iPhone / iPod Touch --> <icon src="res/ios/icon.png" width="57" height="57" /> <icon src="res/ios/icon@2x.png" width="114" height="114" /> <!-- iPad --> <icon src="res/ios/icon-72.png" width="72" height="72" /> <icon src="res/ios/icon-72@2x.png" width="144" height="144" /> <!-- iPhone Spotlight and Settings Icon --> <icon src="res/ios/icon-small.png" width="29" height="29" /> <icon src="res/ios/icon-small@2x.png" width="58" height="58" /> <!-- iPad Spotlight and Settings Icon --> <icon src="res/ios/icon-50.png" width="50" height="50" /> <icon src="res/ios/icon-50@2x.png" width="100" height="100" /> <!-- iPad Pro --> <icon src="res/ios/icon-83.5@2x.png" width="167" height="167" /> 

我在Apache Cordova上为xCode 8创build了相同的问题,尝试了我找不到任何结果的解决scheme,唯一可行的就是在build.son文件中指定开发团队,包types和configuration文件这个:

 { "ios": { "release": { "developmentTeam": "yourdevteamid", "packageType": "app-store", "provisioningProfile": "yourprovfileUUID" } } } 

许多poststbuild议specularfing的“codeSignIdentity”:“iPhone开发人员”,但这给了另一个错误,只有这个configuration为我工作(也许是如何开发证书创build?),希望它可以帮助某人。

您只需要在Xcode项目设置常规选项卡中启用“自动pipe理签名”选项,并且所有签名相关的问题都将得到修复,请查看我的这个答案:

http://stackoverflow.com/questions/39568005/xcode-8-shows-error-that-provisioning-profile-doesnt-include-signing-certificat

在升级Xcode 8.2.1和配套的Xcode命令行工具之后,出现类似的问题。

解决scheme,为我工作:

1)打开Xcode首选项 – >帐户

2)删除一个现有的帐户(AppleID)

3)使用AppleID添加新帐户

4)select打开右窗格显示的新账户,点击“查看详情”。

5)根据需要生成新的签名身份,特别是“iOS开发”。 点击“完成”。

继所有我的cordova应用程序允许“cordovabuild立ios”。

更新到cordova ios 4.3.1,并指定build.json文件,如上所述,对我来说(可能4.3.0包括修复)

要更新您的平台:

cordova平台更新IOS

我们团队的定制构build脚本运行sudo cordova build ios

对我来说,工作是重build项目,而不需要使用sudo修复权限错误。 然后从我们的构build脚本中删除了sudo ,一切正常。

**必须在第一次构build之后在xCo​​de中指定团队。