【问题标题】:Transition from iphone app store to enterprise development从 iPhone 应用商店过渡到企业开发
【发布时间】:2013-07-17 20:29:17
【问题描述】:

我在 AppStore 上发布了一个应用,我想将它迁移到企业开发者帐户以进行内部分发。我在企业文档中读到:

如果您希望用户将应用的数据保存在他们的设备上,请确保新版本使用与要替换的相同的捆绑标识符,并告诉用户在安装新版本之前不要删除旧版本。如果捆绑标识符匹配,新版本将替换旧版本并将数据保存在设备上。

现在,假设我们在已安装的 AppStore 二进制文件 和使用不同证书签名的 企业二进制文件 之间保持 Bundle ID 相同......它应该 覆盖他们手机上的同一个应用,而不是创建第二个应用。

我联系了 Apple 支持,他们说 “不,如果您不指示客户卸载他们的旧应用程序,您将安装 2 个应用程序”。这是真的吗?

【问题讨论】:

  • 对此有答案吗?我现在也有同样的问题。

标签: ios iphone iphone-developer-program


【解决方案1】:

编辑:为了对话,我将在下面留下我的原始答案,因为下面有很好的对话。正如@mja 在您最初创建应用程序 ID 时指出的那样,它与开发人员门户的几个可用前缀之一相关联,iOS 可以使用该前缀来关联和区分应用程序。

EDIT2:当我进入我的企业门户并尝试创建一个与现有应用 ID 具有相同值但具有不同前缀的应用 ID 时,它仍然对我说:

标识符为“com.mycompany.myapp”的应用 ID 不可用。 请输入其他字符串。

原始答案: 后一部分不正确 - iOS 设备使用 Bundle Identifier 来区分应用程序。我可以在同一个 iOS 设备上拥有 20 个标记为“酷应用”的应用,只要它们具有唯一的捆绑标识符,例如 com.mycompany.coolapp.1 - com.mycompany.coolapp.20。同样地(我不小心这样做了),如果我打开两个项目,这两个项目都有捆绑标识符 com.mycompany.myapp,并在另一个之后运行一个,最后一个要运行的应用程序将安装在设备上,而前一个应用程序将被覆盖。

关于维持自身的应用数据我没有测试过,但我会对你发生的事情感兴趣!

【讨论】:

  • 所以我可以正确地假设,即使应用商店更新是在不同的公司下签署的,只要 bundle identifier 完全相同,企业更新就会覆盖它?
  • 当你刚刚说“不同的公司”时,你让我开始怀疑自己......我可能会撤回我的回答,因为我无法自信地谈论跨公司账户会发生什么:/
  • 我认为 bundle id 有一个前缀(种子),并且种子对于每个开发帐户都是唯一的。
  • 我认为@mja 是对的。当您最初创建应用标识符时,它会将前缀附加到用户生成的捆绑包 ID。我完全忘记了这一点。
  • 嗯...那么问题就变成了使用新标识符过渡到应用程序的最简单方法...
【解决方案2】:

我已经设法实现了这一点,因此应用程序的“企业”构建覆盖了“应用商店”分布式版本。

这不使用完全相同的捆绑 ID,但确实实现了 OP 在他原来的问题中提出的问题。

我的做法是在我的企业帐户中创建一个通配符捆绑标识符,其中前两部分与我们的生产应用程序的捆绑标识符相同,例如:

Production : com.xyz.abc
Enterprise : com.xyz.*

使用此通配符捆绑 ID,可以分发应用并将覆盖通过应用商店安装的任何版本(用户数据仍将保留)。前缀在这里似乎无关紧要。

通配符捆绑 ID 的一个缺点是您不能使用 APNS 等。

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2019-12-27
    • 1970-01-01
    相关资源
    最近更新 更多