App Store Connect的新特性(WWDC 2018 session 301 & 303)

WWDC 2018 session 301: what’s new in App Store Connect
WWDC 2018 session 303: Automating App Store Connect
苹果把名字iTunes Connect修改为App Store Connect

引言

这两个session主要讲的是苹果对App Store Connect所做的改进。首先看一下下面的图,应用程序的生命周期通常是同设计开始,然后进行编码,最终上架App Store,之后分析应用在App Store上的表现。现在更具体地说,我们将关注图中高亮的几个关键步骤。
App Store Connect的新特性(WWDC 2018 session 301 & 303)_第1张图片

1.配置(Provisioning)

现在大部分的开发者都通过Xcode自动管理配置。但还是有少数人有特殊需求需要登录Apple Developer网站进行配置。今年夏天,通过App Store Connect API(API相关内容,会在本文后续讲到),可以直接生成配置文件、创建和销毁签名证书、管理设备和应用包ID。

2.管理用户

在这个周期的早起阶段除了考虑配置以外,还可能考虑管理用户。App Store Connect API将支持邀请新用户加入App Store Connect,修改用户可以看到的应用,管理用户角色以及更新用户个人信息。
如果说你不想使用API来简化你的管理体验。我们同样优化了在Web端管理用户的体验。现在如果要管理用户,需要登录App Store Connect和Apple Developer两个网站。但这个夏天开始,只需要去一个地方就好了,那就是App Store Connect。进入App Store Connect,你能够在一组角色的上下文中考虑全部用户。而且所有的Apple ID只需要通过一个账号管理。

3.发版

配置好了、用户也管理好了,接下来自然而然就到了构建。构建成功后,就可以发版了。现在我们很多人都用Transporter(命令行)工具来上传App Store。我们知道有很多开发者使用linux做持续集成,所以今年夏天Transporter工具支持linux系统了。用法与Mac上的用法完全一致。

4.公测(TestFlight)

当我们构建了一些版本之后,我们就可以对他进行公测了。我们对TestFlight进行了一些优化。目前如果要邀请某些用户进行公测的话,需要该用户提供邮箱。他们提供邮箱之后,就会收到邀请的邮件。打开邮件,进入TestFlight,安装公测包。但如果有很多公测用户,那就太麻烦了。并且如果该用户没有邮箱,那么也无法邀请。所以现在我们提供了TestFlight公开链接
公开链接是一个唯一的网址,表示对公测版应用的公开的邀请。可以分享到任何地方。任何人都可以成为公测用户。如果你发送到了社交平台,并且有人感兴趣的话,点击链接,安装应用即可成为公测用户,使用起来非常更简单。只需要在TestFlight页面新建一个组,就可以在顶部看到公开链接了。公开链接最多支持1万公测用户,如果不需要那么多,可以设置更小的上限值。当然还可以随时禁用公开链接。禁用后如果有人打开公开链接,则会提示他们该公测版已不再接受任何新的测试人员。
通过App Store Connect API可以创建TestFlight用户组、给组添加构建版本、管理公开链接、添加和移除公测用户、更新测试信息的操作。

5.分析(Analysis)

当发布了某个应用的某个版本之后,是时候看看用户时如何回应我们的应用程序了。所以我们首先要看的是销量和趋势。而App Store Connect推出了更详尽的销售和趋势页面的展示。我们都知道通过Reporter工具可以下载销售和财务报告。现在同样可以用过App Store Connect API来下载销售和财务报告。

iOS上的App Store Connect

我们不可能无时无刻对着电脑Web端的App Store Connect。所以我们来继续谈谈全新的移动端的体验。

  • 更全面、可配置的数据分析
  • 切换Apple ID账号
  • 收到评分、评论后推送到手机(可设置评分等级)
  • App审核状态的推送也增加了开关
  • 提交审核及审核被拒回复

6.付费订阅

关于付费应用的免费试用,可以通过两个方式来实现。

  1. 提供免费试用,过了免费期就不能使用了
  2. 解锁付费内容,例如常见的付费去广告等
    需要注意的是,要注意和遵守一些原则。首先请确保用户能看到是试用版。接来下,需要用户非常清楚他们正在注册的内容。因此,请确保他们知道试用期还有多长,以及如果他们决定不再使用,那么试用后将不再提供哪些功能和内容。

7.关于审核的tips

  • 确保填写的联系人信息正确并有效,方便能联系到你
  • 提供试用账号和密码
  • 尽可能多谢一些注释
  • 在截屏中展示真实的应用截图
  • 使用相机、相册等权限时要解释为什么要使用

8.App Store Connect API

App Store Connect API是基于JWT(JSON Web token)的标准RESTful API。App Store Connect API具备跨平台性以及拥有完整的使用说明文档,同时使用起来非常熟悉、简单。通过该API我们可以自动化的去管理几乎所有App Store相关的内容。

使用App Store Connect API

首先我们来看一下App Store Connect API都能做什么。

  • 管理证书、管理配置文件、管理设备和安装包ID
  • 管理用户、设置用户角色以及app的访问权限
  • 管理TestFlight、公测用户以及公开链接
  • 下载财务和销售报告
    App Store Connect API是以https://api.appstoreconnect.apple.com作为基础的域名,后面接上版本号,目前的版本号都是v1。版本号后面接的就是各个接口了。如果苹果提交了新的版本,那么我们需要更新接口,但苹果会给我们一段时间进行过度。

授权App Store Connect API

在使用App Store Connect API之前,你必须要做一个大任务——生成token。如果没有token,那么就无法的导向响应。我们知道App Store Connect具有非常敏感的信息,所以App Store Connect API必须要非常的安全,同时还要保证只能访问我们自己的应用程序,而不是其他的应用程序。苹果使用JWT(JSON Web Token标准)在App Store Connect和您的终端设备之间建立连接。为了访问token,我们必须从App Store Connect网站上创建一个私钥。

生成API密钥

为了生成API密钥,我们需要登录App Store Connect网站并点击API Key选项卡,来创建新的API密钥。我们可以为特定的目的来创建API密钥,也可以创建可以访问所有App Store Connect API密钥。

下载私钥

生成API密钥之后,我们将获得一个ISSUER_ID和一个私钥。在处理私钥时,有一些注意事项。

  • 私钥只能从App Store Connect上下载一次。我们必须确保下载后的安全性。
  • 私钥永远不会过去并且只要它有效就可以工作,即使它已经被泄漏了。所以如果您认为您的私钥被泄漏,请尽快从App Store Connect上撤销它。
    私钥通常采用.p8格式。

生成token

如上所述,JWT用于生成App Store Connect API使用的token。生成token的过程需要遵守以下六个事项。

  • 颁发者ID(Issuer ID):App Store Connect顶部展示的ID
  • 私钥ID(Private Key ID):与App Store Connect上私钥相关联的ID
  • 有效期:最长20分钟,token超过20分钟即无效,因此我们必须确保在有效期到达时创建新的token
  • 受众(Audience):这是常量,API版本值通常为applestoreconnect-v1
  • 算法(Algorithm):这是生成token(例如ES256)所需的JWT算法
    明白了所有注意事项后,我们将能够使用您首选的脚本语言生成JWT token。JWT几乎可以在包括Swift在内的所有语言中使用,但使用Ruby或者Python等动态或解释语言生成JWT会更快。这是WWDC演示中使用的Ruby脚本。
require "base64"
require "jwt"

ISSUER_ID = "YOUR_ISSUER_ID"
KEY_ID = "YOUR PRIVATE KEY ID"

private_key = OpenSSL::PKey.read(File.read(path_to_your_private_key/AuthKey_#{KEY_ID}.p8))

token = JWT.encode(
   {

    iss: ISSUER_ID,
    exp: Time.now.to_i + 20 * 60,
    aud: "appstoreconnect-v1"
   },
   private_key,
   "ES256",
   header_fields={
     kid: KEY_ID }
 )
puts token

我们可以将此文件保存为jwt.rb。需要安装JWT ruby环境。替换ISSUER_IDKEY_ID的值,就可以了。

$ ruby jwt.rb

这将返回一个可以访问App Store Connect API的长token,如果我们想在20分钟之后继续使用API,我们还需要生成另外一个token。

使用token

现在我们已经料及如何生成可以访问App Store Connect API的token,我们就可以通过传递授权标头来使用他。例如获取所有的用户列表

$ curl  https://api.appstoreconnect.apple.com/v1/users --Header "Authorization: Bearer lOOOOOOOOOOOONG_GENERATED_TOKEN"

这将列出App Store Connect的所有用户。请记住,我们必须对每个请求都使用这个token,但我们必须要在失效后创建新的token。

使用App Store Connect API

获取用户数据

如果我们想要获取所有用户的列表,就可以发送一个GET请求

GET api.appstoreconnect.apple.com/v1/users

这将返回App Store Connect上所有的用户,我们可以得到某个用户ID后获取该用户的信息。

GET api.appstoreconnect.apple.com/v1/users/XYZ123455

邀请用户

在App Store Connect上创建用户需要通过邮件邀请。然后用户接受并加入开发团队。我们可以这样邀请用户

$ > POST /v1/userInvitations

  {
    "data": {
           "type": "userInvitations", 
           "attributes": {
              "firstname": "Shashi",
              "lastname": "Jagtap",
              "email": "[email protected]",
              "role": [ADMIN],
              "allAppsVisible": true
           }
      }
  }

请注意,我们子啊请求中的类型是userInvitations。我们看到了如果查询就用GET、创建就用POST、修改信息用PATCH、删除用DELETE(删除后返回状态码204代表删除成功,查不到信息了)。

注意事项

  • 由于私钥很重要,所以我们要保护它
  • token有效时间为20分钟,因为我们添加自动脚本策略应该以18分钟后续订token,以便我们可以重复使用已有的token,并且不会有请求失败的风险
  • App Store Connect API会返回大量的链接,我们要学会善用这些链接
  • 一旦发布新版本,要记得尽快跟进

总结

App Store Connect的更新最重要的部分是App Store Connect API。而App Store Connect API提供了整个App Store Connect自动化的可能性。这将允许开发者在App Store Connect API之上编写工具并有效的使用他们。而现有的Fastlane等工具可能面临巨大的重构。

你可能感兴趣的:(iOS开发)