之前一直使用的altools.最近因为过期需要迁移到notarytool.本片文章介绍一下该脚本如何使用

altool的使用(旧版)

假如你的Xcode的路径是下面的路径:

/Applications/Xcode.app

那么之前使用到的工具的路径就是下面的路径:

/Applications/Xcode.app/Contents/Developer/usr/bin/altool
APPLEACCOUNT = "xxx@xx.com" # 替换为你的账号APPLEPASSWORD = "123123123" # 替换为你的密码(这里建议在appleid.com中创建一个单独密码来专门使用)EXPORT_IPA = "/xx/xx/xx.ipa" #替换为要上传的ipa路径1. 验证ipaxcrun altool -v -f ${EXPORT_IPA} -u ${APPLEACCOUNT} -p ${APPLEPASSWORD} -t ios2. 上传ipa包xcrun altool --upload-app -f ${EXPORT_IPA} -u ${APPLEACCOUNT} -p ${APPLEPASSWORD} -t ios

notarytool的使用

Xcode版本 >= Xcode13

shell

APPLEACCOUNT = "xxx@xx.com" # 替换为你的账号APPLEPASSWORD = "123123123" # 替换为你的密码(这里建议在appleid.com中创建一个单独密码来专门使用)EXPORT_IPA = "/xx/xx/xx.ipa" #替换为要上传的ipa路径APPLETEAMID = "xxxxxx" # 替换为developer网站中对应团队member中显示的的teamid1. 上传IPA包xcrun notarytool submit {EXPORT_IPA} --apple-id {APPLEACCOUNT} --team-id {APPLETEAMID} --password {APPLEPASSWORD} --wait2. 查看上传结果xcrun notarytool history --apple-id {APPLEACCOUNT} --team-id {APPLETEAMID} --password {APPLEPASSWORD}

python

..import subprocess...APPLEACCOUNT = "xxx@xx.com" # 替换为你的账号APPLEPASSWORD = "123123123" # 替换为你的密码(这里建议在appleid.com中创建一个单独密码来专门使用)EXPORT_IPA = "/xx/xx/xx.ipa" #替换为要上传的ipa路径APPLETEAMID = "xxxxxx" # 替换为developer网站中对应团队member中显示的的teamid...upload_script = f"{notarytool} submit {EXPORT_IPA} --apple-id {APPLEACCOUNT} --team-id {APPLETEAMID} --password {APPLEPASSWORD} --wait"upload_output = subprocess.Popen(upload_script, stdout=subprocess.PIPE, shell=True)upload_log = upload_output.stdout.read().decode()upload_output.wait()if upload_output.returncode == 0:print("AppStore上传成功:\n" + upload_log)else:print(""AppStore上传失败:\n" + upload_log)# 查看上传结果upload_result_script = f"{notarytool} history --apple-id {APPLEACCOUNT} --team-id {APPLETEAMID} --password {APPLEPASSWORD}"upload_result_output = subprocess.Popen(upload_result_script, stdout=subprocess.PIPE, shell=True)upload_result_log = upload_result_output.stdout.read().decode()upload_result_output.wait()if upload_result_output.returncode == 0:print("AppStore上传状态查询成功:\n" + upload_result_log)else:print("AppStore上传状态查询失败:\n" + upload_result_log)