【发布时间】:2013-08-14 19:12:05
【问题描述】:
我正在尝试使用 Android 应用程序访问我的 AppEngine 应用程序的非默认版本。为了清楚起见,我的默认版本是1,我的新版本是2。请注意,我不能(还)让版本 2 成为默认版本。
来自文档:
该元素包含应用程序代码的最新版本的版本标识符。版本标识符可以包含小写字母、数字和连字符。它不能以前缀“ah-”开头,并且名称“default”和“latest”是保留的,不能使用。 AppCfg 在上传应用程序时使用此版本标识符,告诉 App Engine 使用给定标识符创建应用程序的新版本,或者使用给定标识符替换应用程序版本(如果已存在)。您可以使用在 URL 中使用“-dot-”作为子域分隔符的 URL 来测试应用程序的新版本,例如http://_version_id_-dot-_your_app_id_.appspot.com。您可以使用管理控制台选择您的用户看到的应用版本,即“默认”版本。
很遗憾,Android 应用程序不直接使用此 url。我的应用使用的 id 是:
final String PROJECT_NUMBER = "123456789012";
final String WEB_CLIENT_ID = "123456789012-abcdefghijklmnopqrstuvwxyz012345.apps.googleusercontent.com";
final String ANDROID_AUDIENCE = WEB_CLIENT_ID;
PROJECT_NUMBER 用于 GCM 注册,ANDROID_AUDIENCE 使用如下:
mCredential = GoogleAccountCredential.usingAudience(context, "server:client_id:" + Ids.ANDROID_AUDIENCE);
如何让我的 Android 应用程序与我的 AppEngine 应用程序的 2 版本通信?
【问题讨论】:
-
听起来您正在使用其中一种 Google Eclipse 插件工具来生成您的 Android 代码。您是否正在构建“App Engine Connected”项目?我对此不太熟悉,似乎 Endpoints 是较新的(替代品?)。至少使用 Endpoints 生成的代码,您可以指定一个“主机名”,您可以在其中指定适当的版本。见这里:developers.google.com/appengine/docs/python/endpoints/…
-
谢谢,这确实是我需要看的地方!