博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jenkins整合Xcode详解
阅读量:5924 次
发布时间:2019-06-19

本文共 2659 字,大约阅读时间需要 8 分钟。

hot3.png

关于Jenkins整合XCode最开始的配置项就行述说了。这里主要是针对XCode的配置项进行详细的叙述,帮助小伙伴们快速整合XCode进行编译和打包。

整合结果

首先关于xcodeprojxcworkspace

由于我们是多人开发而为了解决xcworkspacexcodeproj多人开发会导致冲突的情况,我们在上传到SVN(或)都是不上传这两个后缀名的文件。

所以在我Jenkins的构建项中第一个就是一个Shell脚本,目的是将配置项拷贝到Jenkins的目录下: 
构建项

然后就开始了XCode的配置

1.General Build Setting

General Build Setting

  • Target:就是我们在项目中建立的Target

如果不清楚有哪些Target的情况下可以到xcodeproj或xcworkspace的目录下运行如下命令 xcodebuild -list 即可看到Targets,其中是所有可以用的target。

  • Clean before build?:这个是在编译前是否clean一次,一般是选择YES。
  • Configuration: 对应的是xcodebuild命令里的-configuration的参数,可选项为[Debug、Release],一般都填Debug,这样就可以将打包后的ipa交付给测试人员测试
  • Pack application and build .ipa?:这个是在结束是是否要产生对应的ipa文件,一般都是打上勾的
  • .ipa filename pattern:这个配置项是配置所产生ipa的文件名,其中有一些可用的全局变量
  • 其中${VERSION}和${SVN_REVISION}都是可以直接用的环境变量,如果想看还有哪些环境变量而已用可以点击在Execute shell下方有个 "See the list of available environment variables"进行查看,这里就不进行列出来了。
  • Output directory:这个配置了ipa的输出目录(默认Build output directory所在路径,见下图)

2.Code signing & OS X keychain options(签名的设置)

3QD--JQFSCQKRKN9_O-5ZIF.png

* Codee Signing Identity:所使用的签名

如果不知道具体填什么可以到钥匙串访问中寻找 iPhone Distribution:开头的所使用的证书,然后选中后点击右键选择显示简介,在弹出的窗口中找到常用名称,将其复制填入即可。

或者可以在命令行中输入security find-identity -p codesigning -v来查找iPhone Distribution:开头的签名即可,找到后将双引号中的内容复制。

  • Unlock Keychain?: Jenkins需要访问Keychain,获取响应的key,所以需要授权。选上就自动解锁。需要提供密码。
  • Keychain path: 默认都是${HOME}/Library/Keychains/login.keychain
  • Keychain password: 钥匙串的密码

3. Advanced Xcode build options(xcodebuild命令的配置)

这部分的配置都是xcodebuild里面的参数的配置:

Advanced Xcode build options

  • Clean test report?:这个是如果要用到xcode测试的时候才用到
  • Xcode Scheme File: 关于这个其实对应的就是xcodebuild命令中的-scheme的参数

可以通过xcodebuild -list来查询。是不是觉得这条命令很熟悉,没错前面查找target的时候也是用这个命令!

  • SDK:这里是xcodebuild命令中的-sdk的参数,指定编译和打包的sdk号。如果不懂可以填写哪些可以通过xcodebuild -showsdks来查看。
  • SYMROOT:该变量是编译和打包产生结果的输出目录(.a,.zip,.ipa,.hmap等产生文件的位置),其中该目录其实是包括了CONFIGURATION_BUILD_DIR和OBJROOT这两个目录,默认的路径是所编译的xcodeproj所在目录,如主项目和POD项目整合后,则会在主项目的和POD项目的XCODEPROJ所在目录

如果在指定了OBJROOT的位置后,编译过程中产生的文件不会在该目录体现 如果在指定CONFIGURATION_BUILD_DIR的位置后,该变量则变成无效化

 

  • Custom xcodebuild arguments:这个就是xcodebuild命令中的指定buildsetting的命令的参数,至于可以指定哪些参数请不要问我,可以找度娘或者谷哥
  • Xcode Workspace File:该配置是指明了xcodebuild中的-workspace的变量,其实就是如果您需要编译打包一个workspace时候的时候指定那个后缀名为xcworkspace的文件,如果指定了该配置,那么Xcode project file配置项将无效
  • Xcode Project Directory:该目录是指明了包含xcodeproj文件的目录(这个我是没用用到如果用了该参数可能最开始第一步的构建就没用了——不过我还没证实,欢迎小伙伴证实后告诉我)
  • Xcode Project File: 如果需要构建一个project而不是一个workspace的话则指定文件的名称(后缀名为xcodeproj的文件)
  • Build output directory:该参数只是指明了最终需要产生的动态包,ipa,app等文件默认路径为所编译的xcodeproj所在目录,如主项目和POD项目整合后,则会在主项目的和POD项目的XCODEPROJ所在目录(编译产生的相关文件所在目录,默认为SYMROOT/CONFIGURATION)

  • 值得说的是有一个参数也是挺常用的就是OBJROOT,该参数是产生.a和.hmap文件的目录,默认路径为所编译的xcodeproj所在目录,如主项目和POD项目整合后,则会在主项目的和POD项目的XCODEPROJ所在目录,关于OBJROOT、CONFIGURATION_BUILD_DIR以及SYMROOT三个路径之间的关系大家可以去查看官方的文档。

转载于:https://my.oschina.net/ocean870227/blog/1525185

你可能感兴趣的文章
Android 数据库初窥
查看>>
使用Phaser开发你的第一个H5游戏(一)
查看>>
十、performSelector延时调用内存泄漏的问题
查看>>
理解JVM(二):垃圾收集算法
查看>>
Redux专题:实用
查看>>
杠上Spark、Flink?Kafka为何转型流数据平台
查看>>
畅谈云原生(下):云原生的飞轮理论
查看>>
分类模型的评价方法
查看>>
微服务系列-Spring Cloud优质项目推荐
查看>>
11-玩转数据结构-并查集
查看>>
Android--List转换String,String转换List
查看>>
Java码农必须掌握的循环删除List元素的正确方法!
查看>>
Gradle Distributions
查看>>
javascript 函数
查看>>
CUDA学习(二十四)
查看>>
C++ Builder 初学问与答(十六)
查看>>
OpenStack 系列之File Share Service(Manila) Install Guide
查看>>
实现机选双色球
查看>>
Gradle 1.12用户指南翻译——第二十五章. Scala 插件
查看>>
GoolgeAppEngine Web开发之单元测试环境的搭建
查看>>