
App Store Connect API 概述
App Store Connect API 是蘋果公司為開(kāi)發(fā)者提供的一組基于 REST 架構(gòu)的 API,它們用于管理您的 App Store Connect 賬戶、應(yīng)用程序、版本、測(cè)試等資源。App Store Connect API 提供了一種編程方式來(lái)管理這些資源,從而使自動(dòng)化操作成為可能。無(wú)論是自動(dòng)化應(yīng)用程序發(fā)布、審查更新、分析收入等,使用 App Store Connect API 都可以大幅提高開(kāi)發(fā)人員的效率,比如:
- 上傳和發(fā)布應(yīng)用程序、應(yīng)用程序元數(shù)據(jù)和應(yīng)用程序截圖
- 獲取應(yīng)用程序評(píng)級(jí)和評(píng)估的詳細(xì)信息
- 查看應(yīng)用程序的銷售和財(cái)務(wù)報(bào)告
- 處理應(yīng)用程序的財(cái)務(wù)事務(wù),例如訂閱和消費(fèi)品購(gòu)買
- 使用 App Store Connect API 可以實(shí)現(xiàn)自動(dòng)化管理和監(jiān)控應(yīng)用程序在 App Store 中的表現(xiàn),幫助開(kāi)發(fā)者和運(yùn)營(yíng)團(tuán)隊(duì)提高效率,同時(shí)還可以提供更好的用戶體驗(yàn)。
例如,如果您需要上傳和發(fā)布應(yīng)用程序更新,您可以使用 App Store Connect API 自動(dòng)化這個(gè)過(guò)程,減少手動(dòng)干預(yù)的時(shí)間和錯(cuò)誤,同時(shí)也可以提高發(fā)布的效率。
另外,使用 App Store Connect API 還可以幫助您分析您的應(yīng)用程序在應(yīng)用商店中的表現(xiàn),例如獲取應(yīng)用程序的評(píng)分和評(píng)論等信息。這些信息可以幫助您更好地了解用戶需求,并及時(shí)響應(yīng)用戶反饋,提高應(yīng)用程序的質(zhì)量和用戶體驗(yàn)。
總之,使用 App Store Connect API 可以幫助開(kāi)發(fā)者和運(yùn)營(yíng)團(tuán)隊(duì)自動(dòng)化應(yīng)用程序管理和監(jiān)控,提高效率和用戶體驗(yàn)。
appstore-connect-sdk 簡(jiǎn)介
appstore-connect-sdk 是我最近開(kāi)發(fā)的一個(gè) Node.js 模塊,使用 TypeScript 編寫,它提供了一種方便的方式,供開(kāi)發(fā)人員與 App Store Connect API 進(jìn)行交互,該模塊構(gòu)建在 OpenAPI Generator 工具之上,基于蘋果官方提供的 OpenAPI 規(guī)范提供對(duì)全部 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 可以方便地進(jìn)行許多自動(dòng)化任務(wù),例如提交應(yīng)用程序更新、審查、查詢銷售報(bào)告等操作,從而大幅提高開(kāi)發(fā)人員的效率。通過(guò)使用 TypeScript 編寫,該模塊提供了良好的類型支持,從而使代碼更易于編寫和維護(hù)。
OpenAPI Generator
appstore-connect-sdk 模塊是基于 OpenAPI 規(guī)范生成的,因此它提供了對(duì) AppStore Connect 上百個(gè) API 的完整支持。如果之后蘋果更新了 API,只需要使用其他的 API,只需要修改對(duì)應(yīng)的 OpenAPI 規(guī)范文件并使用 OpenAPI Generator 重新生成相應(yīng)的代碼即可。
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 生成的代碼具有良好的可讀性和易于維護(hù)的特點(diǎn)。開(kāi)發(fā)人員可以使用自己熟悉的 HTTP 客戶端庫(kù)(例如 Axios、node-fetch 或?yàn)g覽器的內(nèi)置 fetch API 等)進(jìn)行請(qǐng)求,從而更加靈活地使用該模塊。
對(duì) Deno 運(yùn)行時(shí)的兼容
雖然 appstore-connect-sdk 是一款基于 Node.js 的 SDK,但它在一定程度上也兼容 Deno 運(yùn)行時(shí)環(huán)境。不過(guò),由于 Deno 并沒(méi)有完全支持 Node.js 的 crypto 模塊,導(dǎo)致 appstore-connect-sdk 的某些功能在 Deno 環(huán)境下可能無(wú)法正常工作。
其中,最明顯的限制是 appstore-connect-sdk 依賴的 jsonwebtoken 包不完全支持 Deno。因此暫時(shí)無(wú)法使用 jsonwebtoken 在 Deno 環(huán)境下生成 JWT 令牌,不過(guò),你可以通過(guò)與 Deno 完全兼容的庫(kù)(例如 djwt)手動(dòng)生成 JWT 令牌,然后將其傳遞給 appstore-connect-sdk 模塊,以實(shí)現(xiàn)與 App Store Connect API 的身份驗(yàn)證。
在 deno_example 中可以找到一個(gè)在 Deno 環(huán)境下使用 appstore-connect-sdk 模塊的示例。
我們致力于確保 appstore-connect-sdk 模塊在 Node.js 和 Deno 環(huán)境下的完全兼容,并將繼續(xù)改進(jìn)其在 Deno 環(huán)境下的兼容性,以適應(yīng) Deno 運(yùn)行時(shí)的演進(jìn)。
通過(guò) AWS/Vercel/Deno Deploy 等函數(shù)計(jì)算快速構(gòu)建 App Store Connect 自動(dòng)化任務(wù)
appstore-connect-sdk 模塊提供了一個(gè)方便的方式,讓開(kāi)發(fā)者快速地與 App Store Connect API 進(jìn)行交互。不過(guò),為了進(jìn)一步提高使用效率,你也可以將 appstore-connect-sdk 模塊與 AWS Lambda、Vercel 或 Deno Deploy 等函數(shù)計(jì)算服務(wù)一起使用。
以 AWS Lambda 為例,你可以通過(guò)將 appstore-connect-sdk 作為依賴包添加到 AWS Lambda 函數(shù)的 Node.js 運(yùn)行時(shí)環(huán)境中,快速搭建一個(gè)用于自動(dòng)化 App Store Connect API 操作的 Lambda 函數(shù)。在 Vercel 或 Deno Deploy 等平臺(tái)上,你也可以通過(guò)類似的方式使用 appstore-connect-sdk 模塊。
結(jié)語(yǔ)
隨著移動(dòng)應(yīng)用市場(chǎng)的不斷擴(kuò)大,開(kāi)發(fā)者對(duì)于 App Store Connect API 的需求也越來(lái)越多。使用 appstore-connect-sdk 這樣的工具,可以使開(kāi)發(fā)者更加便捷地與 App Store Connect API 進(jìn)行交互,從而實(shí)現(xiàn)自動(dòng)化流程、提高工作效率、降低人力成本。我們相信,隨著技術(shù)的不斷發(fā)展和應(yīng)用場(chǎng)景的不斷擴(kuò)展,App Store Connect 自動(dòng)化將會(huì)有更加廣闊的發(fā)展空間。