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

Vij*_*jay 30 certificate ios cordova

我有一个cordova项目,我在我的iPhone和Android设备上构建并运行本地部署它.

但是之后我已经升级到Xcode 8和我的iPhone iOSiOS 10,我不能在当地建立IPAS.它失败并出现以下错误.

===构建目标*项目*配置调试===

检查依赖项签署" *"需要开发团队.在项目编辑器中选择一个开发团队.**SDK'iOS 10.0'中的产品类型'Application'需要代码签名

这在更新之前完美运行.更新后,构建iOS失败.

该项目的相关版本号是

ios-deploy -V - 1.8.6
xcodebuild -version - Xcode 8.0 Build version 8A218a
Run Code Online (Sandbox Code Playgroud)

我的Xcode设置包含适当的证书和配置文件.

Ale*_*ier 44

正如dpogue指出的那样,cordova通过提交解决了这个问题

92a62997adb3c8512328d5a0ae42fe5d156291f1

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

要从此修复程序中受益,您必须安装这样的最新开发版本

cordova platform remove ios && cordova platform add https://github.com/apache/cordova-ios.git
Run Code Online (Sandbox Code Playgroud)

您需要向build.json项目根目录添加一个如下所示的文件

{
  "ios": {
    "debug": {
      "developmentTeam": "YOURTEAMID"
    },
    "release": {
      "developmentTeam": "YOURTEAMID"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处获取您的团队ID:https://developer.apple.com/account/#/membership

现在运行你的构建

cordova run ios --device 
Run Code Online (Sandbox Code Playgroud)

...或指定build.json

cordova run --buildConfig=build.json ios --device
Run Code Online (Sandbox Code Playgroud)

它应该工作!

  • 这个需要被添加到Cordova Commit.事实上,我正在添加它. (3认同)
  • 但这意味着仍然可以自动管理代码签名.如何通过Cordova禁用此框并单独指定证书? (3认同)

dpo*_*gue 9

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

回顾一下,您需要指定开发人员团队ID.在Cordova-iOS的下一个版本中,您可以developerTeam在build.json文件中执行此操作.在此期间我有一个钩子.

您还需要将代码签名标识设置为"iPhone Developer",即使是发布版本也是如此.codeSignIdentity在build.json中执行此操作.

您不需要指定配置文件,Xcode会在拥有团队ID时自动处理.

希望有所帮助!


小智 5

我在用于 iOS 的 Apache Cordova 构建上的 xCode 8 遇到了同样的问题,尝试了我能找到的所有解决方案但没有结果,唯一有效的是在 build.son 文件中指定开发团队、包类型和配置文件,如这个:

{
  "ios": {
    "release": {
      "developmentTeam": "yourdevteamid",
      "packageType": "app-store",
      "provisioningProfile": "yourprovfileUUID"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

许多帖子建议指定“codeSignIdentity”:“iPhone Developer”,但这又出现了另一个错误,只有这个配置对我有用(也许与开发证书的创建方式有关?),希望它对某人有所帮助。


小智 5

这适合我

 "ios": {
    "release": {
      "developmentTeam": "yourdevteamid",
      "packageType": "app-store",
      "provisioningProfile": "yourprovfileUUID"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我添加"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" />
Run Code Online (Sandbox Code Playgroud)