赞
踩
AppleParty 是 37手游 iOS 团队研发,实现快速操作 App Store Connect 后台的自动化 macOS 工具。本文会介绍工具诞生的背景、使用教程和代码实现的简介,希望通过开源与大家分享成果,让更多人一起参与改进和完善,最后一起提高效率和拓展探索方向。
大家好,很高兴告诉大家一件重要的事情,我们发起了一个开源项目 —— AppleParty(苹果派)(苹果派)。这是我们团队在上一个 开源的 App Store 后又一个尝试。AppleParty 这个项目是我们 37手游 iOS 团队内部孵化的一个产品,希望这个项目能作为一个引子,通过开源与大家分享成果,一起提高效率和拓展大家对未来的探索方向。
目前,iOS/macOS App 上架 App Store,与苹果打交道的唯一方式,就是登陆苹果 App Store Connect 后台(https://appstoreconnect.apple.com,通过苹果后台进行 App 所有的信息和素材等送审准备工作。但是,目前苹果后台的自动化水平还处于零基础,很多重复的操作和功能,都没有提供批量处理方案,比如:
App 分析的指标:
以上的 App 分析数据,每次只能下载一个指标的数据,每个 App 有十几个指标,操作这些重复的配置往往占用了运营同学非常长的时间,效率低且重复无聊的工作,导致我们长期无法做更多的时间开启和享受创造性。
基于以上种种痛点,我们从多个技术手段,打造了 Apple Party(苹果派对)工具! 通过尽可能快速实现操作的自动化流程,从而大大提高苹果后台的操作效率!
注:目前苹果有提供 App Store Connect API 方式,但是目前迭代的功能,还不能满足所有的需求,下文会展开说明。
Apple Party(苹果派)
我们倡导工作之余,丰富多彩的生活要领,健身、旅游、聚会、培养艺术兴趣等等。
所以,Apple Party(苹果派对),简称:苹果派,就是希望大家在使用苹果的服务时,像似参加一场苹果派对,尽情欢乐,欢聚宴会~
我们希望,大家在 AppleOS 生态下开发时,可以提高效率,专注于核心内容,然后愉快派对!
目前实现的功能
注:内购买项目和商店素材上传,暂时只支持 iOS app,未来会考虑支持 macOS app、tvOS app。
环境依赖
目前我们在 GitHub 开源 37iOS/AppleParty,所以提供GitHub 安装包:
update 更新
目前已经使用 Sparkle 来实现版本更新,默认启动就会自动检查更新,也可以通过菜单栏进行手动检查更新。
因为账号记录是存放在 Keychain 里,所以首次打开时,会提示需要访问钥匙串:
如果点击“拒绝”,则不会保存账号和密码信息。
然后,会显示主界面:
默认情况下弹出登陆界面,也可以点击取消登陆(快捷键esc
):
现在默认登陆都需要双重认证:
如果需要使用短信验证码,可以点击“发送短信验证码”,如果希望通过语言验证码,可以勾选“拨打语言来电”切换:
点击“我的 App”,显示帐号所有的App,可以操作内购买项目管理和商店素材管理。
点击内购管理,显示当前已有的内购品项列表:
点击 “导入表格”,可选择excel表进行导入,然后会显示导入的品项明细表。
如上图所示,列表1和2是自定义的送审截图,所以需要点击右下角的“上传截图”选定。
“提交”后,会显示下面的界面,如未设置专用密码,首次需要设置,或者点击右下角“设置特殊密码”重新设置。
专用密码的生成参考文档:使用 App 专用密码 - Apple 支持 (中国)
上传失败时,查看 ERROR 内容就是错误内容:
批量素材上传
点击“素材一键导入”一键上传,素材可以分别在不同尺寸下显示。
对应的尺寸,上传视频和截图后,填写排序的位置和视频海报帧:
可点击右上角
?
按钮查看帮助文档。
邮箱功能,一方面是可以设置快速邮件发送,另一方面是工具效率自动邮箱的通知需求。
二维码功能也是一个工作中的小痛点。
使用的是苹果提供的 Transporter 工具链,提供了上会的命令,有 3 个工具:
其中,Application Loader 已经弃用了,可以忽视。Transporter
命令所有的目录:
Xcode.app:
/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/bin/iTMSTransporter
Transporter.app:
/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter
Lookup Metadata 模式
获取 app 信息,获取到一个 xxx.itmsp 包,里面有关于 app 版本和内购品项等信息的 xml 格式文件。
iTMSTransporter -m lookupMetadata -u [user] -p [password] -apple_id(-apple_ids) -destination [output_path]
示例:
同时获取多个 app 信息:
iTMSTransporter -m lookupMetadata -u xxx@37.com -p 专用密码 -apple_ids 10 xxxx,多个appid,xxx -destination /Users/37/Desktop/output
获取单个 app 信息:
iTMSTransporter -m lookupMetadata -u 账号邮箱 -p 专用密码 -apple_id 某个appid -destination /Users/37/Desktop/output
Provider 模式
查询供应商,也就是开发者账号的名字和团队 id:
iTMSTransporter -m provider -u [user] -p [password]
示例:
iTMSTransporter -m provider -u xxx@37.com -p 专用密码
输出内容:
Provider
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。