用于与 Apple 的 App Store Connect API 交互的 Swift SDK。
要请求访问权限,请转到 App Store Connect 中“用户和访问”下的新 API 密钥部分。 请注意,您必须是注册为组织的开发团队的团队代理(法律角色)。 个人注册的开发人员的访问权限即将推出。
并非所有端点都可用,我们正在努力实现所有端点(请参阅 端点)。
import AppStoreConnect_Swift_SDK
转到 https://appstoreconnect.apple.com/access/api 并创建您自己的密钥。 此页面也是查找您的私钥 ID 和颁发者 ID 的页面。
下载私钥后,您可以在文本编辑器中打开包含私钥的 .p8 文件,该文件将显示如下内容
-----BEGIN PRIVATE KEY-----
FDFDGgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwQgPaXyFvZfNydDEjxgjUCUxyGjXcQxiulEdGxoVbasV3GgCgYIKomokDj0DAQehRANCAAASffd/DU3TUWAoLmqE6hZL9A7i0DWpXtmIDCDiITRznC6K4/WjdIcuMcixy+m6O0IrffxJOablIX2VM8sHRpoiuy
-----END PRIVATE KEY-----
复制内容并删除空白行、-----BEGIN PRIVATE KEY----- 和 -----END PRIVATE KEY-----。
将此私钥与颁发者 ID 和私钥 ID 一起使用以创建您的配置文件
let configuration = APIConfiguration(issuerID: "<YOUR ISSUER ID>", privateKeyID: "<YOUR PRIVATE KEY ID>", privateKey: "<YOUR PRIVATE KEY>")
使用您的 APIConfiguration 创建一个 APIProvider 实例后,您可以开始执行您的第一个请求。
let request = APIEndpoint
.v1
.apps
.get(parameters: .init(
sort: [.bundleID],
fieldsApps: [.appInfos, .name, .bundleID],
limit: 5
))
let apps = try await self.provider.request(request).data
print("Did fetch \(apps.count) apps")
如果 API 请求的响应可以分多页传递,您可以使用 AsyncSequence 迭代所有页面,或者单独请求紧随当前页面的下一页。
let request = APIEndpoint
.v1
.apps
.get(parameters: .init(
sort: [.bundleID],
fieldsApps: [.appInfos, .name, .bundleID],
limit: 2
))
// Demonstration of AsyncSequence result of APIProvider.paged(_)
var allApps: [App] = []
for try await pagedResult in provider.paged(request) {
allApps.append(contentsOf: pagedResult.data)
}
print("There are \(allApps.count) apps in total")
// Demonstration of APIProvider.request(_:isPagedResponse:) and APIProvider.request(_: pageAfter:)
let firstPageResult = try await provider.request(request)
let firstPageApps = firstPageResult.data
print("The first page of results has \(firstPageApps.count) apps")
if provider.request(request, isPagedResponse: firstPageResult) {
if let nextPage = try await provider.request(request, pageAfter: firstPageResult) {
let secondPageApps = nextPage.data
print("The second page of results has \(secondPageApps.count) apps")
}
}
每当请求返回错误时,您可以通过如下捕获错误来获取详细信息
do {
print(try await self.provider.request(requestWithError).data)
} catch APIProvider.Error.requestFailure(let statusCode, let errorResponse, _) {
print("Request failed with statuscode: \(statusCode) and the following errors:")
errorResponse?.errors?.forEach({ error in
print("Error code: \(error.code)")
print("Error title: \(error.title)")
print("Error detail: \(error.detail)")
})
} catch {
print("Something went wrong fetching the apps: \(error.localizedDescription)")
}
错误标题和详细信息应有助于您解决故障。 有关错误的更多信息,请参阅:解析错误响应代码,如 Apple 所述。
Swift Package Manager 是一种自动化 Swift 代码分发的工具,已集成到 swift 编译器中。 它仍处于早期开发阶段,但此 SDK 支持在支持的平台上使用它。
设置好 Swift 包后,将 SDK 添加为依赖项就像将其添加到 Package.swift 的 dependencies 值一样简单。
dependencies: [
.package(url: "https://github.com/AvdLee/appstoreconnect-swift-sdk.git", .upToNextMajor(from: "2.0.0"))
]
为了帮助开发此存储库,您需要按照以下步骤操作
git submodule update --init --recursive
bundle install
bundle install 时遇到权限错误,则可能需要安装比 macOS 附带的默认版本更新的 Ruby 版本(而不是下面使用的 3.2.2,请使用 ruby-install ruby 命令末尾输出的版本号)brew install chruby ruby-install
ruby-install ruby
chruby 3.2.2
gem update --system
gem install bundler
bundle exec fastlane test
安装 jq
brew install jq
运行以下命令
$ make update
这将尝试从 Apple 下载 App Store Connect OpenAPI 规范,并重新运行 CreateAPI 生成器以生成更新的源代码。
或者,您可以单独运行 make download 和 make generate。
Starly: reviews, reply to apps 由 Viktor Grushevskiy 开发。 Starly 应用程序是一个项目,它将允许开发人员轻松管理 App Store 上的评论。 您可以回复它们,将它们翻译成您想要的语言,过滤它们并创建模板。 提供 iOS 和 macOS 版本。
🌟 Superstar: App Store Review manager 由 Jordi Bruin 开发。 Superstar 使用 App Store Connect API 来帮助您在几秒钟内回复您的 App Store 客户评论。 使用自定义模板快速回复专业回复。 使用免费的 DeepL 集成直接翻译评论和您的回复。 在有限的时间内免费提供。
AppsMan: Manage app metada globally 由 Karmjit Singh 开发。 AppsMan 应用程序是一个项目,它将允许开发人员轻松管理 App Store 上的应用程序本地化数据。 您可以轻松地更新一种语言的数据,并将其复制到其他语言并保存。 您还可以查看以前版本的详细信息。 仅提供 macOS 版本。
Localiji: Localizations for App Store 由 Nicolas Kick 开发。 Localiji 管理 App Store Connect 中应用程序本地化的本地副本,并允许您轻松同步更改。 编辑单个属性,例如应用程序的描述、版本说明或屏幕截图。 导出整个语言,再次导入翻译,只需点击几下即可将其上传到 App Store Connect。
Five Stars: Reviews & Ratings 由 Mathias Emil Mortensen 开发。 Five Stars 帮助应用程序开发人员阅读和回复来自用户的 App Store 评论。 翻译评论,使用可自定义的模板和人工智能驱动的快速回复进行回复,按地区过滤,并查看来自任何应用程序的全球应用程序评级。 Five Stars 适用于 iPhone 和 iPad,Mac 版本将于 2024 年春季推出。
App Store Connect Swift SDK 在 MIT 许可下可用,并使用来自开源项目的源代码。 有关更多信息,请参阅 LICENSE 文件。
这个项目最初由 Antoine van der Lee 创建,但有很多 优秀的贡献者。 我们欢迎任何形式的贡献,以使这个项目变得更好。