刚做好了手表应用,结果将代码上传后,发现原来用jenkins做自动打包的时候会报找不到watchos路径的错误,原来是用jenkins的Xcode插件,填好上面的scheme就能打出来的,现在不行了,搞了几天,终于搞定。
使用可以参考:http://reviewcode.cn/article.html?reviewId=11
之前这个jenkins不是我搞的,也不太懂,后面才知道原来只是用了Jenkins提供的插件来打包的,现在发现插件不行了,而且虽然上面的文章已经提供了一个打包脚本,但是并没有签名的信息,即使能打包也是没办法安装的。
接着发现原来,要用一个新的方式,参考:http://www.matrixprojects.net/p/xcodebuild-export-options-plist/
-exportOptionsPlist exportPlist.plist(这个文件要先创建好放在本地) 加这个换掉-exportFormat ipa这个,原本以为就可以了,后面发现还是报错,然后找到了http://stackoverflow.com/questions/32841300/xcodebuild-exportarchive-exportoptionsplist-error-for-key-method-expected-o 这个问题,发现要把teamID给去掉,这时就可以了。
下面是我jenkins的三个execute cell,希望对大伙有用:
1.
mkdir -p archive //创建这个文件夹,用来存储最后打出来的ipa包
rm -rf archive/*
mkdir -p build //这个打包的时候用来过渡
rm -rf build/*
2.签名,打包
xcodebuild clean -workspace 你的workSpace名字.xcworkspace -scheme 你的scheme名字 -configuration Debug(Release等等) archive -archivePath ./build/你的应用名字(随意).xcarchive && \
xcodebuild -exportArchive -exportOptionsPlist JenkinsArchive/exportDebugPlist.plist(这个文件先建好放在本地,是development还是ad-hoc,可以在工程里配上这两个文件,在打包的时候改一下这个plist地址就行) -archivePath build/你的应用名字(随意).xcarchive -exportPath build/
3.最后将包复制到我建的archive目录下
cp -f build/你的应用名字(随意).ipa archive/Debug.ipa
注意事项:
1.项目从svn下载到workspace后,一定要打开workspace,在Xcode里command+B build一下工程,不然jenkins会卡在某个地方不动(我第一次的时候都要这样子做)
2.把jenkins的Xcode插件禁掉
还不会用markdown写,好丑……见谅。