开源一款苹果 macOS 工具 - AppleParty(苹果派)

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 分析的指标:

  • 展示次数
  • 产品页面查看次数
  • 首次下载次数
  • 净预订量
  • 平台版本(iOS14.5、iOS15…)
  • 页面类型(产品页面、商店表单、App内活动…)
  • 用户来源(网页引荐来源、App 引荐来源、AppStore 浏览、AppStore 搜索、活动通知…)

以上的 App 分析数据,每次只能下载一个指标的数据,每个 App 有十几个指标,操作这些重复的配置往往占用了运营同学非常长的时间,效率低且重复无聊的工作,导致我们长期无法做更多的时间开启和享受创造性。

基于以上种种痛点,我们从多个技术手段,打造了 Apple Party(苹果派对)工具! 通过尽可能快速实现操作的自动化流程,从而大大提高苹果后台的操作效率!

注:目前苹果有提供 App Store Connect API 方式,但是目前迭代的功能,还不能满足所有的需求,下文会展开说明。

2.1 Apple Party(苹果派)名字起源

Apple Party(苹果派)

我们倡导工作之余,丰富多彩的生活要领,健身、旅游、聚会、培养艺术兴趣等等。

  • Party:派对 即 “宴会,聚会” 的意思,大家聚在一起庆祝和休闲的一种活动。

所以,Apple Party(苹果派对),简称:苹果派,就是希望大家在使用苹果的服务时,像似参加一场苹果派对,尽情欢乐,欢聚宴会~

我们希望,大家在 AppleOS 生态下开发时,可以提高效率,专注于核心内容,然后愉快派对!

三、使用说明

3.1 注意事件

目前实现的功能

  • 内购买项目管理(批量创建和更新);
  • 批量商店图和预览视频上传和更新;
  • 数据报表批量下载(后续开源);
  • 邮件发送工具;
  • 二维码扫描和生成工具;

注:内购买项目和商店素材上传,暂时只支持 iOS app,未来会考虑支持 macOS app、tvOS app。

环境依赖

  • 支持 macOS 10.13 和以上系统
  • 依赖 Transporter.app
  • 依赖 Xcode(Transporter.app 依赖)

3.1 安装包下载

目前我们在 GitHub 开源 37iOS/AppleParty,所以提供GitHub 安装包:

update 更新

目前已经使用 Sparkle 来实现版本更新,默认启动就会自动检查更新,也可以通过菜单栏进行手动检查更新。

3.2 使用介绍

因为账号记录是存放在 Keychain 里,所以首次打开时,会提示需要访问钥匙串

AppleParty-01.png

如果点击“拒绝”,则不会保存账号和密码信息。

然后,会显示主界面:

AppleParty-02.png

默认情况下弹出登陆界面,也可以点击取消登陆(快捷键esc):

AppleParty-03.png

现在默认登陆都需要双重认证:
AppleParty-04.png

如果需要使用短信验证码,可以点击“发送短信验证码”,如果希望通过语言验证码,可以勾选“拨打语言来电”切换:
AppleParty-05.png

3.2.1 批量上传内购买项目和商店素材

点击“我的 App”,显示帐号所有的App,可以操作内购买项目管理和商店素材管理。

AppleParty-06.png

点击内购管理,显示当前已有的内购品项列表:

AppleParty-07.png

  • 刷新:刷新当前App的内购品项列表(刚刚上传的品项不会马上生效,所以可以手动刷新)
  • 导入表格:通过固定表格的形式,批量创建内购品项
  • 导出表格:导出所有品项的信息 Excel 表
  • 导出品项 ID:导出品项productID和内购品项id的对应表
  • 下载表格示例:批量创建内购品项的示例 Excel 表格

点击 “导入表格”,可选择excel表进行导入,然后会显示导入的品项明细表。

AppleParty-08.png

如上图所示,列表1和2是自定义的送审截图,所以需要点击右下角的“上传截图”选定。

“提交”后,会显示下面的界面,如未设置专用密码,首次需要设置,或者点击右下角“设置特殊密码”重新设置。

AppleParty-09.png

专用密码的生成参考文档:使用 App 专用密码 - Apple 支持 (中国)

上传失败时,查看 ERROR 内容就是错误内容:

AppleParty-10.png

批量素材上传

点击“素材一键导入”一键上传,素材可以分别在不同尺寸下显示。

AppleParty-11.png

对应的尺寸,上传视频和截图后,填写排序的位置和视频海报帧:

AppleParty-12.png

可点击右上角 按钮查看帮助文档。

3.2.2 其它扩展功能

邮箱功能,一方面是可以设置快速邮件发送,另一方面是工具效率自动邮箱的通知需求。

AppleParty-13.png

二维码功能也是一个工作中的小痛点。

AppleParty-14.png

四、代码实现简解

4.1 上传内购买项目和商店素材

使用的是苹果提供的 Transporter 工具链,提供了上会的命令,有 3 个工具:

  • Xcode.app
  • Application Loader.app
  • Transporter.app

其中,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
4.1.1 Transporter 命令使用

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 [email protected] -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 [email protected] -p 专用密码

输出内容:


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值