【问题标题】:Continuous integration Xcode Server after trigger $XCS_PRODUCT not set未设置触发 $XCS_PRODUCT 后的持续集成 Xcode Server
【发布时间】:2015-09-21 15:34:13
【问题描述】:

我有一个在 Xcode 6.4 下完美运行的机器人。触发后脚本使用此路径自动上传 IPA:“$XCS_OUTPUT_DIR/$XCS_PRODUCT”

但是(即使在从头开始重做机器人之后)似乎:

  • $XCS_PRODUCT 始终为空。
  • $XCS_OUTPUT_DIR 指向一个不存在的文件夹,因为在服务器上签出后,Xcode 服务器似乎将 .ipa 存储在那里:/Library/Developer/XcodeServer/IntegrationAssets/

如何在我的后触发脚本中找到没有此变量的 .ipa?

【问题讨论】:

  • 我也有同样的问题。直到我的脚本停止寻找 IPA 后才会生成 IPA...
  • 我在 Apple 发送了一份错误报告,有人将其标记为重复,希望此问题尽快得到修复! :)

标签: ios xcode continuous-integration bots xcode-server


【解决方案1】:

我遇到了同样的问题,在Apple Developer Forums 讨论后 我发现里面实际上有.IPA文件

/Library/Developer/XcodeServer/Integrations/Integration-INTEGRATION_ID/ExportedProduct/

目录,您可以使用类似

的方式从 After Trigger Script 访问它
originalBinaryName=$(basename "${XCS_ARCHIVE%.*}".ipa)
originalBinaryPath="${XCS_OUTPUT_DIR}/ExportedProduct/Apps/${originalBinaryName}"

我也发了一个错误报告,因为 $XCS_PRODUCT 无论如何都不应该为空,并且为 .IPA的完整路径有新的环境变量会很好> 文件。

【讨论】:

  • 我尝试了类似的方法,但似乎所有 .ipa 都是在“触发脚本后”完成后生成的。您是否尝试过您的解决方案?有效吗?
  • 是的,它正在工作。执行“触发后”时,IPA 就在那里。
  • 您还可以在集成进行时检查终端中文件的存在。也许你有错误的文件路径或其他东西。
  • 我的 XCS_OUTPUT_DIR 在我尝试时不存在。所以我尝试了未生成的 IntegrationAssets/。我会尝试你的解决方案!谢谢!
  • 你是对的 IntegrationAssets 目录,它是在集成完成后创建的,所以你必须看看你的 XCS_OUTPUT_DIR 变量发生了什么,我的没问题,这就是我得到IPA 文件名:使用 XCS_ARCHIVE 最后路径组件并替换扩展名(示例中为originalBinaryName)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 2023-03-07
  • 2015-02-10
  • 1970-01-01
相关资源
最近更新 更多