mac命令行下使用xcodebuild编译ios app的一点点总结
2015-06-02 17:45
537 查看
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
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
相关文章推荐
- iOS查看和清理缓存
- Unity3D调用自己封装的dll
- Execution failed for task ':app:compileDebugAidl': aidl is missing
- Android动画效果translate、scale、alpha、rotate详解
- android 上传文件
- [iOS] 如何将你的程序打包成ipa
- 了解iOS上的可执行文件和Mach-O格式
- cocos2dx 自定义menu 添加到scrollview上可以滑动
- Android大图片裁剪终极解决方案(上:原理分析)
- android:layout_gravity和android:gravity的区别
- Android实现简单的倒计时功能
- IOS安全–了解Mach-o文件结构
- android小程序整理笔记
- Android通过浏览器打开app页面并且传递值
- 两句话,实现android 4.4以上实现沉浸式状态栏
- 平安科技移动开发二队技术周报(第三期)
- 平安科技移动开发二队技术周报(第四期)
- IOS 判断手机号 身份证号
- Android Volley完全解析(四),带你从源码的角度理解Volley
- 平安科技移动开发二队技术周报(第二期)