美文网首页
iOS,Sign in with apple transfer

iOS,Sign in with apple transfer

作者: 吃过多少面包 | 来源:发表于2021-08-28 14:21 被阅读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/

    相关文章

      网友评论

          本文标题:iOS,Sign in with apple transfer

          本文链接:https://www.haomeiwen.com/subject/dcsbiltx.html