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

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: like pretty, but with no colors or unicode.
  • phabricator: outputs a JSON array of build/test results which can be fed into the Phabricator code-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 a JSON Compilation Database of build events which can be used by Clang Tooling based tools, e.g. OCLint.
  • user-notifications: sends notification to Notification Center when action is completed (example notifications).
  • teamcity: sends service messages to TeamCity Continuous Integration Server

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

一:fuck fuck fuck fuck 测试了半天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 <xcarchivepath> -exportPath <destinationpath> -exportOptionsPlist <plistpath>
#xctool -workspace GWMovie.xcworkspace -scheme GWMovie -sdk iphonesimulator  run-tests 
echo "${SECONDS}s"

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值