基于 Cocoapods 的 iOS 项目的示例 .travis.yml

Posted

技术标签:

【中文标题】基于 Cocoapods 的 iOS 项目的示例 .travis.yml【英文标题】:Sample .travis.yml for Cocoapods based iOS projects 【发布时间】:2015-05-31 06:35:18 【问题描述】:

我有一个非常简单的 ios 项目。它使用 Cocoapods 进行依赖管理,并将 AFNetworking 作为其依赖之一。目前,我的项目代码只是做一个简单的 http GET 请求,测试(使用 Specta 编写)检查它是否成功。

现在,我正在尝试使用 Travis-CI 对其进行 CI。我已经检查了xctool CI tutorial 和objective-c CI manual from Travis-CI,我目前的 .travis-ci.yml 是:

language: objective-c
xcode_project: Foobar.xcodeproj
xcode_schema: Foobar

CI 控制台的最后输出行是:

命令“echo”查看我们的文档以获取更多信息:http://about.travis-ci.org/docs/user/languages/objective-c/“”以 0 退出。 完毕。您的构建以 0 退出。

在我看来,没有任何东西经过测试。我的 .travis.yml 肯定有问题。所以我的问题是:

    Cocoapods 生成了一个 .xworkspace 文件,那么我在 .travis.yml 中使用哪个,.xcodeproj 还是 .workspace? 使用哪种方案,FoobarFoobarTests? 我还需要额外指定script: xctool ... 命令吗? 来自xctool CI tutorial:

    单击 + 按钮并将每个依赖项添加到项目中。 CocoaPods 将显示为一个名为 Pods 的静态库。

我不能将Pods 项目作为一个整体添加,而是将每个独立的项目添加。这是正确的吗?是否意味着每次向 Podfile 添加库时都必须这样做?

【问题讨论】:

我可以说 1 和 2 的 xcworkspace 和 FoobarTests,但这就是我能提供的所有帮助。 【参考方案1】:

我在上面@Schemetrical 的评论和对我的 .travis.yml 的评论的帮助下找到了答案。原来是一个错字:xcode_schema 应该是xcode_scheme...

因此,这是我的 .travis.yml

language: objective-c
xcode_workspace: Foobar.xcworkspace
xcode_scheme: Foobar

对于 vanilla Cocoapods 生成的项目/工作空间,没有名为 FoobarTests 的此类方案,而只有一个名为 Foobar 的方案。所以这应该回答上面的问题 1-3。

对于问题 4,我只添加了两个额外的目标:Pods-FoobarPods-FoobarTests,它们应该包含您 Podfile 中的所有依赖项。

【讨论】:

以上是关于基于 Cocoapods 的 iOS 项目的示例 .travis.yml的主要内容,如果未能解决你的问题,请参考以下文章

使用cocoapods的restkit项目集成错误

基于CocoaPods的 React Native新手入门

iOS组件化实践(基于CocoaPods)

手把手教学:在iOS 8中使用Cocoapods

使用 Cocoapods 管理多个目标的依赖关系

iOS-CocoaPods原理