【问题标题】:problems with continuous integration in xcode 5xcode 5中持续集成的问题
【发布时间】:2013-11-06 01:17:38
【问题描述】:
【问题讨论】:
标签:
continuous-integration
xcode5
bots
cocoapods
【解决方案1】:
更好的解决方案是添加一个仅通过服务器使用的新方案(复制您的正常方案)。然后选择选项管理方案,展开“构建”并使用以下代码添加新的预操作:
cd ${SRCROOT}
echo "Installing Pods"
pod install
您可以在这里进行更新和许多其他事情。唯一的问题是它更新的版本有旧内容,你必须再次点击集成。请记住保持共享此方案。
--编辑--
你必须提交这个并在这个方案上运行机器人(你可以在你的服务器中更改它 -> safari local xcode bot url -> 设置 -> 方案。
【解决方案2】:
您收到此错误是因为您的 mac 服务器没有在 Xcode 机器人检出它们的目录中创建 pod。这是符合预期的,因为将pod install 的结果签入到您的源代码控制系统中会很奇怪。我找不到让 BOT 运行 pod install/update 命令的方法,所以我想出了以下解决方法:
- 确保您的机器人配置为在每次集成之前不进行清理
- 运行您的机器人,然后在生成的日志中搜索文件被签出的路径。
- 搜索“IDEDerivedDataPathOverride” 该路径将以 /DerivedData 结尾,如果您查看其父文件夹,您将看到一个“源”文件夹。这是您的机器人将继续为您的项目检查更新的地方
- 注意:源目录归您的服务器用户所有,您需要以该用户身份访问它。使用
su 命令这样做
- 如果你还没有在你的 mac 服务器上安装 cocoapods
- 在 mac 服务器上,在上面找到的源目录中,导航到 Podfile 所在的位置
- 运行
pod install 并确保安装了所有指定的 pod
- 再次检查新创建的 pod 目录的文件权限,确保它们与其他文件属于同一用户。必要时使用
chown 修复
- 启动 Bot 并观看它成功完成!
此解决方案的唯一问题是,如果曾经执行过清理,您将需要再次运行 pod install。这对今晚来说已经足够了,我将不得不寻找一种方法来编写 pod 安装脚本,稍后使用 bot 定义中使用的 Scheme 的 Build 部分中的 Pre-actions。