0

由于年龄限制,我开始在我父亲的开发者帐户下开发 iOS 应用程序,但现在我有自己的,并将我的应用程序转移到它。我现在想更新我的一个应用程序,该应用程序在应用程序本地的设备上创建和维护数据。

由于我父亲的帐户仍然有效,我仍然可以通过 Xcode 中该帐户的“团队”为应用程序签名,并且在设备上安装时一切正常。但是,我想用我自己的帐户签名,以防我父亲决定停止更新他的会员资格,但如果我这样做了,每当我尝试在旧版本之上安装它时,我都会在 Xcode 中收到标题为“应用程序安装失败”和消息“无法写入设备”。

谷歌搜索后,人们建议简单地从设备中删除旧版本的应用程序并安装新版本,但由于该应用程序使用其本地文档目录,这意味着删除应用程序时将删除所有用户的文件,这是不可接受的,因为这是应用程序的主要功能。

由于该应用程序启用了 iTunes 文件共享,用户可以通过 iTunes 将所有文件从设备上复制下来,删除应用程序,安装新版本,然后将所有文件复制回来。但是,有些用户没有电脑,只有手机或平板电脑,所以这也是不可接受的,因为他们无法在不丢失所有内容的情况下下载更新。此外,许多应用程序用户都是不擅长技术的老年人,这只会让每个人都感到痛苦。

除了更改签名团队之外,我没有尝试过任何事情,因为我不想通过手动创建的证书和最终无法正常工作的配置文件污染我的帐户来搞砸任何事情。更改团队不起作用似乎很奇怪,因为我们每年都必须获得新的分发证书,这仍然会在发布更新时更改应用程序的签名方式。我一定遗漏了一些东西,因为这似乎是一个足够常见的场景,Apple 会有一个流程来做这件事。

我还需要做什么?

笔记:

  1. Xcode 通常会自动为应用程序创建配置文件(假设选中了“自动管理签名”复选框,确实如此),但没有在我的帐户上为这个应用程序创建一个配置文件,尽管当我将鼠标移到旁边的信息图标上时Targets -> myApp -> General 中的“Xcode Managed Profile”行,它说它在我的帐户开发证书下有一个配置文件。

  2. 我可以在我的计算机上访问我父亲帐户的证书和配置文件,因此获取用于签署当前版本的证书的 p12是不适用的。

4

1 回答 1

3

我问这个问题已经有一段时间了,但如果我没记错的话,我想答案是我根本不需要做任何事情。

问题源于我试图安装一个使用与当前安装版本不同的凭据签名的应用程序。例如,如果我安装了一个由 account1 签名的应用程序,那么安装任何具有相同捆绑 ID 但使用除 account1 以外的任何内容(我们称之为 account2)签名的应用程序都将失败。就我而言,account1 是我父亲的帐户,account2 是我的帐户。

当涉及到 App Store 时,Apple 在审核您的应用程序后,会对其进行签名并将其发布到 App Store。因此,App Store 上的所有内容都由 Apple 签名。

这意味着account1下提交的应用版本是Apple-signed,并且在转移到account2之后,account2提交的任何版本也将是Apple-signed。从最终用户的角度来看,由于旧版本(由account1提交)和新版本(由account2提交)是由同一个实体(Apple)签署的,所以没有冲突,用户永远不知道该应用程序被转移到另一个帐户。

因此,即使您最终看到冲突,最终用户也不会。要停止看到它们,只需卸载使用 account1 签名的任何版本的应用程序,然后安装使用 account2 签名的新版本。一切都应该正常工作。

于 2019-01-05T23:42:36.923 回答