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上的表现。现在更具体地说,我们将关注图中高亮的几个关键步骤。
现在大部分的开发者都通过Xcode自动管理配置。但还是有少数人有特殊需求需要登录Apple Developer网站进行配置。今年夏天,通过App Store Connect API(API相关内容,会在本文后续讲到),可以直接生成配置文件、创建和销毁签名证书、管理设备和应用包ID。
在这个周期的早起阶段除了考虑配置以外,还可能考虑管理用户。App Store Connect API将支持邀请新用户加入App Store Connect,修改用户可以看到的应用,管理用户角色以及更新用户个人信息。
如果说你不想使用API来简化你的管理体验。我们同样优化了在Web端管理用户的体验。现在如果要管理用户,需要登录App Store Connect和Apple Developer两个网站。但这个夏天开始,只需要去一个地方就好了,那就是App Store Connect。进入App Store Connect,你能够在一组角色的上下文中考虑全部用户。而且所有的Apple ID只需要通过一个账号管理。
配置好了、用户也管理好了,接下来自然而然就到了构建。构建成功后,就可以发版了。现在我们很多人都用Transporter(命令行)工具来上传App Store。我们知道有很多开发者使用linux做持续集成,所以今年夏天Transporter工具支持linux系统了。用法与Mac上的用法完全一致。
当我们构建了一些版本之后,我们就可以对他进行公测了。我们对TestFlight进行了一些优化。目前如果要邀请某些用户进行公测的话,需要该用户提供邮箱。他们提供邮箱之后,就会收到邀请的邮件。打开邮件,进入TestFlight,安装公测包。但如果有很多公测用户,那就太麻烦了。并且如果该用户没有邮箱,那么也无法邀请。所以现在我们提供了TestFlight公开链接。
公开链接是一个唯一的网址,表示对公测版应用的公开的邀请。可以分享到任何地方。任何人都可以成为公测用户。如果你发送到了社交平台,并且有人感兴趣的话,点击链接,安装应用即可成为公测用户,使用起来非常更简单。只需要在TestFlight页面新建一个组,就可以在顶部看到公开链接了。公开链接最多支持1万公测用户,如果不需要那么多,可以设置更小的上限值。当然还可以随时禁用公开链接。禁用后如果有人打开公开链接,则会提示他们该公测版已不再接受任何新的测试人员。
通过App Store Connect API可以创建TestFlight用户组、给组添加构建版本、管理公开链接、添加和移除公测用户、更新测试信息的操作。
当发布了某个应用的某个版本之后,是时候看看用户时如何回应我们的应用程序了。所以我们首先要看的是销量和趋势。而App Store Connect推出了更详尽的销售和趋势页面的展示。我们都知道通过Reporter工具可以下载销售和财务报告。现在同样可以用过App Store Connect API来下载销售和财务报告。
我们不可能无时无刻对着电脑Web端的App Store Connect。所以我们来继续谈谈全新的移动端的体验。
关于付费应用的免费试用,可以通过两个方式来实现。
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之前,你必须要做一个大任务——生成token。如果没有token,那么就无法的导向响应。我们知道App Store Connect具有非常敏感的信息,所以App Store Connect API必须要非常的安全,同时还要保证只能访问我们自己的应用程序,而不是其他的应用程序。苹果使用JWT(JSON Web Token标准)在App Store Connect和您的终端设备之间建立连接。为了访问token,我们必须从App Store Connect网站上创建一个私钥。
为了生成API密钥,我们需要登录App Store Connect网站并点击API Key选项卡,来创建新的API密钥。我们可以为特定的目的来创建API密钥,也可以创建可以访问所有App Store Connect API密钥。
生成API密钥之后,我们将获得一个ISSUER_ID和一个私钥。在处理私钥时,有一些注意事项。
.p8
格式。如上所述,JWT用于生成App Store Connect API使用的token。生成token的过程需要遵守以下六个事项。
applestoreconnect-v1
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_ID
和KEY_ID
的值,就可以了。
$ ruby jwt.rb
这将返回一个可以访问App Store Connect API的长token,如果我们想在20分钟之后继续使用API,我们还需要生成另外一个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。
如果我们想要获取所有用户的列表,就可以发送一个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代表删除成功,查不到信息了)。
App Store Connect的更新最重要的部分是App Store Connect API。而App Store Connect API提供了整个App Store Connect自动化的可能性。这将允许开发者在App Store Connect API之上编写工具并有效的使用他们。而现有的Fastlane
等工具可能面临巨大的重构。