【问题标题】:Installing both staging and production iOS / Android apps on your device在您的设备上安装暂存和生产 iOS / Android 应用程序
【发布时间】:2015-06-22 07:57:10
【问题描述】:

我有一个应用程序已经在 App Store 和 Play Store 上发布。发布的应用程序指向我的生产服务器。我想做的是让我的设备安装一个指向我的登台服务器的“登台”应用程序,这样我就不会在我的开发过程中与真实用户混淆。所以本质上,我的设备会有我的两个应用程序——MyApp 和 MyApp_Staging。登台应用程序必须能够分发给我的测试人员。

我使用 Parse 的推送通知功能。登台应用程序如何具有相同的功能?我是否需要另一个开发者帐户来暂存应用程序?

我一直在研究 iOS Beta 测试功能。在我推送给我的测试人员之前,我的暂存应用程序似乎必须经过 Apple 的审核。如何跳过审核过程?对于 Android,分阶段推出似乎是个好主意,但分阶段应用将取代生产应用。

有没有办法在设备上同时安装暂存和生产应用程序?

【问题讨论】:

  • 您可以有 iOS 内部 beta 测试人员,这会跳过审批步骤,但他们需要在您的帐户下获得管理员或技术角色,这不太理想。

标签: android ios staging


【解决方案1】:

对于 iOS:

我在同一台设备上安装了适用于 iOS 的登台和生产应用程序。我无法为 Android 回答这个问题,但这是我为 iOS 设置的 Parse 推送通知。

A:同一设备上应用的多个版本:

对于要安装在同一设备上的两个应用,它们需要具有不同的捆绑标识符。为此:

  1. 打开您的项目并转到目标的“信息”选项卡。
  2. 找到 Bundle identifier 的设置
  3. 在标识符末尾添加如下后缀:com.MyApp$(BUNDLE_ID_SUFFIX)
  4. 现在打开“构建设置”选项卡并添加新的用户定义设置
  5. 设置名称为BUNDLE_ID_SUFFIX
  6. 为您拥有的每个构建配置添加不同的后缀。例如Debug 的值可以是.debug。将 Release 配置的后缀留空。我有 3 个不同后缀的构建配置。
    • 在开发过程中进行调试以进行测试
    • Adhoc 用于向测试人员发布临时构建。
    • Release 用于发布到 App Store。
  7. 如果您遵循此路径,您会注意到设备上安装的所有应用版本都具有相同的名称,并且很难将它们区分开来。
  8. 要解决此问题,请返回“信息”选项卡并编辑 捆绑显示名称 的设置以显示 ${PRODUCT_NAME}${BUNDLE_DISPLAY_NAME_SUFFIX}
  9. 与我们在上面所做的类似,创建一个名为 BUNDLE_DISPLAY_NAME_SUFFIX 的新用户定义设置,并为每个构建配置添加不同的值。例如我说 α 和 β。

以上将允许您在单个设备上安装应用的多个版本。

B:使用版本之间的解析设置推送通知。

要设置 Parse 推送通知以跨这些版本工作:按照 Parse tutorial每个 捆绑标识符创建证书和配置文件。例如我的 3 个捆绑标识符有 3 个证书/配置文件:

  1. com.MyApp.debug 是 DEBUG 的开发配置文件。
  2. com.MyApp.adhoc 是用于 Ad Hoc 测试的 AdHoc 生产配置文件。
  3. com.MyApp 是用于提交到 App Store 的 AppStore 生产配置文件。

确保在您的构建设置中设置正确的配置文件,以便正确签署应用程序。

将所有证书上传到 Parse.com。 Parse 允许您拥有 6 个不同的 iOS 推送证书。

C:使用不同的生产和登台服务器。

构建设置标签上设置预处理宏。搜索 Preprocessor 并在 Apple LLVM 6.1 - Preprocessing 下设置 Preprocessor Macros 为每个构建配置设置不同的宏。例如我说的是 Adhoc ADHOC=1,对于调试 DEBUG=1

那么在你的源代码中某处有如下内容:

#if defined(DEBUG)

#define SERVER <development server>

#else

#if defined(ADHOC)

#define SERVER <staging server>

#else

#define SERVER <production server>

#endif 

D:将构建发送给测试人员。

这个话题可能已经被讨论过多次了。我不喜欢 Apple 的 Beta 测试过程。还有许多其他解决方案。我喜欢的是 Crashlytics 的 Beta 版

你可以在这里阅读:http://try.crashlytics.com/beta/

我将 AdHoc 构建配置部署给测试人员,因为它是使用 Adhoc 配置文件构建的,它允许我在 100 台设备上部署它而无需 Apple 批准。

【讨论】:

  • 对于任何可能发现这一点的人,我只有调试和发布构建配置。您可以转到编辑器 > 添加配置 > 复制“调试”配置以添加其他配置(在我的情况下,是“AdHoc”配置)。您需要确保选择了信息选项卡并选择了项目(不是特定目标)来执行此操作!见stackoverflow.com/questions/19842746/…
【解决方案2】:

适用于安卓

  • 要将两者同时安装在同一设备上,请为应用程序使用不同的包名称

com.company.testapp - 用于暂存的应用

com.company.live - 用于实时模式下的应用

  • 为了与服务器交互,在两个应用程序中使用不同的 URL,例如将 url 存储在某个文件中并与静态变量相同。

  • 在不同的服务器上为两者部署 GCM/推送通知代码。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
相关资源
最近更新 更多