我目前的项目有三个存储库。它们包含一些可共享的核心功能和个性化组件:
xcworkspace位于MainApp.git中,并链接到自己的xcodeproj文件以及其他两个存储库中的其他xcodeproj。
在Xcode服务器中创建机器人时,只能选择一个用于克隆的存储库。这使得构建最终失败,因为它无法找到Components.git和Controls.git所需的任何资源。
如何使用工作区配置实现可用的构建?
答案 0 :(得分:4)
你可以:
1)将所有代码添加到主仓库(我强烈反对)
2)使用Cocoapods之类的依赖项管理器,您必须为依赖项创建podspecs。如果它们是开源的,它们可能已经在Specs的GitHub中了。 Xcode机器人和Cocoapods之间的集成现在已经被打破了。您可以使用运行该命令的预构建脚本:
pod install
除此之外。见here
3)使用git submodules。它们可能会给您带来一些麻烦,但在管理企业依赖项时,它们通常会发挥作用。不幸的是,他们再次在Xcode机器人中彻底破坏:
Xcode bots with git submodules
列表很大,仅仅在Twitter上搜索与git / cocoapods相关的问题,Xcode机器人会告诉你它是多么令人沮丧。
我个人认为,如果它是一个小项目,并且你想看看苹果公司一直在做什么,Xcode机器人很棒,IDE内置的内置集成也是惊人的,并且在即将到来的迭代中需要寻找。
但是,如果项目很复杂,有一些依赖关系,可能是UI自动化,与Testflight / HockeyApp集成等,我会选择Jenkins或Travis CI。 坚持拥有一个伟大的社区,多年的发展,插件......
答案 1 :(得分:1)
我自己正在寻找这个答案,但对这些建议并不满意。
事实证明,只需从终端获得一点帮助,就可以在Xcode中完成所有工作。
我在这里详述:http://swiftrien.blogspot.com/2016/04/xcode-server-and-multiple-repositories.html
但是会在这里总结一下。
1)创建工作区目录。工作区中的任何项目都不应位于此目录(或其任何子目录)中。
2)使用Xcode创建工作区。您现在可以添加项目。
3)退出Xcode。
4)在终端中转到工作区目录并执行“$ git init”
5)添加带有“.DS_Store”和“xcuserdata”的“.gitignore”文件。
6)使用“$ git add。”添加文件。
7)使用'$ git commit -m“提交文件初始提交”'
8)退出终端,启动Xcode并打开工作区
9)使用“Source Control”菜单验证您现在是否有工作区的git仓库。
10)使用“Source Control”菜单在服务器上添加远程仓库。
11)对于所有项目,使用“Source Control - > Configure ...”菜单告诉Xcode必须在结账时包含该回购。
您需要创建新机器人或升级旧机器人。
祝你好运。