http://blog.sina.com.cn/s/blog_56ae1d5801017x3a.html
man xcodebuild 和 Xcode build settings
https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/0-Introduction/introduction.html
前些日子,从大学同学手里揽下了一个活,写一个在mac系统下用于自动编译ios app的脚本。
mac系统虽然没接触过,但在怎么也是个类unix的操作系统,就算GUI下什么也不会操作,也没关系,反正有命令行。
但是得到他的项目源码包以后就傻了,完全搞不清楚状况,人家在xcode图形界面下编译什么问题都木有,可放到命令行下用xcodebuild编译就是一堆又一堆的麻烦。
主要有这么几个问题:证书匹配;第三方库;秘钥锁;包依赖
之前他们的研发曾留下了一个通用的脚本,但是完全用不了。
第一个问题,证书不匹配:
开发和编译不是放在一台机器上,所使用的证书就是个问题。
这个需要手动改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
编译程序不认中文……这个如果想找办法的应该也能觉得,但我实在是不想折腾了,于是要求研发小哥,不要使用中文。
最后大功告成~~~
yeah