V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
B910
V2EX  ›  iDev

appstore 的已装 app 权限:能否持续获取到用户的实时 appleID 信息?

  •  
  •   B910 · 2022-07-07 15:31:03 +08:00 · 1337 次点击
    这是一个创建于 651 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1 、几年前,我朋友的 apple ID 购买过一个 APP ,现在已经全市场下架了,但是后续一直可以安装、使用。

    2 、并且在同 ID 下多个设备,均可通过“已购项目”安装,在线使用没问题。

    3 、app 本身没有用户机制,原 ID/新 ID 可以直接通过链接 appstore 购买续费 /恢复购买。处于下架,仍然可以重复安装,购买、订阅。

    4 、另外,tiktok 的用户限制行为。我用美区 ID 安装 tiktok ,无论通过哪种方式都注册不了账户,没有定位授权,VPN 境外。他可能获取并分析了我的 apple ID 信息 或者系统语言?

    5 、后续支付和是否原始购买 app 好像没关系。

    水友们指点一下,这中弱用户机制的 app 貌似生存力极强,只用 appstore 的支付功能,不上架。 那么我的朋友是不是可以无限地给他的朋友们安装这个 app ,共享美好生活?

    这种情况 是 APP 所有人故意设计的,还是他遗忘了这么一个老掉牙的产品,造成这样的现状?

    PS : 我坦白,这个 app 其实是个用了好久的梯子。

    9 条回复    2022-07-07 18:17:34 +08:00
    zkkkk
        1
    zkkkk  
       2022-07-07 15:50:57 +08:00   ❤️ 1
    tiktok 是 sim 卡检测,你把手机卡拔掉就行了,或者 iPad 装了直接用
    B910
        2
    B910  
    OP
       2022-07-07 16:00:40 +08:00
    @zkkkk 用的不带卡的 ipad 安装的
    shinsekai
        3
    shinsekai  
       2022-07-07 16:11:32 +08:00
    不是 app 获取信息而是 apple 提供接口返回购买信息吧
    PerFectTime
        4
    PerFectTime  
       2022-07-07 16:13:06 +08:00
    按苹果的 tos 来说,一个账号购买的 app 是有安装设备数量限制的
    FaiChou
        5
    FaiChou  
       2022-07-07 16:31:10 +08:00
    我也有相同的疑问, 苹果是否有提供给开发者获取当前登陆 iCloud 账号信息的 API?

    之前 vvebo 作者发过:

    > 有用户反馈平时工作手机不登录 iCloud 。我会更新一个版本,针对没有绑定 iCloud 的用户限制 3 台设备使用。

    他是怎么实现的呢? 用户通过 store 下载后打开, app 能获取用户的当前 iCloud 账号吗? 搜了一下是获取不到这敏感信息的.

    对于 TikTok 这个简单, 它主要是检测运营商, 可以通过一些工具(圈 x/surge)篡改掉某些接口. 或者干脆买一个澳门卡查到手机上就可以了. (当然也需要将它的所有 api 挂非大陆代理)
    kera0a
        6
    kera0a  
       2022-07-07 16:37:28 +08:00   ❤️ 1
    @FaiChou 肯定是获取不到 iCloud 账号的,如果能获取到,就能当唯一标识符跨应用跟踪了。

    猜测方式可能是,自己生成一个 UUID ,存在用户的 iCloud 里( 不是 iCloud Drive ),
    FaiChou
        7
    FaiChou  
       2022-07-07 17:15:07 +08:00
    @kera0a A 购买了 vvebo, BCDE 这四个人都用 A 的账号下载, 而且这 4 个人都登陆了自己的 iCloud 账号. 用你的方法, app 打开后, 生成 uuid 存储到 iCloud 中, 都是存储到了自己的 iCloud. 并不能限制多设备.
    FaiChou
        8
    FaiChou  
       2022-07-07 17:28:27 +08:00
    @kera0a 看了下, vvebo 好像必须登陆购买 app 账号的 icloud 才能使用, app 做了限制, 也就是说打开 app 时候验证了收据(苹果提供这个 api).
    kera0a
        9
    kera0a  
       2022-07-07 18:17:34 +08:00   ❤️ 2
    @FaiChou
    应该不是验证收据,收据不管登哪个账号,都是一样的
    我也只是简单说一嘴,完整实现挺麻烦的,总之 iOS 下只要能唯一标识用户的信息都获取不到

    一个可能的完整实现:

    上面说的 iCloud ( CloudKit )会给 APP 一个当前 iCloud 账户的 ID (每个账号每个 APP 都不一样)但同账号同 APP 组合下不会变,不过这个 ID 无法和购买行为产生关联

    所以首先就是购买后,要立即找一个 iCloud ID 关联起来, 关联后只有这个 iCloud ID 能用 APP ,其他 iCloud ID 都算盗版。

    但购买收据没有唯一标识符,所有人的收据都差不多一样,无法做到一个收据对应一个 iCloud ID ,
    所以通常做法是 用收据的购买时间戳当 key 来关联 iCloud ID 。
    例如 Surge 好像就是这样做的。但这有一个问题,如果两个人同一时间购买,另外一个人会被当成盗版。

    然后就是限制过多的激活, 是限制人还是限制设备都行。
    你补充的不登录收据关联的 iCloud 不能用 (只能单用户多设备使用)
    或者激活后保存设备, 用收据的时间戳当 key 去查找当前激活的数量,超过就是盗版
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5100 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:38 · PVG 17:38 · LAX 02:38 · JFK 05:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.