【发布时间】: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