iOS项目通过xcodebuild和xcrun自动发布

本文详细介绍了如何使用Python脚本自动完成iOS应用的清理、编译、打包及签名流程,包括导入证书、替换资源文件、修改配置信息、重新签名和生成IPA包等关键步骤。

最近在研究App的自动生成, 使用Python编写程序替换图标,名称等,然后生成全新的应用。

通常打包采用xcodebuild和xcrun两个命令,xcodebuild负责编译,xcrun负责将app打成ipa。

 

常见步骤如下:

1、清理工程

/usr/bin/xcodebuild -target targetName clean

 

2、编译工程

/usr/bin/xcodebuild -target targetName

3、打包

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

 如果是含签名的包,上面两个命令需要增加一些参数。

xcodebuild -target targetName CODE_SIGN_IDENTITY="iPhone Distribution:XXXXXX"

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


自动打包步骤:

1、先用xocde手动编译好一个App,假设为MyApp.app

 

2、导入证书文件到MAC的钥匙链

//创建钥匙链

security create-keychain -p myapp myapp.keychain

//解锁,否则回弹框等待输入密码

security unlock-keychain -p myapp myapp.keychain

//导入证书

security import /opt/myapp.p12 -k myapp.keychain -P mypassword -T /usr/bin/codesign

3、以MyApp.app为模板,copy一个备份,然后进行各种资源的替换,比如替换了应用的图片文件等

4、替换对应的*.mobileprovision文件到MyApp.app目录

5、删除MyApp.app下的签名信息_CodeSignature

6、修改info.plist Bundle indentifier和*.mobileprovision一致

7、修改MyApp.xcent中application-identifiervalue值为对应证书名称,可以以一个xcent为模板,注意如果没有aps-environment关键字,打出来的ipa包将没有apns模块,格式如下:

 


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

        <key>application-identifier</key>

        <string>Z4LR7CBRUD.com.yesun.vic</string>

        <key>aps-environment</key>

        <string>production</string>

        <key>get-task-allow</key>

        <false/>

</dict>

</plist>


8、重签名codesign

/usr/bin/codesign --force --sign 9c8b212f6a2c2382847b104e387a01b246d4ce42 --resource-rules=MyApp.app/ResourceRules.plist --entitlements MyApp.xcent Mkey3G.app

9、生成ipa包

/usr/bin/xcrun -sdk iphoneos  PackageApplication -v MyApp.app -o MyApp.ipa  --sign  9c8b212f6a2c2382847b104e387a01b246d4ce42 --embed MyApp.app/embed.mobileprovision

10、删除钥匙链

security delete-keychain myapp.keychain

 

带xcodebuild编译的打包步骤如下:

  1. 导入钥匙链
  2. 对工程clean
  3. 修改info信息
  4. 修改project信息
  5. xcodebuild
  6. 替换各种资源文件
  7. 修改xcent
  8. 重新签名codesign
  9. xcrun打ipa
  10. 删除钥匙链

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

offbye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值