mac使用xcodebuild编译

http://blog.sina.com.cn/s/blog_56ae1d5801017x3a.html




xcodebuild负责将工程源文件编译成xxx.app
xcrun负责给xxx.app(签名并)打包成xxx.ipa
先说我是咋干的。
第一步清理:

/usr/bin/xcodebuild -target targetName clean

第二步编译:

/usr/bin/xcodebuild -target targetName

第三步打包:

/usr/bin/xcrun -sdk iphoneos PackageApplication -v path/To/xxx.app -o xxx.ipa

解释一下
关于xcodebuild,xcodebuild -target target名 就完成了一次编译工作,因为xcodebuild默认的一个参数就是build,即完整的命令就是:xcodebuild -target target build。而打包前清理的话就是xcodebuild -target target clean了。为什么打包前要先清理呢?因为清理一下能保证打的包肯定是干净的而且打包过程不会出问题
关于xcrun,直接打包的参数就是 xcrun -sdk iphoneos PackageApplication -v 源app路径 -o 输出的ipa路径
关于xcrun要更新的一个认识就它的打包功能,查资料的时候发现好多牛人都是直接用xcodebuild编译,然后自已手动用zip将编译好的app打包成ipa格式,表示不理解这些牛人们为什么要费力自已实现一遍。
注意事项:以上两个命令必需在xxx.xcodeproj所在的目录执行
高级用法:给应用签名。上面两个命令都可以给应用签名的,格式分别是:

xcodebuild -target targetName CODE_SIGN_IDENTITY="iPhone Distribution:XXXXXX"
xcrun -sdk iphoneos PackageApplication -v 源app路径 -o 输出的ipa路径 --sign "iPhone Distribution:XXXXXX"

基本就这样了,接下来批量工作,至于是用bash脚本还是apple script就看个人喜好了,我是不会告诉你我现在喜欢写mac小程序的。



第一个问题,证书不匹配:
开发和编译不是放在一台机器上,所使用的证书就是个问题。
这个需要手动改plist文件。修改一下所使用的证书

第二个问题:
Code Sign error: Provisioning profile '*****-****-****-****' can't be found
这个好解决,按照网上的教程,找 项目文件夹XXXX.xcodeproj,编辑 project.pbxproj这个问题件。把里面的
CodeSign error: Provisioning profile
统统删掉。

第三个问题,第三方库需要提前编译。
这个是看了N多E文问答后才晓得的,
他的这个项目使用了 SDWebImage这个用途很广的一个第三方库,在xcode下,系统会在编译app前先把他编译好,可是,用命令行就木有那么好命了,需要自己先手动编译一下。

第四个问题,包依赖
在解决了上述三个问题后,我以为接下来的路应该很顺,但是很莫名其妙的,提示找不到
libxml/tree.h     SDWebImage/UIButton+WebCache.h
上网一查,我勒个去tree.h居然是系统自带的库。 系统居然找不到自己自带的库。好吧,继续上网找答案……终于找到解决方法,给xcodebuild加上一个参数
HEADER_SEARCH_PATHS="各种库的路径,包括第三方库"

所有的问题解决,编译吧,于是遇到了最后一个问题
CopyPNGFile build/Release-iphoneos/XMTNews.app/saidehan-elect.png Resource/otherImage/导航/saidehan-select.png
编译程序不认中文……这个如果想找办法的应该也能觉得,但我实在是不想折腾了,于是要求研发小哥,不要使用中文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值