当前位置: 移动技术网 > IT编程>移动开发>IOS > ios打包的关于xcodebuild和xctool的使用教程

ios打包的关于xcodebuild和xctool的使用教程

2018年10月03日  | 移动技术网IT编程  | 我要评论

时尚穿衣,新疆人事人才信息网,萨摩价格

xctoo简介:facebook那帮人,耐不住每天打包的烦恼,搞了一些自动化工具。基于xcodebuild封装了一层形成了xctool。

xctool有哪些好处呢? 

1、它可以从命令行构建和运行单元测试,这和xcode.app从图形化界面上达到一样的效果。如果你为ios设置了持续集成,那么这就非常重要了。你想要能够自动化运行测试,那些测试与你的开发人员在本地计算机上运行的完全相同,而xcodebuild不会用和xcode.app相同的方式来构建和运行测试。在xcode 4中,苹果把单元测试集成到了xcode中——与“构建”和“运行”一起,有一个新的“测试”动作;使用xcode scheme,你可以选择启用或者禁用哪些单元测试;如果你依赖于ios模拟器(也就是应用程序测试)来编写测试,那么xcode会自动载入模拟器并运行测试。这些都是很大的改进,但看起来苹果并没有把这些改进融入到xcodebuild中,那使得自动化构建和测试非常困难。

2、 另一个重大的问题是构建和测试失败的报告。使用xcodebuild,你会得到大量文本输出,其中包含编译命令、编译错误和警告以及ocunit的测试输出。如果你想要自动确定哪个组件编译失败,或者哪个单元测试失败,那么你就需要编写自己的正则表达式解析器,那也是我们和其他ios社区中的人一直在做的工作。那会有效果,但实在很麻烦。有了xctool,我们会让xcodebuild和ocunit测试运行器把构建输出和测试结果作为json对象的结构化流输出。 这让我们可以很容易地以需要的形式来显示构建和测试结果。例如,我们创建了一个报表,以吸引人的、带有颜色的输出形式来显示结果(https://fpotter_public.s3.amazonaws.com/xctool-uicatalog.gif)。 还有人使用这来把测试结果输出为junit xml,那在流行的jenkins构建系统中会显示得很好。>>>>

xctool的使用:常用命令在他们工程的readme里有详细描述和例子:https://github.com/facebook/xctool/blob/master/readme.md

xctool不支持指定target如-target; 必须用scheme例如

path/to/xctool.sh \
  -project yourproject.xcodeproj \
  -scheme yourscheme \
  build

xctool指定打印报告

path/to/xctool.sh \
  -workspace yourworkspace.xcworkspace \
  -scheme yourscheme \
  -reporter plain:/path/to/plain-output.txt \
  build

可以指定的格式如下

pretty: a text-based reporter that uses ansi colors and unicode symbols for pretty output (the default).
  • plain: likepretty, but with no colors or unicode.
  • phabricator: outputs a json array of build/test results which can be fed into thephabricatorcode-review tool.
  • junit: produces a junit/xunit compatible xml file with test results.
  • json-stream: a stream of build/test events as json dictionaries, one per line(example output).
  • json-compilation-database: outputs ajson compilation databaf build events which can be used byclang toolingbased tools, e.g.oclint.
  • user-notifications: sends notification to notification center when action is completed(example notifications).
  • teamcity: sends service messages toteamcitycontinuous integration server

bibibi一堆,不知道大家愿意不愿意看 我们来整点实际上手的。 下面用xcodebuild和xctool实际动手打几个包来练练手。

一:fuckfuckfuckfuck 测试了半天xcode8以后不支持xctool了 汗!!!!!!

二:我们回到xcodebuild上

project_path=$(pwd)
echo "project_path:${project_path}"
schemename="funnyproject"
outputpath="${project_path}/outputdir"
echo "outputpath:${outputpath}"
#xcodebuild clean -workspace ${schemename}.workspace -scheme ${schemename} -configuration debug
xcodebuild -project $schemename.xcodeproj -scheme $schemename clean
xcodebuild archive -project $schemename.xcodeproj -scheme $schemename -archivepath "${outputpath}/${schemename}.xcarchive" -configuration debug

xcodebuild -archivepath "${outputpath}/${schemename}.xcarchive" -exportpath "${outputpath}/${schemename}.ipa" -exportoptionsplist "${outputpath}/exportoptions.plist" -exportarchive

//这里有个参数exportoptionsplist 需要收到打包导出文件夹里有这个文件,相当于一个配置文件,用这个文件来导出包,把这个文件copy到当前目录即可

#-exportoptionsplist "${outputpath}/${schemename}.plist"
#xcodebuild -exportarchive -exportsigningidentity 'developer id application: my team'
#xcodebuild -exportarchive -archivepath -exportpath -exportoptionsplist
#xctool -workspace gwmovie.xcworkspace -scheme gwmovie -sdk iphonesimulator run-tests
echo "${seconds}s"

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • ios uicollectionview实现横向滚动

    现在使用卡片效果的app很多,之前公司让实现一种卡片效果,就写了一篇关于实现卡片的文章。文章最后附有demo实现上我选择了使用uicollectionview ... [阅读全文]
  • iOS UICollectionView实现横向滑动

    本文实例为大家分享了ios uicollectionview实现横向滑动的具体代码,供大家参考,具体内容如下uicollectionview的横向滚动,目前我使... [阅读全文]
  • iOS13适配深色模式(Dark Mode)的实现

    iOS13适配深色模式(Dark Mode)的实现

    好像大概也许是一年前, mac os系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iphone11等新手机的发售, ios 13系统... [阅读全文]
  • ios 使用xcode11 新建项目工程的步骤详解

    ios 使用xcode11 新建项目工程的步骤详解

    xcode11新建项目工程,新增了scenedelegate这个类,转而将原appdelegate负责的对ui生命周期的处理担子接了过来。故此可以理解为:ios... [阅读全文]
  • iOS实现转盘效果

    本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现... [阅读全文]
  • iOS开发实现转盘功能

    本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#... [阅读全文]
  • iOS实现轮盘动态效果

    本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想... [阅读全文]
  • iOS实现九宫格连线手势解锁

    本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手... [阅读全文]
  • iOS实现卡片堆叠效果

    本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material... [阅读全文]
  • iOS利用余弦函数实现卡片浏览工具

    iOS利用余弦函数实现卡片浏览工具

    本文实例为大家分享了ios利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间... [阅读全文]
验证码:
移动技术网