测试测试版 | ✓ |
Lang语言 | SwiftSwift |
授权 | MIT |
发布上次发布 | Aug 2016 |
SPM支持SPM | ✗ |
由Honza Dvorsky,Esteban Torres维护。
使用Xcode Server的API与原生的Swift对象。
最初在Buildasaur项目中引入,现在作为独立项目。这是一个非官方的、由社区维护的项目,并不与Apple相关联。我们还将维护Xcode Server的非官方文档,以方便您使用不同的编程语言进行集成!
要了解如何在几分钟内(以及更多)设置Xcode Server,请查看我的教程系列。
要查看集成XcodeServerSDK
到iOS应用中的简便性,请查看XCSDemo项目,由@cojoj创建。
Xcode Server API | 支持? |
---|---|
Xcode 7和更新版本 | |
Xcode 6及更早版本 | |
您需要操作系统版本大于等于4。对于Xcode 7,操作系统版本需要大于等于10.10.4。
支持旧版(未经文档记录的)Xcode 6版本的Xcode Server API的最新版本是0.0.4。所有更新的版本只支持公开文档记录的新版Xcode 7 API。
将XcodeServerSDK
集成到项目中的方法之一是使用CocoaPods。将以下内容添加到您的Podfile中(版本为已发布的最新pod版本:
pod 'XcodeServerSDK'
使用服务器的URL、用户名和密码创建服务器配置对象。
do {
let config = XcodeServerConfig(host: "https://127.0.0.1", user: "IRuleBots", password: "superSecr3t")
} catch ConfigurationErrors.NoHostProvided {
fatalError("You haven't provided any host")
} catch ConfigurationErrors.InvalidHostProvided(let host){
fatalError("You've provided invalid host: \(host)")
} catch ConfigurationErrors.InvalidSchemeProvided(let scheme) {
fatalError("You've provided invalid scheme: \(scheme)")
} catch {
fatalError("Error, not related to XcodeServerConfig; \(error)")
}
实例化XcodeServer
。
let server = XcodeServerFactory.server(config: config)
尽情使用!
server.getBots { bots, error in
guard error == nil else {
Log.error("Oh no! \(error.description)")
return
}
// go crazy with bots
if let firstBot = bots?.first {
// use the first bot...
}
}
与Swift 1.2兼容的最新版本是0.0.4,因此如果您的目标是Swift 1.2,请在Podfile中放入这个确切版本。所有更新的版本都将针对Swift 2,因为我们所有人都是这样前瞻性的。
我们提供了一个沙盒,您可以在其中轻松地与XcodeServerSDK
互动并测试其功能,而无需创建新的应用程序。沙盒目标设置为用于OS X(因此不要在内部使用UIKit
)。
苹果公司终于发布了Xcode Server的官方文档。它们与WWDC上所展示的内容略有不同(第69页幻灯片)。以下是文档中描述的功能表格,按类别划分。最后类别,非官方,是在开发XcodesServerSDK
时反向工程的功能集合,所以您在文档中找不到它们,但它们肯定在代码中!
类别 | 描述 | XcodeServerSDK 支持 |
---|---|---|
机器人 | ||
创建新的机器人 | ||
检索机器人列表 | ||
检索单个机器人 | ||
更新单个机器人 | ||
删除单个机器人 | ||
复制现有机器人 | ||
集成 | ||
开始指定机器人的集成 | ||
检索单个集成 | ||
删除集成 | ||
取消正在执行的集成 | ||
检索对指定机器人的所有集成的过滤、选择和计算的选项 | 部分 | |
检索对所有集成的过滤、选择和计算的选项 | 部分 | |
检索集成的测试 | 部分 | |
检索给定集成和设备标识符的测试信息列表 | 部分 | |
检索给定集成和设备标识符的问题信息列表 | ||
检索给定集成的文件列表 | ||
资产 | ||
检索给定相对路径的资产 | ||
代码覆盖率 | ||
检索给定集成的代码覆盖率信息 | ||
非官方 | ||
检查用户是否可以创建机器人 | ||
列出服务器上的托管仓库 | ||
创建新的托管仓库 | ||
获取支持的平台 | ||
从蓝图获取SCM分支 | ||
验证用户可以管理服务器 |
目前XcodeServerSDK
支持以下平台
平台 | 最低版本 | CocoaPods |
---|---|---|
OS X | 10.10 | |
iOS | 8.0 | |
watchOS | 2.0 | |
tvOS | 9.0 |
想要创建自己的但需要一些灵感?观看2015年WWDC的此会议上的Xcode Server!使用硬件按钮启动集成?为什么不可以!天空才是极限。
我们使用CocoaPods进行依赖关系管理。当您克隆仓库时,您需要运行pod install
来下载必要的依赖项。
请注意,此项目以贡献者行为准则发布。通过参与此项目,您同意遵守其条款。
创建一个问题或(最好是)发送一个拉取请求。您只是想要参与并帮忙吗?查看标记为up-for-grabs的问题。这些就是等待像您这样美好灵魂的人来构建/修复的。我们确实没有足够的带宽,任何帮助都受欢迎 :)(如果您发送一个PR,您将成为版本贡献者列表之一!)
对于类似一般问题/想法,请提交一个buildasaurs的相关issue,这样任何人都可以在未来看到它们并与之联系起来。这对这种开源项目来说非常重要!如果你的问题需要深入讨论,或者你有一个很好的想法并且在提交issue之前真的很想与他人分享,你可以加入官方的buildasaurs Slack团队!(这样做的话,请向Twitter上的@czechboy0发送ping,并准备好你的电子邮件地址
这段代码是从Buildasaur中提取出来的,带来了GitHub拉取请求与Xcode机器人的集成。
Honza Dvorsky honzadvorsky.com @czechboy0