背景
由于公司主体改变,跟进法务要求,需要将APP下面的主体改变成新主体。主体改变有两种途径:
第一种方案对APP来说是没有影响的,如果公司主体更换,最好是选择第一种方式。但是由于我们主体更换后,法人已经更变,导致无法提供相关信息给苹果开发者账号审核这边进行审核。所以只能用第二种方案,APP转让的方案了。2019年10月份,我们开始了APP的转让,但是当时由于我们使用了iCloud
功能,导致我们无法迁移。
就这样,等待了2年后,苹果终于放开iCloud
限制了,使用了iCloud
的也可以迁移。官方文档
问题
APP转让时,App Store的评分、评论是可以选择保留与不保留的。另外APP转让,不会影响已经上架在App Store的应用(包括推送、通用链等,都不影响)。具体的迁移流程就不多讲了,自己操作都有提示,很容易。下面讲一下迁移后和迁移前需要处理的问题。
一、keyChain
如果APP中使用到了KeyChain功能,新版本将不能访问老版本的KeyChain数据。原因如下:
ITMS-90076: Potential Loss of Keychain Access – The previous version
of software has an application–identifier value of
[‘xxxx.xxxxx1’] and the new version of software being
submitted has an application–identifier of
[‘xxxx.xxxxx2’]. This will result in a loss of
keychain access.
KeyChain中存储的数据是跟Team ID相关的,访问数据是通过TeamID+BundleID 来访问的,由于我们将APP 从 A开发者账号 转让到 B开发者账号,这样Team ID就发生了变化,所以无法读取保存在 A开发者账号下的 KeyChain 数据了。我们很多应用应该都用KeyChain来做DeviceID唯一,或者存储登录状态、用户密码等,迁移后这些数据都将获取不到,所以需要注意这个。并且需要提前做好准备。
我们可以用以下方法:
在迁移前,我们可以将 KeyChain中存的数据,同时存储到本地缓存(沙盒SandBox)中,在 APP 启动时,优先从 Keychain 中读取,如果 Keychain 中取不到,就从本地缓存中取(然后再把本地缓存的同步到 Keychain 中,因为即使 APP 转让了,用户更新版本覆盖安装后 Sandbox 中的数据是不会变的),如果两处都取不到,那就看业务是如何生成数据,重新存储到 KeyChain中。
二、Sign in with Apple (苹果三方登录)
不同的苹果开发者账号主体,苹果登录生成的唯一标识是不一样的,所以应用迁移后,通过Sign in with Apple(苹果三方) 登录,获取到的Identifier值和原来的不一致。因为三方登录一般是用Identifier与本身账号体系做的关联绑定,迁移后,将会导致用户重新走关联绑定的流程。
文档中,苹果提供了转化条件。这里的transfer_usb就是用户在新主体账号 B 下面生成的 Identifier_02。
具体步骤如下:
1、通过转化工具提前获取用户的 Identifier_02。
2、将Identifier_02 刷回原来的用户数据库,覆盖旧的账号Identifier_01。
3、用户重新用 Apple 登录,Identifier_02 能正确匹配到该用户。
当然这个少不了后端同学的配合了。在这里感谢我们 毛架
陪我战斗到天亮。
三、APP Groups
如果我们应用中用到了Extension(扩展),并且用到了APP Groups 共享数据,在应用迁移后,需要将原来账号下面的Group ID删除掉,这样在新账号下才可以重新生成同名的Group ID,否则会报以下错误。
An Application Group with Identifieris not available. Please enter a different string.
那么在哪里删除原来账号下面的APP Group ID呢?需要在开发者账号的证书管理中心下面,找到App Groups 然后删除掉相应的Group ID。
删除后,重新刷新一下APP Groups,发现不再报错了。
四、Universal Link(通用链)
如果APP中用到了通用链,用于在H5页面唤起APP,那么应用迁移完之后,在所有的通用链配置文件中的旧的Team ID的基础上,增加新账号Team ID相关的配置。这样配置后不会影响线上和后续新版本应用的唤起。当然这个少不了麻烦运维同学,在这里感谢然总
和奎神
的相助。
一般在域名下面目录:xxx.com/apple-app-site-association
或者xxx.com/.well-known/apple-app-site-association
五、内购沙盒测试账号
APP 转让完毕后,原来的内购沙盒测试账号将不能使用,测试内购时,统一需要使用新开发者账号下面的沙盒测试账号。
六、开发者证书
APP 转让完毕后,原来账号下面的证书将不再适用,开发者证书、推送证书等,都需要在新开发者账号下面重新生成。证书配置官网。
七、App Store小型企业计划
App Store小型企业计划,是不允许进行新App转让的。如果您发起或接受App转让,您将无法注册此计划或不再符合参与此计划的资格。就是说发起方和接收方的小企业计划都会被取消,需要从新申请此计划,提交审核。申请官网地址。
原文地址:https://blog.csdn.net/weixin_36162680/article/details/126750066
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_44462.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!