第一个搭建jenkins,下载了cocoa pods ,xcode的插件,发现运行有问题,所以本着可控的原则,我把这些都去掉,直接执行脚本xcode。昨晚听一个七牛云副总裁的直播演讲,他说3-5年的程序员,应该想着如何实现功能,然后后面做熟练了之后,跳出舒适区,自己天马行空的做一下功能。所以我计划要实现几个功能。
2. app 基于jenkins自动构建执行脚本,所以我要实现一个自动化构建的脚本
3. 后台的框架jsonrpc 2.0 支持各种协议批量请求
4. http://www.aliued.com/?p=3166
jenkins 打包的时候老是提示错误, 软件工程中,遇到这么多问题,所以从来没有一件事是简单的,可能这种事情不是很难,但是也需要很大的耐心。同时在为了解决这个这种问题,还是尽量使用开源的软件,尽量可控在自己手中 ,遇到问题,可以阅读源代码,当然,也可以自己写代码,但是我希望站在巨人的肩膀上。随着岁月的增长,可能企业对于我的要求是越来越高了,希望我自己本身就是一个巨人。
遇到陌生的工具,我选择运行demo,一步一步往上面加东西,保证每次都能跑通,解决在运行过程中遇到的问题,因为我的工程过于庞大,所以一旦遇到问题,排查起来比较困难。之前我就用过第三方的CI,但是每次遇到困难就只能找客服,截图,反复询问,也许就是我的工程比较特殊,一直不能解决我的问题,所以我才放弃了第三方的CI环境,或许简单的工程放在第三方CI环境上是比较好的。
问题1,xcode 插件
因为使用jenkins的Xcode插件,老是报错,总是target, scheme的错误,所以我选用了fir-cli的命令行来打包
问题2,fir-cli 与Xcode版本不匹配,一些工具已经废除
PackageApplication 这个新的Xcode 8.3.3版本被移除了,
问题3,fir upgrade 更新失败所以我需要更新fir-cli,在更新fir-cli的老是提示更新失败,报openSSL,通过gem sources remove https://ruby.china.org的来解决这个问题,估计这个源出问题,之前是从taobao源转过来的。问题4 证书与Xcode不对应,必须手动删除就证书
再次执行fir-cli编译:
017-08-21 10:44:13.088 xcodebuild[53221:1462259] [MT] IDEDistribution: Step failed: : Error Domain=IDEDistributionErrorDomain Code=1 "No valid iOS Distribution signing identities belonging to team 2N699HKK5U were found." UserInfo={NSLocalizedDescription=No valid iOS Distribution signing identities belonging to team 2N699HKK5U were found.}
error: exportArchive: No valid iOS Distribution signing identities belonging to team 2N699HKK5U were found.
看了fir-cli的源代码:
def archive_ipa(apps)
logger.info 'Archiving......'
logger_info_dividing_line
option_plist_path = @optionPlistPath || gen_option_plist
@xcrun_cmd = "#{FIR::Config::XCODE_WRAPPER_PATH} -exportArchive"
@xcrun_cmd += " -archivePath #{@xcarchive_path}"
@xcrun_cmd += " -exportOptionsPlist #{option_plist_path}"
@xcrun_cmd += " -exportPath #{@build_dir}/fir_build"
puts @xcrun_cmd if $DEBUG
logger.info `#{@xcrun_cmd}`
end
然后我反复看了我的Xcode,完全没有这个teamId,但是工具没有删除的选项,所以我必须手动删除这profile的本地文件You can remove them from the this directory on your machine: "~/Library/MobileDevice/Provisioning\ Profiles"问题5 编译的空间不够
(No space left on device)