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