在您的设备上安装暂存和生产 iOS / Android 应用

Installing both staging and production iOS / Android apps on your device

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

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

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

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

For Android

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

com.company.testapp - 对于暂存中的应用程序

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

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

  • 在不同的服务器上部署 GCM/push 通知代码。

For iOS:

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

A: Multiple versions of the app on the same device:

要将两个应用程序安装在同一台设备上,它们需要具有不同的包标识符。为此:

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

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

B: Setup Push notifications using parse between the versions.

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

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

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

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

C: Using different production and staging servers.

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

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

#if defined(DEBUG)

#define SERVER <development server>

#else

#if defined(ADHOC)

#define SERVER <staging server>

#else

#define SERVER <production server>

#endif 

D: Sending builds to testers.

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

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

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