【问题标题】:Cordova and ios-deploy causes builds to fail with "codesign exit code 1"/ "permission denied"Cordova 和 ios-deploy 导致构建失败并出现“codesign exit code 1”/“permission denied”
【发布时间】:2015-05-08 19:32:38
【问题描述】:

我正在开发一个基于 Cordova 的移动应用程序,并希望利用 Cordova CLI 的能力直接从命令行部署和运行我的移动应用程序,而无需进入 XCode 进行构建

做的时候:

cordova run ios --device

Cordova 亲切地告诉您应该安装ios-deploy 节点模块。我是按照他们的 GIT 网站上的步骤进行的。

当我下一次尝试运行时,我开始遇到代码设计错误,具体来说:

/Users/blahblah/platforms/ios/build/device/myApp.app: Permission denied
Command /usr/bin/codesign failed with exit code 1

我无法让代码签名从终端工作,更糟糕的是,回到 XCode 会导致同样的错误!

幸运的是,错误消息说明了一切:权限被拒绝;我能够通过弹回终端并在我的整个应用程序文件夹上运行 chmod 来纠正此问题,即:

chmod -R a+rwx myApp

然后我可以返回 XCode 并再次构建和部署项目(哇!),但是如果我尝试通过 Cordova CLI 进行部署,则会出现同样的问题。

似乎 ios-deploy 和/或 cordova 搞乱了文件夹权限,但我不知道如何更正。

任何建议将不胜感激!

更新: 需要明确的是,如果我首先进入终端,然后进入平台/ios 文件夹并在“www”文件夹上执行 chmod -R a+rwx,我能够在 XCode 中成功签署应用程序。

我遇到的问题是试图让它从命令行成功构建/签名。

我做了一些进一步的诊断,似乎问题出在 Cordova CLI 本身,而不是 ios-deploy;当我执行时:

cordova prepapre

它将我的“www”文件夹复制到“platforms/ios/www”,但是这样做时它会将权限从具有写访问权限的每个人(即:drwxrwxrwx)更改为只有我的具有写访问权限的用户,即:(drwxr -xr-x)

这似乎破坏了代码设计应用程序,并导致我上面的权限被拒绝错误。

我只是希望有人知道我可以如何解决这个问题,或者我的构建可能做错了什么 - 我宁愿不必进入 XCode 来进行这些构建。

【问题讨论】:

    标签: ios xcode cordova codesign


    【解决方案1】:

    事实证明,Cordova CLI 运行良好,ios-deploy npm 包也是如此。

    问题出在解决方案本身,与工具无关。

    我在这个特定的 Cordova 应用程序中使用 Ionic 框架,他们的框架安装了一些“after_prepare”钩子(在钩子文件夹中),这些钩子试图在构建之前帮助准备/清理一些无关文件。

    其中一个钩子(名为“020_remove_sass_from_platform.js”)试图通过在构建之前清理不需要的 SASS 文件来提供帮助,以减小已编译应用程序的大小。

    不幸的是,这个钩子正在调整文件夹权限(我猜是为了确保删除可以成功),这就是在“cordova prepare”期间“www”文件夹的权限发生变化的原因。

    我删除了钩子,现在 Cordova CLI 按预期构建和签名 APK,并且 ios-deploy 包将其推送到设备,所有这些都没有使用 XCode。

    希望这可以对其他人有所帮助。

    【讨论】:

      【解决方案2】:

      检查构建设置中的 CODE_SIGN_IDENTITY 属性。是否在此处选择了您的配置文件?

      您还需要在您的应用程序 .plist 中输入有效的捆绑标识符。

      标识符必须与您在生成配置文件时提供的标识符相匹配。

      【讨论】:

      • 我实际上能够在 XCode 中成功签署应用程序;我遇到的问题是使用 Cordova CLI 从命令行运行它。
      【解决方案3】:

      试试这个

      sudo npm install -g ios-deploy --unsafe-perm
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-22
        • 1970-01-01
        • 2017-12-24
        相关资源
        最近更新 更多