惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
P
Privacy International News Feed
P
Proofpoint News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
C
CXSECURITY Database RSS Feed - CXSecurity.com
Know Your Adversary
Know Your Adversary
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
NISL@THU
NISL@THU
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
GbyAI
GbyAI
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Y
Y Combinator Blog
C
CERT Recently Published Vulnerability Notes
N
Netflix TechBlog - Medium
S
Security Affairs
Spread Privacy
Spread Privacy
罗磊的独立博客
腾讯CDC
MyScale Blog
MyScale Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
LINUX DO - 热门话题
The Cloudflare Blog
L
LangChain Blog
博客园_首页
H
Hacker News: Front Page
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
博客园 - 聂微东
SecWiki News
SecWiki News
A
Arctic Wolf
爱范儿
爱范儿
Google Online Security Blog
Google Online Security Blog
T
Threat Research - Cisco Blogs
Hacker News - Newest:
Hacker News - Newest: "LLM"
有赞技术团队
有赞技术团队
The GitHub Blog
The GitHub Blog
Cyberwarzone
Cyberwarzone
博客园 - 叶小钗
V
Visual Studio Blog
V
V2EX
T
Tailwind CSS Blog
Project Zero
Project Zero
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
MongoDB | Blog
MongoDB | Blog
D
Docker

isaced

归档 我用 SwiftUI 写了一个 V2ex 客户端 Docker 容器化多应用部署 Swift Server-side SDWebImage 为什么无法读取 webpmux 生成的 WebP 动图? [译] 探索 Swift 4 中新的 String API 对一个 Django 站点做 ab 压力测试 fir-mac 开发笔记 iOS10 Safari 引导用户信任企业签名 Swift Web 开发之 Vapor - 模版 Leaf(三) Swift Web 开发之 Vapor - 路由(二) HoloLens 初体验 Swift Web 开发之 Vapor - 入门(一) Jenkins for iOS 搭建日记 iOS HOOK 注入与重签名 Xcode 使用 Configuration 来配置不同的项目环境 图床从SAE迁移到七牛 给 UIProgressView 脱掉那层微弱的渐变 初用 CocoaAsyncSocket 记一次 SQLite 性能优化 有多色 - 开发小记 海岛风情 - 泰国普吉岛六日游 EGOCache 源码解析 日语五十音假名临摹校验算法 [iOS] UITextView 追加文字自动跳到顶部解决方法 Cocoa 新的依赖管理工具:Carthage 新年快乐! 博客主机换到搬瓦工 写了个iOS小游戏:有多色 iOS 后台任务之 Long-running background task 悄悄的就必须用 XCode 5.1.1 上传了! HTTP Content-type 与 AFNetworking Objective-Cloud 初体验(1) 掌中站上架小记 NSLoger 上线了 Python Markdown 做语法限制 Nginx + Gunicorn + Django 部署小记 用Shell脚本批量裁剪App Icon各个尺寸 LaunchRocket使用小记 用宏提速NSCoding 2014新年伊始:近期读过的好文推荐 [iOS] stringWithFormat 和 initWithFormat 有何不同? Apache + Flask + mod_wsgi + Koding 部署小记 收集几个Objective-C的HTML解析库 NSMapTable: 不只是一个能放weak指针的 NSDictionary 2013,再见! Emlog到Typecho的迁移工具:emlog2typecho [iOS]给上拉下拉刷新PullToRefresh做本地化 [iOS]代码推荐:大图缩放视图 - Vertigo iOS:hidesBottomBarWhenPushed的正确用法 Xcode 5新的Interface Builder,你准备好了吗? [翻译]如何使用Django创建简单的博客 我的Mac音乐播放器 初识 NSDataDetector Objective-C 计算代码运行时间 WordPress上传文件自动重命名 iOS:仿jing.fm的音乐播放视图 我的啃黑苹果之路 关于 搜索 项目
使用 TypeScript 构建的 appstore-connect-sdk
2023-02-20 · via isaced

Featured image of post 使用 TypeScript 构建的 appstore-connect-sdk

新玩具用 Typescript 写了一个访问 App Store Connect API 的 Node.JS 库,同时让它在 Deno 运行时也跑了起来,并通过 OpenAPI Generator 实现了对所有 API 的支持。

App Store Connect API 概述

App Store Connect API 是苹果公司为开发者提供的一组基于 REST 架构的 API,它们用于管理您的 App Store Connect 账户、应用程序、版本、测试等资源。App Store Connect API 提供了一种编程方式来管理这些资源,从而使自动化操作成为可能。无论是自动化应用程序发布、审查更新、分析收入等,使用 App Store Connect API 都可以大幅提高开发人员的效率,比如:

  • 上传和发布应用程序、应用程序元数据和应用程序截图
  • 获取应用程序评级和评估的详细信息
  • 查看应用程序的销售和财务报告
  • 处理应用程序的财务事务,例如订阅和消费品购买
  • 使用 App Store Connect API 可以实现自动化管理和监控应用程序在 App Store 中的表现,帮助开发者和运营团队提高效率,同时还可以提供更好的用户体验。

例如,如果您需要上传和发布应用程序更新,您可以使用 App Store Connect API 自动化这个过程,减少手动干预的时间和错误,同时也可以提高发布的效率。

另外,使用 App Store Connect API 还可以帮助您分析您的应用程序在应用商店中的表现,例如获取应用程序的评分和评论等信息。这些信息可以帮助您更好地了解用户需求,并及时响应用户反馈,提高应用程序的质量和用户体验。

总之,使用 App Store Connect API 可以帮助开发者和运营团队自动化应用程序管理和监控,提高效率和用户体验。

appstore-connect-sdk 简介

appstore-connect-sdk 是我最近开发的一个 Node.js 模块,使用 TypeScript 编写,它提供了一种方便的方式,供开发人员与 App Store Connect API 进行交互,该模块构建在 OpenAPI Generator 工具之上,基于苹果官方提供的 OpenAPI 规范提供对全部 API 的支持。

import AppStoreConnectAPI from "appstore-connect-sdk";
import {
  AppsApi,
  AppEventLocalizationsApi,
} from "appstore-connect-sdk/dist/openapi/apis";

const appStoreConnect = new AppStoreConnectAPI({
  issuerId: "<YOUR ISSUER ID>",
  privateKeyId: "<YOUR PRIVATE KEY ID>",
  privateKey: "<YOUR PRIVATE KEY>",
});

const res = await client.call(AppsApi).appsGetCollection();
console.log(res);

使用 appstore-connect-sdk 可以方便地进行许多自动化任务,例如提交应用程序更新、审查、查询销售报告等操作,从而大幅提高开发人员的效率。通过使用 TypeScript 编写,该模块提供了良好的类型支持,从而使代码更易于编写和维护。

OpenAPI Generator

appstore-connect-sdk 模块是基于 OpenAPI 规范生成的,因此它提供了对 AppStore Connect 上百个 API 的完整支持。如果之后苹果更新了 API,只需要使用其他的 API,只需要修改对应的 OpenAPI 规范文件并使用 OpenAPI Generator 重新生成相应的代码即可。

openapi-generator-cli generate \
  -i ./app_store_connect_api_2.2_openapi.json \
  -o src/openapi \
  -g typescript-fetch \
  --additional-properties=supportsES6=true \
  --skip-validate-spec

使用 OpenAPI Generator 生成的代码具有良好的可读性和易于维护的特点。开发人员可以使用自己熟悉的 HTTP 客户端库(例如 Axios、node-fetch 或浏览器的内置 fetch API 等)进行请求,从而更加灵活地使用该模块。

对 Deno 运行时的兼容

虽然 appstore-connect-sdk 是一款基于 Node.js 的 SDK,但它在一定程度上也兼容 Deno 运行时环境。不过,由于 Deno 并没有完全支持 Node.js 的 crypto 模块,导致 appstore-connect-sdk 的某些功能在 Deno 环境下可能无法正常工作。

其中,最明显的限制是 appstore-connect-sdk 依赖的 jsonwebtoken不完全支持 Deno。因此暂时无法使用 jsonwebtoken 在 Deno 环境下生成 JWT 令牌,不过,你可以通过与 Deno 完全兼容的库(例如 djwt)手动生成 JWT 令牌,然后将其传递给 appstore-connect-sdk 模块,以实现与 App Store Connect API 的身份验证。

deno_example 中可以找到一个在 Deno 环境下使用 appstore-connect-sdk 模块的示例。

我们致力于确保 appstore-connect-sdk 模块在 Node.js 和 Deno 环境下的完全兼容,并将继续改进其在 Deno 环境下的兼容性,以适应 Deno 运行时的演进。

通过 AWS/Vercel/Deno Deploy 等函数计算快速构建 App Store Connect 自动化任务

appstore-connect-sdk 模块提供了一个方便的方式,让开发者快速地与 App Store Connect API 进行交互。不过,为了进一步提高使用效率,你也可以将 appstore-connect-sdk 模块与 AWS Lambda、Vercel 或 Deno Deploy 等函数计算服务一起使用。

以 AWS Lambda 为例,你可以通过将 appstore-connect-sdk 作为依赖包添加到 AWS Lambda 函数的 Node.js 运行时环境中,快速搭建一个用于自动化 App Store Connect API 操作的 Lambda 函数。在 Vercel 或 Deno Deploy 等平台上,你也可以通过类似的方式使用 appstore-connect-sdk 模块。

结语

随着移动应用市场的不断扩大,开发者对于 App Store Connect API 的需求也越来越多。使用 appstore-connect-sdk 这样的工具,可以使开发者更加便捷地与 App Store Connect API 进行交互,从而实现自动化流程、提高工作效率、降低人力成本。我们相信,随着技术的不断发展和应用场景的不断扩展,App Store Connect 自动化将会有更加广阔的发展空间。