背景

由于公司主体改变,跟进法务要求,需要将APP下面的主体改变成新主体主体改变有两种途径:

  1. 直接开发者账号联系我们会员资格和账户-组织名称更改
    在这里插入图片描述
  2. 通过App Store Connect 来进行APP转让,将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 applicationidentifier value of
[‘xxxx.xxxxx1’] and the new version of software being
submitted has an applicationidentifier 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进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注