苹果个人开发者自动发包(超级签)教程(3)-本地打包

本文详细介绍了如何使用Python在macOS系统上自动化苹果个人开发者应用的打包过程,包括删除旧文件、替换签名文件、生成entitlements.plist、重新签名和压缩上传至OSS。
摘要由CSDN通过智能技术生成

前面2个文章已经写明怎么获取UUID和签名文件了,不明白的可以回去看下

苹果个人开发者自动发包(超级签)教程(1)-UDID获取_描述文件自动注册uuid到服务器-CSDN博客

苹果个人开发者自动发包(超级签)教程(2)-准备接入App Store Connect API-CSDN博客

准备

接下去本地打包准备

需要一台macos系统的电脑(虚拟机 macmini,macpro都可以)

步骤:

1、删除上一次打包的解压文件(可以每次打包之前删,也可以每次包体有更新之前删)

2、删除上一次生成的entitlements.plist文件

3、解压ipa文件

4、删除解压出来的_CodeSignature文件

5、放入签名文件

6、重新生成plist文件并放入解压的项目中

7、重新签名项目

8、压缩包体 上传到oss(可以是阿里云,七牛云等等)

只要步骤清晰了,做起来就简单了

详细

流程全部都是python代码写的 提供各位大佬参看

1、删除上一次打包的解压文件
payloadfile=Path('Payload')
if payloadfile.exists():
    rmfileCmd= 'rm -rf Payload'
    process = subprocess.Popen(rmfileCmd, shell=True)
    process.wait()
2、删除上一次生成的entitlements.plist文件
ementlistfile=Path('entitlements.plist')
if ementlistfile.exists():
    rmfileCmd= 'rm -rf entitlements.plist'
    process = subprocess.Popen(rmfileCmd, shell=True)
    process.wait()
3、解压ipa文件
unzipCmd = 'unzip -o -q %s.ipa' %(file)
process = subprocess.Popen(unzipCmd, shell = True)
process.wait()
4、删除解压出来的_CodeSignature文件
    rmCmd= 'rm -rf Payload/xxxxx/_CodeSignature'  #xxxxx为解压出来的目录 一般为xxx.app
    process = subprocess.Popen(rmCmd, shell=True)
    process.wait()
5、放入签名文件
    cpCmd = 'cp embedded.mobileprovision Payload/xxxxx'  #xxxxx为解压出来的目录
    process = subprocess.Popen(cpCmd, shell=True)
    process.wait()
6、重新生成plist文件并放入解压的项目中

这个部分很重要

ementsCmd='/usr/libexec/PlistBuddy -x -c "print :Entitlements " /dev/stdin <<< $(security cms -D -i Payload/%s.app/embedded.mobileprovision) > entitlements.plist' %(file)    #file为解压包体的文件夹名称等同与前面的xxxxx
process = subprocess.Popen(ementsCmd, shell=True)
process.wait()
7、重新签名项目
    resignCmd = 'codesign -f -s "%s" Payload/xxxxx --entitlements entitlements.plist' %(CODE_SIGN_IDENTITY)   #xxxxx为包体解压文件夹名称
    process = subprocess.Popen(resignCmd, shell=True)
    process.wait()
8、压缩包体 上传到oss(可以是阿里云,七牛云等等)
    zipCmd = 'zip -rq %s.ipa Payload' %(ofile)    #压缩包体
    process = subprocess.Popen(zipCmd, shell=True)
    process.wait()
    if process.returncode==0:
        return True
    else:
        return False

到此超级签流程都完毕,后面就看大佬们把包上传到云存储了 方便用户们下载使用.

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值