开发者控制台

转换至Appstore SDK


转换至Appstore SDK

Amazon Appstore SDK是用于亚马逊应用内购买的新SDK。Appstore SDK支持Android应用的数字版权管理(DRM)和应用内购买(IAP)。

Appstore SDK将替换以前的SDK,即IAP v2.0。对于提交到亚马逊应用商店的所有新应用,请使用Appstore SDK。对于所有现有应用,可以继续使用IAP v2.0,也可将其转换至新的Appstore SDK。此页面会指导您完成将应用转换至Appstore SDK的步骤。

可以从SDK下载页面下载Amazon Appstore SDK。

DRM和IAP的变化

以前,当您将Android APK上传至亚马逊应用商店时,可以在“上传APK文件”选项卡中为“应用亚马逊DRM?”选择,如以下屏幕截图所示:

如果选择“是”,亚马逊应用商店将使用代码封装您的APK,从而允许亚马逊为您的应用强制执行DRM。

如果使用新的Appstore SDK,则亚马逊不会再在您提交APK后添加此包装。

如果您的Java Android应用需要DRM,则需要采取额外步骤,通过DRM API(通过Appstore SDK提供)将部分许可证检查功能引入到应用中。

以前,要使用IAP功能,就需要下载独立的IAP JAR并将其引入到应用中。在Appstore SDK中,IAP API不会再作为单独的JAR文件提供,而是会与Appstore SDK JAR文件捆绑在一起。要实现IAP,就必须引入Appstore SDK。

请参阅下文中IAP的其他变化,详细了解现在如何确定IAP的运行模式。

如何从亚马逊管理的DRM转换至Appstore SDK

如果您的现有应用使用亚马逊管理的DRM,请进行以下操作,切换至DRM API:

  1. 在开发者控制台中,为应用创建“即将推出的版本”。
  2. 按照集成Appstore SDK中的说明,将Appstore SDK集成到Android项目中。
  3. 按照适用于Android的DRM中的说明,在应用中添加许可证检查逻辑。
  4. 构建新版本APK,将其上传至开发者控制台并提交。

如何从独立IAP转换至Appstore SDK

如果您的现有应用集成了独立IAP API,则必须通过以下操作切换至新的Appstore SDK:

  1. 在Android Studio中,从应用中删除in-app-purchasing JAR以及所有对此JAR的引用。
  2. 按照集成Appstore SDK中的说明,将Appstore SDK集成到Android项目中。

    您之前为IAP添加的代码将与Appstore SDK一起运行。IAP API中较早的功能将保持不变(用于测试的IS_SANDBOX_MODE除外,请参阅下文中IAP的其他变化)。

  3. 构建APK的新版本,将其上传至开发者控制台并提交。

IAP的其他变化

大部分IAP实现细节都将保持不变,但Appstore SDK中将会删除PurchasingService类的IS_SANDBOX_MODE值。

现在,您必须调用PurchasingService类的GetAppStoresdKMode ()方法,确定SDK当前的运行模式。请注意,调用registerListener()后,您必须调用getAppstoreSDKMode()方法。

public enum AppstoreSDKModes {

    SANDBOX,
    PRODUCTION,
    UNKNOWN
}

下表描述了不同的模式。

SDK模式 描述
SANDBOX 应用正在接受测试,仅与Amazon App Tester进行交互。
PRODUCTION 应用与亚马逊应用商店和客户账户通信,进行所有API调用。请注意,只有提交到亚马逊应用商店的应用才会收到亚马逊的成功响应。
UNKNOWN 此模式表示SDK未通过调用registerListener进行初始化。

Appstore SDK转换常见问题解答

从现在起,我是否需要处理自己的签名? 如果签名密钥丢失,会发生什么情况?
当您提交应用时,亚马逊仍会管理应用的签名。让亚马逊管理签名,可以在签名密钥丢失时为您提供保障。如果没有亚马逊管理的签名,则一旦丢失签名密钥,您便无法再更新应用。
亚马逊使用什么签名来为应用签名?
亚马逊目前使用V1签名。
Appstore SDK会影响IAP的Receipt Verification Service (RVS)吗?
RVS不会受到其他影响。
我要如何将当前的IAP实现迁移到Appstore SDK?
IAP实现代码将保持不变,因此您无需为适应新的Appstore SDK而更新现有的IAP代码(但是您的应用中仍需包含Appstore SDK JAR)。有关详细信息,请参阅上文中的如何从独立IAP转换至Appstore SDK
在亚马逊发布Appstore SDK后,我的现有IAP集成会不会出现故障?
不会,已发布应用中的IAP集成可以继续正常运行。(亚马逊不会修改已发布应用的任何代码。) 由于Appstore SDK提供的IAP代码与以前在独立IAP API中提供的代码相同,因此已发布应用中的结果也几乎相同。
Appstore SDK会影响动态应用测试(LAT)吗?
LAT的做法不会受到影响。
Appstore SDK会不会影响用于测试IAP应用的App Tester?
Appstore SDK会支持新的App Tester。
就Android的65K方法数限制而言,如果我只需要DRM或IAP的其中一项,是否可以选择更具体的JAR,而不是引入较大的Appstore SDK?
不可以。无法在多个JAR中使用Appstore SDK。
我是否需要将IAP和DRM并入应用中?
IAP会保护您的应用内购买,而DRM会使您的应用免遭未经授权的分发。您可以依据需求进行实现。有关不同方案的详情,请参阅哪些类型的应用可以使用DRM部分。
包含Appstore SDK会不会触发亚马逊应用商店,使其在应用详情页面添加注释,说明我的应用包含应用内购买?
不会。如果您没有实现IAP,有关应用(包括应用内购买)的说明便不会出现在应用描述中。
应用的每个新版本是否都需要新的公有密钥?
不需要。您可以在即将推出的版本中使用同一个公有密钥。