iOS,Sign in with apple transfer

2021-08-28  本文已影响0人  吃过多少面包


一、原因

不同的开发者账号主体,苹果登录生成的唯一标识不一样,

导致了应用迁移后,通过Sign in with apple 登录,获取到的Identifier值和原来不一致。

如果应用原先通过这个作为userid的关联映射,没有做好这个转化的话,将会产生用户数据丢失的严重影响。

账号A:Identifier_01 -> userid_01

账号B:Identifier_02 -> userid_02

由于userid_01 !== userid_02,此时应用迁移后玩家用Identifier_02匹配不上原来的userid_01,表现就是数据丢失变成一个新的账号。

二、解决方案

问题已经出现,接下来是解决方案。

首先还是看看有没有官方文档可以查阅。

Transferring Your Apps and Users to Another Team

apple 账号迁移描述

通过查阅文档,发现幸好苹果爸爸提供了转化条件。这里的transfer_usb就是玩家的,账号B:Identifier_02

转化图示

此时,解决方案大致已经明了

步骤

1、通过转化工具提前获取玩家的 Identifier_02

2、将Identifier_02刷回原来的玩家数据库,覆盖旧的账号Identifier_01

3、玩家重新登录,Identifier_02能正确匹配到原来的数据

三、转化工具

(1)生成关键的screctKey.p8,

作为账号A、账号B之间的token转化关联参数用

注:账号A(oldKey.p8)、账号B(newKey.p8)都需要生成

点击生成 下载

生成好之后,下载下来应该是这样(注意保存和区分,过后要用):

文件内容

(2)进行转化

这时候到github上查找类似的工具使用,

根据文档查找关键词 transfer_sub

https://github.com/search?p=4&q=transfer_sub&type=Code

发现这位国外的热心老哥做了一个好用的工具,是用ruby写的。

工程地址:https://github.com/vincent-the/apple_sub_migration

配置好参数

由于我这里一直遇到openssl报错,所以做了一点小调整,将key的读取改为读取file的形式,。

效果如下图:

修改读取文件 配置key内容

修改git工程里的读取值改为你转移前后的参数:

编辑配置文件,apple.rb

配置参数

team_id,apple开发者账号的team字段

key_id,生成p8时自带,AuthKey_xxx,"xxx"这部分的值

client_id,即应用的bundle id

参数配置完毕,

运行查看转化后的结果

运行结果

参考链接:

https://github.com/vincent-the/apple_sub_migration

https://www.belmeng.com/sign-in-with-apple-transfer/

上一篇下一篇

猜你喜欢

热点阅读