【问题标题】:Running xcodebuild in php在 php 中运行 xcodebuild
【发布时间】:2011-12-03 15:29:39
【问题描述】:

我正在尝试从 php 中运行 xcodebuild 命令,但它似乎甚至没有被调用。我没有得到 exec 命令的输出,也没有抛出任何错误。其他命令运行良好,例如 xcrun(我正在使用它来准备应用程序以进行临时分发)。这是我正在调用的代码;

exec('/usr/bin/xcodebuild -version', $output);
print_r($output);

提前感谢您的帮助!

编辑:我应该补充一下,这个命令在命令行中运行良好,以与 php 脚本相同的用户身份运行。

【问题讨论】:

  • 我发现如果我从命令行运行 php 脚本,那么这确实有效。如果我通过浏览器(使用 Apache)运行它,那么它就不起作用。这并不能解决我的问题,因为我想构建一个 Web 服务,但它很有趣。

标签: php ios xcodebuild


【解决方案1】:

你的代码对我来说运行完美。

也许你可以把它改成这样,并确保命令的返回值为 0:

exec('/usr/bin/xcodebuild -version', $output, $rv);
echo "Command returned: $rv\n";
print_r($output);

如果 $rv 不是 0,那么至少你知道你的 exec() 调用正在工作,只是 xcodebuild 命令行由于某种原因失败了。

【讨论】:

  • 我正在尝试找出 xcodebuild 退出代码 5 的含义,但至少我确定它的命令不是 php 的问题。但是,这和我之前的想法差不多。我只是不明白为什么在 php 中运行命令失败,但从命令行成功?
【解决方案2】:

我也有这个问题...您是否尝试向用户 nobody 授予完全权限?

【讨论】:

    【解决方案3】:

    经过 1 天的调试和尝试一切,我终于可以使用 php 为我的 ios 应用程序构建构建服务器。我在这里列出了我所做的所有事情,以便其他人在遇到相同问题时也可以解决他们的问题。

    用shell_exec()代替exec(),这样就可以看到所有的输出了。

    我有类似的东西要测试##

    $output = shell_exec("xcodebuild -showsdks 2>&1");
    print_r($output);
    

    当我第一次运行上述代码时,我在浏览器上有这个探针

    您尚未同意 Xcode 许可协议,请在终端窗口中独立运行 xcodebuild 以查看并同意 Xcode 许可协议。 构建步骤“XCode”将构建标记为失败 完成:失败

    所以我跑了

    sudo xcodebuild -license
    

    同意整个许可系统

    再次运行代码,我遇到了这个问题

    xcodebuild: 错误:工作区“xxx”不包含名为“xxx”的方案。

    要解决这个问题:试试这个问题的检查答案:Building with xcodebuild Timed out waiting for <IDEWorkspace, 0x2004cebc0>/"runContextManager.runContexts"

    修复问题后,我的构建脚本现在可以正常运行了。

    希望我能帮助您解决问题。

    【讨论】:

      猜你喜欢
      • 2021-04-14
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      • 2010-10-09
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多