`

iOS持续构建环境搭建

    博客分类:
  • iOS
阅读更多

目录:

一、说明

二、环境信息

三、搭建步骤

       1、配置apple证书

              1)创建Certificate Signing Request

              2)创建证书

              3)导入证书

              4)下载profile

       2、安装Cocoapods

              1)更换RubyGems源

              2)安装cocoapods

       3、Jenkins

              1)安装Jenkins

              2)安装Jenkins插件

              3)环境变量

              4)配置证书

              5)任务配置

                     a、证书选择

                     b、依赖包更新

                     c、Xcode编译

                     d、Xcode打包

四、遇到问题

五、参考资料

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

一、说明

该环境的搭建主要是为实现iOS app的自动化打包,无需人工参与。在该环境基础上,可集成SonarQube代码质量检测、单元测试等。

产出物:ipa

 

本文重点在于iOS相关配置说明,不对基础环境进行介绍。

二、环境信息

系统:Mac OS X 10.10.5

Xcode:7.2

Ruby:2.2.1

RubyGems: 2.4.8

JDK:1.7.0_79

Jenkins:1.636

Cocoapods:0.37.2

 

三、搭建步骤

1、配置apple证书

1)创建Certificate Signing Request

通过Mac中的“钥匙串访问”创建Certificate Signing Request:




 保存.certSigningRequest 文件。

2)创建证书

登录Apple开发者网站,创建证书(期间需要上传上一步生成的.certSigningRequest 文件):



 

3)导入证书

下载上一步生成的证书到Mac中,双机证书,证书打开时会启动“钥匙串访问”工具:



 

4)下载profile

打开Xcode——>Preferences...,登录开发者账号,选中相应Team,View Details...:



 点击相应签名后面的“Reset”按钮,将对应的Profile下载到本地(下载完只会Reset按钮将消失,如下图):


2、安装Cocoapods

1)更换RubyGems源

 

$ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/

    查看是否更换成功:

 

 

$ gem sources -l

 

2)安装cocoapods

由于项目需求,本次搭建cocoapods使用0.37.2版本:

$ sudo gem install cocoapods -v 0.37.2
$ pod setup

 setup过程会非常缓慢,可通过以下命令查看是否有进度(文件大小是否增长):

$ cd ~/.cocoapods/repos
$ du -sh *

 

3、Jenkins

1)安装Jenkins

使用 homebrew 安装 Jenkins:

$ brew install jenkins

 

然后链接 launchd 配置文件:

$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents

 修改完后,在终端执行:

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

 即可启动 Jenkins。

接着用浏览器访问 http://localhost:8080(默认配置),就可以看到 Jenkins 的 web 界面了。

 

2)安装Jenkins插件

  • Git plugin(Git集成,拉取代码)
  • Xcode integation(Xcode集成,编译打包)
  • Keychains and Provisioning Profiles Management(证书集成)

3)环境变量

系统设置——>全局属性,勾选Environment variables,新增键值对,配置ruby路径:



 

4)配置证书

系统管理——>Keychains and Provisioning Profiles Management,分别上传~/Library/Keychains/login.keychain,~/Library/MobileDevice/Provisioning Profiles/前面下载到本地的对应profile文件,

并填写证书名称(在钥匙串访问中右击证书“显示简介”,把常用名称复制下来):



 

5)任务配置

新建一个自由风格的Jenkins任务,配置Git等项。继而进行以下配置:

a、证书选择

选中Keychain and Code Signing Identities,选择相应的keychain(其它项保存后会自动更新),如下图;

选中Mobile Provisioning Profiles,选择想过要的Profile(其它项保存后会自动更新),如下图



 

b、依赖包更新

此步骤不通过Cocoapods插件实现,直接通过命令处理。增加构建步骤——Execute shell,添加以下代码:

export LC_ALL="en_US.UTF-8"
cd ${WORKSPACE}/xxx/
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

 

c、Xcode编译

增加构建步骤——Xcode,如下配置:

Configuration可选择Debug或Release(其中ipa打包不选中,后续通过命令行实现),



 配置证书和keychain,



 高级选型,注意通过Cocoapods依赖必须指定Workspace File文件,



 

d、Xcode打包

此步骤不通过Xcode插件实现,直接通过命令处理。增加构建步骤——Execute shell,添加以下代码(其中${BUILD_ID}为本次构建ID):

rm -fr ${WORKSPACE}/build/*ipa
xcrun -sdk iphoneos PackageApplication -v ${WORKSPACE}/build/Release-iphoneos/xxx.app -o ${WORKSPACE}/build/xxx-${BUILD_ID}.ipa

 

四、遇到问题

1、直接拉取代码之后,命令行找不到scheme问题处理

详见:http://sailqi.iteye.com/admin/blogs/2283188

 

2、使用Xcode插件打包失败

Xcode插件选中ipa打包之后,会自动把sign参数加上(暂不知道如何去掉),导致失败,通过直接用命令行打包解决该问题。

 

五、参考资料

如何在Mac OS X上安装 Ruby运行环境:http://www.cnblogs.com/daguo/p/4097263.html

最新版 CocoaPods 的安装流程:http://www.tuicool.com/articles/7VvuAr3

Cocoapods降低版本及卸载:http://www.meetrue.com/archives/133

在Mac mini上架设Jenkins服务器来运行iOS测试:http://linjunpop.logdown.com/posts/162202-set-up-jenkins-server-on-the-mac-mini-to-run-ios-tests

Jenkins整合XCode详解:http://www.pluto-y.com/jenkins-xcode-configuration/

一步一步构建iOS持续集成:Jenkins+GitLab+蒲公英+FTP:http://www.jianshu.com/p/c69deb29720d

Keychains and Provisioning Profiles Plugin官方配置文档:https://wiki.jenkins-ci.org/display/JENKINS/Keychains+and+Provisioning+Profiles+Plugin

  • 大小: 26.8 KB
  • 大小: 27.4 KB
  • 大小: 14.8 KB
  • 大小: 56.4 KB
  • 大小: 36.5 KB
  • 大小: 26.7 KB
  • 大小: 12.5 KB
  • 大小: 62 KB
  • 大小: 57.9 KB
  • 大小: 38.1 KB
  • 大小: 43 KB
  • 大小: 58 KB
分享到:
评论

相关推荐

    IOS APP自动化测试环境搭建

    本文将详细介绍如何搭建一个iOS App的自动化测试环境,主要包括Xcode集成测试、UI自动化测试以及持续集成的配置。 首先,我们要了解自动化测试的基本概念。自动化测试是通过编写脚本和使用专门的测试工具来代替手动...

    iOS项目框架搭建

    在iOS应用开发中,构建一个高效且易于维护的项目框架是至关重要的。这不仅可以提高开发效率,还能确保代码的整洁性和可扩展性。本篇文章将详细介绍如何进行iOS项目的框架搭建,包括常用宏定义文件的创建、自定义控件...

    ios-iOS 搭建项目框架.zip

    7. **持续集成/持续部署(CI/CD)**:如Jenkins、Travis CI等,自动化构建和发布流程,提高效率。 8. **代码规范和版本控制**:遵循一定的编码规范,使用Git进行版本控制,保证代码整洁且易于协作。 通过学习和理解...

    IOS环境搭建

    这篇教程将深入讲解如何搭建一个有效的iOS开发环境。 首先,我们需要安装Xcode。Xcode是Apple官方的集成开发环境(IDE),包含了编写、测试和调试iOS应用所需的所有工具。你可以从Mac App Store免费下载最新版本的...

    linux-一个基于Jenkins的iOSAndroid自动构建系统

    "Linux-一个基于Jenkins的iOS/Android自动构建系统"是这样的一个解决方案,它利用Jenkins这一强大的持续集成工具,实现了跨平台的iOS和Android应用的自动化打包过程。 Jenkins是一款开源的持续集成服务器,支持多种...

    Xcode5 + phoneGap2.9搭建ios开发环境

    本篇文章将详细介绍如何利用Xcode5和PhoneGap2.9搭建iOS开发环境,并进行配置、测试以及归档上传。 首先,你需要下载并安装Xcode5。Xcode5是支持iOS7及更高版本开发的最早版本之一,它包含了Interface Builder、...

    asp.net webform for ios(ipa&plist) 测试环境搭建

    iOS测试环境的搭建,特别是针对ipa(iOS应用程序包)和plist(iOS配置文件)的处理,对于开发和测试iOS应用在ASP.NET平台上的部署至关重要。本文将深入探讨如何使用ASP.NET WebForm来创建一个支持iOS应用下载和管理...

    iOS中配置Jenkins集成打包测试发布CI系统

    在iOS持续集成中,使用Jenkins作为自动化服务器是一个常见的做法。Jenkins是一个开源的自动化服务器,可以用来自动化各种任务,如构建、测试和部署软件。Jenkins通过插件来支持各种开发工具和版本控制系统,例如Git...

    Android APP自动化环境搭建

    测试结果可以通过JUnit或TestNG的报告格式输出,也可以集成到持续集成工具如Jenkins、Travis CI等,实现自动化构建和测试。 通过以上步骤,你就能够搭建一个完整的Android APP自动化测试环境,有效提升测试效率,...

    ios开发详解markdown格式

    无论是从开发环境的搭建、技术栈的选择,还是具体的应用开发流程、关键技术框架的使用等方面,都为初学者提供了详细的指导。随着iOS系统的不断更新和技术的进步,iOS开发也在不断地发展和完善之中。因此,对于iOS...

    iOS测试指南完整版

    测试环境搭建:在进行iOS测试之前,需要搭建一个合适的测试环境。这通常包括设置Xcode开发环境、配置iOS模拟器和真实设备,以及安装测试工具等。 自动化测试:自动化测试在iOS应用测试中非常关键,因为能够显著提高...

    Xamarin AndroidVS2017开发环境搭建

    ### Xamarin Android VS2017 开发环境搭建详解 #### Xamarin 概述 Xamarin 是一个集成开发环境(IDE),允许开发者使用 C# 语言来编写 Android 和 iOS 应用程序,无需学习 Java 或 Objective-C。这对于 C# 开发者...

    iOS 11 Swift Programming Cookbook

    书中的内容涵盖了从项目搭建到测试与持续集成和交付的多个方面,非常适合那些希望提高自己iOS开发能力的开发者。 该书的标签为"iOS swift4",意味着它针对的是iOS平台上的Swift编程语言的第4个版本。Swift是苹果...

Global site tag (gtag.js) - Google Analytics