Cordova 应用程序的代码签名失败(使用 XCode 5.1.1 和 Cordova 3.4.1-0.1.0)

Posted

技术标签:

【中文标题】Cordova 应用程序的代码签名失败(使用 XCode 5.1.1 和 Cordova 3.4.1-0.1.0)【英文标题】:Code signing fails for Cordova app (using XCode 5.1.1 and Cordova 3.4.1-0.1.0) 【发布时间】:2014-05-21 19:44:29 【问题描述】:

我在对基于 Cordova 的应用程序进行代码签名以用于 App Store 或 Ad Hoc 部署时遇到问题。

我可以让它在我的模拟器和 iPad 上构建和运行。我也可以毫无问题地使用 XCode 创建存档。但是,当我尝试创建 Ad Hoc .ipa 文件或推送到 iTunes Connect 时,我会在警告对话框中收到此消息:

代码签名操作失败 检查您选择的身份是否有效。

看来我什么都试过了。

在 Apple 的开发者门户中重新创建了我的开发和生产证书以及开发、临时和应用商店配置文件 从我的钥匙串中删除所有证书并重新安装它们 从我的系统中删除所有配置文件并重新安装它们 将我的项目的代码签名标识设置为以下所有组合 ios 开发人员 iOS 分发 将我的配置文件设置为以下所有组合 开发者简介 临时配置文件 应用商店简介

这些都没有让我通过 Organizer 中的代码签名错误。然后我尝试在命令行中使用xcodebuild 并得到以下错误:

错误:代码签名操作失败

我的工作站上有另一个使用 Titanium 创建的应用程序。使用 Titanium,我可以毫无问题地构建和部署 Ad Hoc 和 App Store 版本。

我的应用程序的 XCode 项目中的 CordovaLib 项目有什么问题吗?还是我在项目中配置错误。

到目前为止,我已经花了大约 8 个小时来解决这个问题。任何见解将不胜感激。

版本(供参考)

我的工作站是装有 OSX 10.9 的 Macbook Pro XCode 5.1.1 科尔多瓦 3.4.1-0.1.0

【问题讨论】:

我能够通过从我的 phonegap 应用程序的 www/ 目录中删除一些文件来解决问题。我的应用程序中有一些非必要文件,主要与自动化测试和 nodejs 模块有关。我还没有弄清楚为什么他们会破坏代码签名,但是当我删除它们时它就起作用了。好奇怪…… 【参考方案1】:

检查系统控制台:Applications > Utilities > Console

这似乎是 XCode 打印出大多数有助于解决此问题的错误的地方。

我也遇到了类似的问题,我的 www/ 目录中有非必要文件,删除这些文件可以解决问题。但直到我检查了系统控制台,我才意识到在哪里可以找到这些文件。

【讨论】:

控制台在哪里?我检查并没有看到任何东西。见:***.com/q/25109616/1449799【参考方案2】:

我也遇到了这个问题,我花了好几个小时试图通过撤销和重新创建证书以及删除和重新创建配置文件来找出代码签名问题。

在所有这些之后,找到这个帖子,我尝试删除项目的某些部分,正如原始海报所说的那样。罪魁祸首是 grunt.js

rm -R www/node_modules/grunt* 为我修复了所有问题。

【讨论】:

【参考方案3】:

非常感谢@threeve 和@shedd,我解决了我非常相似的问题How to build IPA for distribution with TestFlight with XCode 5?!我在那里专门列出了我删除的文件(为方便起见,在此转载):

... Gruntfile.js、karma-e2e.conf.js、karma.conf.js 和整个 node_modules 目录。

【讨论】:

以上是关于Cordova 应用程序的代码签名失败(使用 XCode 5.1.1 和 Cordova 3.4.1-0.1.0)的主要内容,如果未能解决你的问题,请参考以下文章

iTunes Store 操作失败:签名无效

cordova工程ios打包自动编译打包,自动签名失败

Cordova Windows 应用程序对 HTTPS 的 ajax 请求因连接失败而失败

Cordova/Ionic 应用程序通过服务器签名的 url 将 base64 图像上传到 S3

如何使用 Ionic Cordova 框架和自签名证书绕过 iOS 11 中的 SSL 检查

cordova build ios - 存档失败 - 没有团队匹配的配置文件