Tag: 持续部署

Jenkins for iOS版本

Jenkins是一个用Java编写的开源自动化服务器,旨在使开发人员发现自己重复的某些任务自动化。 Jenkins支持多个插件,使您可以使用许多第三方服务。 最好的事情是,如果找不到或使用插件,则只能受自己的脚本编写能力的限制,因为它能够运行任意的Shell脚本。 安装: 以下是在系统上安装Jenkins的先决条件,您的系统应具有: Homebrew是一个免费的开源软件包管理系统,可简化在Apple macOS操作系统上安装软件的过程。 爪哇 要安装brew运行以下命令: ruby -e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 有时它会拒绝访问,然后执行以下两个命令,然后执行上述命令: sudo chown -R“ $ USER”:admin / usr / local sudo chown -R“ $ USER”:admin /库/缓存/自制 要安装Jenkins: 酿造安装詹金斯 如果您的系统上未安装Java,请运行以下命令来安装Java: brew cask安装java 要安装Jenkins: 酿造安装詹金斯 ln -sfv /usr/local/opt/jenkins/*.plist〜/ Library / LaunchAgents launchctl加载〜/ Library / LaunchAgents / homebrew.mxcl.jenkins.plist 要启动Jenkins,请运行以下命令: 詹金斯 它将启动Jenkins并生成密码。 设定: 转到http:// localhost:8080,输入生成的密码。 […]

使用Travis CI和GitHub进行iOS的持续部署和持续集成

让我们看看如何将GitHub项目与Travis链接。 使用您的GitHub帐户登录Travis网站。 对于私人存储库,您需要注册一个Travis Pro帐户。 登录后,您必须为Travis启用项目。 导航到配置文件页面,其中列出了您的所有GitHub项目。 请注意,以后创建新存储库时,请使用立即同步按钮。 Travis仅偶尔更新列表 现在使用开关启用您的项目。 之后,您应该在GitHub项目设置中看到Travis挂钩。 下一步是告诉Travis一旦收到更改通知该怎么办。 最小的项目配置 Travis CI需要有关您的项目的一些基本信息。 在项目根目录中创建一个名为“ .travis.yml”的文件,其内容如下: 自定义构建命令 Travis从命令行构建您的项目。 因此,第一步是使您的项目在本地编译。 作为Xcode命令行工具的一部分,Apple附带了xcodebuild 。 打开您的终端并输入: xcodebuild —帮助 这应该列出xcodebuild的所有可能参数。 如果失败,请确保正确安装了命令行工具。 这是典型的构建命令的外观: xcodebuild -project {project} .xcodeproj -target {target} -sdk iphonesimulator ONLY_ACTIVE_ARCH = NO 设置“ iphonesimulator” SDK以避免签名问题。 这是必需的,直到我们稍后包含证书为止。 通过设置“ ONLY_ACTIVE_ARCH = NO”,我们确保可以针对模拟器架构进行构建。 您还可以设置其他属性(例如,配置)。 输入 ‘ man xcodebuild’以阅读文档。 对于CocoaPods项目,您必须改为指定工作区和方案: xcodebuild -workspace {workspace} […]

使用Fastlane插件确保Swift版本

Apple于2015年12月将Swift开源,此后新版本的Swift频繁发布。 在瞬息万变的Swift开发环境中,必须确保用于构建iOS应用的Swift版本正确且符合预期。 我们将介绍如何使用我写的名为“ ensure-swift-version”的Fastlane插件自动检查Swift的版本。 为什么要检查Swift版本 根据Swift仓库上的Github版本,我们可以看到几乎每天都有新的DEVELOPMENT-SNAPSHOT发布。 我们可以轻松地切换到Swift的不同工具链,以尝试Swift语言的新功能。 在此处的Swift文档页面上有关于使用自定义工具链的信息。 迅捷版 我们可以通过从终端运行swift-version命令来检查版本,但是我们必须将此步骤插入到构建过程中。 Fastlane是用于iOS应用程序构建自动化的流行工具之一。 我认为,将插件添加到Fastlane以检查Swift版本是一个好主意。 让我们看看如何将插件添加到项目中。 为项目添加Fastlane支持 让我们创建一个新的Xcode项目作为单视图iOS应用程序。 我们称之为“演示” 我们可以通过在fastlane目录中创建Fastfile来为项目添加Fastlane支持。 $ mkdir fastlane $ touch fastlane / Fastfile 添加Fastlane插件 假设您已经在macOS上安装了fastlane,如果没有,请按照此处文档中的安装步骤进行操作。 我们可以通过运行添加快速通道插件 $ fastlane add_plugin sure_swift_version 这将为我们的项目设置Gemfile和Pluginfile并安装插件“ ensure-swift-version”。 使用插件 现在,我们可以使用我们新添加的插件了。 让我们在Fastfile中添加一条车道 泳道:迅捷 sure_swift_version(版本:“ Apple Swift版本3.1”) 结束 在这里,我们正在检查我们使用的Swift版本是3.1。 我们可以使用 $快速通道 如我们所见,将此检查插入我们的构建过程将多么容易。 最好将此检查用作before_all通道的一部分,以便我们可以在构建和测试应用程序之前执行此检查。 范例程式码 该插件可在Github仓库’fastlane_plugin_ensure_swift_version’上获得,并且有使用此插件’demo_ensure_swift_version_plaugin’的演示仓库。 希望您觉得这个插件有用。 像XCBlog的 XCTEQ 发布的帖子一样 ? 您可能还喜欢我们的一些服务,例如访客博客或Mobile […]

使用Jenkins,Fastlane和TestFlight在iOS中进行持续集成和持续交付—第1部分

每个开发环境都有自己独特的方式。 它是分支策略,源代码控制系统,代码审查过程,合并和发布策略。 本文的目的是显示实现CICD管道所需的基本步骤,作为快速参考指南。 这更像是要点。 您还可以参考下面提供的链接,以详细了解这些步骤。 使用的工具是Xcode,GIT,Jenkins,Fastlane和TestFlight。 安装Xcode及其命令行工具。 从https://brew.sh/安装HomeBrew软件包管理器 / usr / bin / ruby​​ -e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 3.用ruby稳定安装RVM: \ curl -sSL https://get.rvm.io | bash -s稳定—红宝石 4.安装Java8,因为Jenkins使用Brew在Java8上运行。 酿造自来水桶/版本 brew cask安装java8 如有任何问题,您可以直接从Oracle网站下载并安装Java8。 5.使用Brew安装Jenkins。 酿造安装詹金斯 6.启动詹金斯 酿造服务开始詹金斯 7.在浏览器(http:// localhost:8080)中打开Jenkins,登录,创建一个用户。 如果看到“解锁詹金斯”屏幕,请按照提供的说明进行操作。 8.配置Jenkins后,从“管理Jenkins”->“管理插件”安装“ Xcode集成”。 9.完成后,通过单击“创建新作业”来创建新作业。 如果您已经在另一台机器上准备好了作业,则只需复制“ jobs”文件夹,然后将其粘贴到/user/.jenkins下的目标机器中即可。 在我们进行更多工作时,最好查看系统中所有隐藏的文件。 这是执行此操作的参考。 10.创建作业后,将其配置为与源代码控制存储库连接。 11.安装Fastlane 酿造桶安装fastlane 12.如果您还没有“ bash_profile”,请创建一个新的。 您可以参考此操作。 13.在代码库中初始化Fastlane。 编写动作。 将更改提交到存储库。 这是示例的Github参考。 […]

Bitrise上漂亮而智能的Xcode存档步骤日志

标准日志中包含最后10行经过修饰的Xcode日志,以使在 Bitrise 上的调试更加流畅 。 在我们的Xcode构建步骤中,我们使用xcpretty修饰原始Xcode构建日志的输出。 原始日志存储在一个临时目录中,因此,如果要详细检查故障,则可以找到原始输出。 尽管xcpretty产生了更多易于消化的输出,但是很常见的是,您无法从经过修饰的输出中分辨出确切的错误,但是它包含在原始Xcode构建日志的末尾。 因此,我们更新了Xcode步骤,以在步骤失败且输出工具为xcpretty时,将构建日志的最后10行打印到标准输出中。 这与完整日志无关,该文件仍然可用。 新的日志看起来很漂亮。 😉 ▸ Check Dependencies ❌ Code signing is required for product type ‘Application’ in SDK ‘iOS 10.3’ ❌ Code signing is required for product type ‘Application’ in SDK ‘iOS 10.3’ [33;1mIf you can’t find the reason of the error in the log, please check the […]