我开始在Mavericks中设置新的Xcode服务.我创建了一个新机器人 - 但是我没有被要求建立它应该建立的分支机构?
如何为每个机器人选择分支?我不仅想要建立master,而且还想要不同的分支.
我为github上托管的项目安装了一个Xcode Bot.我按照步骤设置机器人以使用我现有的SSH密钥.验证成功,项目将结帐并构建.
然后我在预触发操作中添加了一个shell脚本,该操作会增加plist中的版本,标记它,然后将更改提交回github.
但是,当我尝试从shell脚本执行git push时,我得到了这个:
- 推送到git@github.com:spex-app/spex-ios.git权限被拒绝(publickey).
致命:无法从远程存储库读取.
为什么服务器会成功签出我的项目但无法推送更改.我注意到用户是_xcsbuildd.我尝试将.ssh键复制到/var/_xcsbuildd/.ssh中,但这也无效.
我为我的iOS XCode项目设置了持续集成,但是当Xcode bot构建我的项目时,我不断收到很多警告.当我构建(用于运行,测试或存档)时,我没有得到任何警告.
我认为这与我的项目设置有关.我的主项目中有一个'内部'项目,包含我需要的库.我正在为i386架构构建两个项目,因此它可以在模拟器中运行(因此Xcode机器人可以运行测试).
确切的警告如下.我对.m内部项目中的每个文件都收到此警告.
Warning: no rule to process file '[…]/CDICMessage.m' of type sourcecode.c.objc for architecture i386
Run Code Online (Sandbox Code Playgroud)
大多数关于此警告的Google结果都是针对.h错误添加到"编译源"的.m文件,但显然我的文件应该在那里.
同样,此警告仅显示在Xcode服务器上,本地构建很好.构建是正常的,否则测试成功并构建存档.最大的问题是警告堆会淹没项目可能产生的任何其他警告.
使用Cocoapods v0.34.4
我的Podfile包含以下内容
source 'https://bitbucket.org/MyRepo/My-podspecs.git'
source 'https://github.com/CocoaPods/Specs.git'
Run Code Online (Sandbox Code Playgroud)
当我运行pod安装时,我需要为我的bitbucket帐户指定用户名/密码.当我在本地运行的,但是我也跑这个作为持续集成的一部分,建立与服务器的XCode和的XCode 6.在XCode的服务器,这是好的吊舱安装,因为它不能没有我的凭据访问到位桶命令失败.
是否可以将我的凭据添加到Podfile或任何其他方式告诉Cocoapods bitbucket源代码库的凭据?
我设置了一个机器人来构建项目,然后在所有模拟器上进行测试.这一直有效,但今天整合有28个错误.每个人说同样的事情(但对于每个模拟器设备名称):
Xcode无法在模拟设备"Resizable iPad"上启动应用程序,因为它目前正在"iPhone 5s"上运行应用程序.一次只能使用一个模拟设备......
手动运行机器人后,我没有收到任何警告.什么可能导致这个?(我喜欢成功连胜)
我最近升级到Xcode 9 Server并发现了一个突然的问题.在我遇到这个错误之前,还有其他一些问题.我从自动签名变为手动唱歌来回.现在在我的iOS项目中我手动设置它并在服务器上我尝试了两者.构建是成功的,它产生一个存档(我不能下载它),但它也给我错误:
exportArchive: exportOptionsPlist error for key 'iCloudContainerEnvironment': expected one of {Development, Production}, but no value was provided
我还检查了集成输出目录,它不会生成ipa文件.
由于我不手动触发xcodebuild,我不知道如何解决它.
我创建了一个Xcode Bot,它集成在每次提交时.
在"运行脚本"触发器中,我想使用已运行的测试的集成状态更新当前的GitHub提交.相当标准的CI东西.

然后我将运行如下的脚本:
curl -i -X POST -H "Content-type: application/json"
-H 'Authorization: token TOKEN_HERE' -d
'{
"state": "success",
"target_url": "https://example.com/build/status",
"description": "The build succeeded!",
"context": "continuous-integration/jenkins"
}'
https://api.github.com/repos/ORGANIZATION_HERE/REPO_HERE/statuses/SHA_HERE
Run Code Online (Sandbox Code Playgroud)
看起来我将能够从Xcode Bot Environment变量获取success或failure状态:
在Xcode Server CI bot中访问构建文件夹(env变量?)
但是,未列出当前提交的SHA.如何在此时获取用于Integration的提交的SHA,以便在GitHub Status API请求中使用?
使用Xcode 7B4和Server 5B4与Carthage项目.要构建项目,我需要首先构建它的依赖项.所以我使用以下代码向bot添加了Before Integration步骤:
echo "Bootstrapping dependencies..."
export PATH=$PATH:/usr/local/bin
cd Alchemic
carthage bootstrap --use-ssh --use-submodules
echo "Ready."
Run Code Online (Sandbox Code Playgroud)
自己运行一切都有效.但是当机器人运行时,我得到了这个:
CodeSign错误:未找到代码签名身份:未找到有效的签名身份(即证书和私钥对).
CodeSign错误:SDK'iOS 9.0中的产品类型'Framework'需要代码签名'
shell任务失败,退出代码为65
检查机器人我自己作为团队并扫描服务器目录它似乎具有所有必需的配置文件.所以我猜测服务器的用户无法访问密钥或类似的东西.
有谁知道我可能会缺少什么?
xcode-server ×10
xcode ×9
ios ×5
osx-server ×2
xcode-bots ×2
bitbucket ×1
bots ×1
carthage ×1
cocoapods ×1
git ×1
icloud ×1
macos ×1
ssh-keys ×1
xcode10 ×1
xcode9 ×1
xcodebuild ×1