在使用 Xcode Server bot 集成之前复制文件

Posted

技术标签:

【中文标题】在使用 Xcode Server bot 集成之前复制文件【英文标题】:Copying a file before integration using an Xcode Server bot 【发布时间】:2015-09-28 23:25:23 【问题描述】:

我正在使用 Xcode Server 为我们的 ios 应用程序设置一个持续集成 (CI) 服务器。问题是我们有一个 plist,cred.plist,每个人都有他们的凭据和测试环境详细信息,git 忽略了这些信息,没有它,应用程序将无法编译和运行。有一个文件cred_dist.plist 用于更新cred.plist,它将用于我们的 CI 目的,我想在集成之前重命名/复制它并将其命名为“cred.plist”。项目中的两个文件都在根目录中。

我尝试将脚本添加到 CI 目标和机器人本身,但无济于事。下面是来自机器人“集成前”脚本部分的尝试示例以及我收到的错误消息。我已经尝试了几乎所有我能找到的目录变量,包括 XCS_ 前缀,只是一个斜杠,没有前缀。

该机器人成功地从我们的 repo 中提取代码并构建到需要 plist 的地步,然后出错。

任何建议或帮助将不胜感激!谢谢!

脚本:

#! /bin/bash

cp -a $(TMPDIR)/cred_dist.plist $(TMPDIR)/cred.plist

错误:

Assertion: Reading data: The file cred.plist” couldn’t be opened because there is no such file.
File: MyProject/cred.plist:(null)

【问题讨论】:

【参考方案1】:

经过一番挖掘、反复试验和测试,我相信我已经找到了解决方案。问题是最接近的XCS_前缀变量是XCS_SOURCE_DIR,但这指向了项目被克隆的位置……这意味着路径实际上应该是$XCS_SOURCE_DIR/myproject/cred_dist.plist。下面是我用来执行此任务的脚本;它在集成之前运行 - 希望它对某人有所帮助!

#! /bin/bash

cp -a $XCS_SOURCE_DIR/myproject/cred_dist.plist $XCS_SOURCE_DIR/myproject/cred.plist

【讨论】:

以上是关于在使用 Xcode Server bot 集成之前复制文件的主要内容,如果未能解决你的问题,请参考以下文章

Xcode Bots Server 持续集成失败

Xcode Server Bot 集成无法使用断言导出存档失败:exportArchive: ipatool failed with an exception

您如何配置 Xcode Server (Bot) 以仅保留 n 个最近的集成?

如何在集成脚本之前取消/中止 XCode Bot 集成

Xcode Server Bot 集成在 xcrun xcodebuild -exportArchive "Exporting installable product" 上停止

与 Xcode Bot 的持续集成