命令行下构建xcode工程(build和archive)
来源:互联网 发布:ppt模板 windows官网 编辑:程序博客网 时间:2024/06/06 12:24
mac 10.9 以前的做法
1、首先需要解锁mac 系统的keychain 工具,然后导入签名证书:
// 解锁钥匙串security unlock-keychain -p password "$HOME/Library/Keychains/login.keychain" // -k 指定证书导入到登录钥匙串中// -P 导入证书时,需要的密码(是导出这个p12格式的证书时输入的密码)// -A 表示允许任何应用程序访问导入的密钥,不提示警告信息(不安全,不推荐!)security import $basepath/$p12File -k ~/Library/Keychains/login.keychain -P password -A
如果想了解更多关于这个security import 和 unlock-keychain 命令的参数,可以在命令行中,输入:
security unlock-keychain -hsecurity import -h
2、构建我们的app
// 清理工程xcodebuild clean // $2变量是证书的名称,注意,不是证书文件的名字,而是证书名字// $3变量是MobileProvision配置文件对应的UUIDxcodebuild -target yooke -configuration Release build PLATFORM_NAME=iphoneos \ BUILDSDK=/Developer-SDK8 CODE_SIGN_IDENTITY="$2" PROVISIONING_PROFILE="$3"
关于获取UUID和证书名称的,可参考我的另一篇文章《Xcode 运行时配置》
3、对生成的app文件,重新签名,并导出ipa格式的文件
// $mpFile变量是MobileProvision配置文件所在的路径,比如:/tmp/yooke.mobileprovisionxcrun -sdk iphoneos PackageApplication -v $basepath/build/Release-iphoneos/"$4".app \ -o $basepath/build/Release-iphoneos/"$4".ipa --sign "$2" --embed $mpFile
4、如果你每次打包时都需要不同的证书,可能你会想要删除一些证书:
// $2同上security delete-certificate -c "$2" login.keychain
mac 10.10 后可行的做法(当然,兼容前面的系统版本)
在mac os 10.10,需要使用另外的方法创建ipa。如果你继续执行上面的命令,你会得到:
mac os 10.10不支持通过.app文件中的ResourcesRule.plist文件获取相关的打包资源,因为这个文件压根没有被build进.app文件里。这里我们通过生成xcarchive文件,再从这个文件中导出ipa包
1、跟上面的第一步一样,这里就不多说了。
2、构建xcarchive文件(指定签名文件和配置文件)
// 指定生成 test.xcarchive 文件xcodebuild -scheme yooke archive -archivePath /tmp/test.xcarchive \ -configuration Release build PLATFORM_NAME=iphoneos BUILDSDK=/Developer-SDK8 \ CODE_SIGN_IDENTITY="$2" PROVISIONING_PROFILE="$3"
3、通过这个xcarchive文件,签名并导出ipa文件
// -exportWithOriginalSigningIdentity 参数表示使用这个xcarchive文件内部的签名证书和配置文件重新签名// 当然你可以通过 -exportProvisioningProfile 指定配置文件名称// 通过 -exportSigningIdentity 指定签名证书 (注意,两者都不是指文件的名称,而是内部的名称)xcodebuild -exportArchive -exportFormat ipa -archivePath /tmp/test.xcarchive \ -exportPath /tmp/test.ipa -exportWithOriginalSigningIdentity
如果你想了解更多的关于xcodebuild 命令的信息,可以在命令行下输入:
xcodebuild -h
参考文档
http://stackoverflow.com/questions/2664885/xcode-build-and-archive-from-command-line/4198166#4198166
0 0
- 命令行下构建xcode工程(build和archive)
- 使用命令行build Xcode工程
- 在xcode下构建cocos2dx-lua工程
- Xcode工程目录下自动生成Build$DerivedData
- Xcode工程目录下自动生成Build$DerivedData
- Xcode工程目录下自动生成Build$DerivedData
- xcode从命令行编译工程
- XCode Build settig 工程路径设置
- 苹果官方xcode工程build设置指南
- xcode构建iOS app时为什么分version和build两个版本号
- iOS学习笔记4-xcode构建iOS app时为什么分version和build两个版本号
- xcode构建iOS app时version和build两个版本号区别
- Xcode构建iOS app时为什么分version和build两个版本。
- xcode构建iOS app时为什么分version和build两个版本号
- xcode构建iOS app时为什么分version和build两个版本号
- xcode 上 version和build
- xcode 上 version和build
- xcode 上 version和build
- python编码问题、乱码问题
- 挥别过去-展望未来
- Codeforces Round #337 (Div. 2)(3/5)
- 使用Maven创建Web项目,无法识别内置JSP内置对象
- 数组指针与指针数组的区别
- 命令行下构建xcode工程(build和archive)
- 约瑟夫问题-数组实现
- Activity launchMode四分之二 ----singleTop
- Struts2常用标签总结
- mybatis与ibatis区别
- HEAP[xxx.exe]:Invalid Address specified to RtlValidateHeap 错误的解决方法总结
- android_自动检测更新
- close form 封闭解
- android瀑布流效果(仿蘑菇街)