【问题标题】:Check if an ios device was blocked [duplicate]检查ios设备是否被阻止[重复]
【发布时间】:2019-01-04 09:08:03
【问题描述】:

有没有办法识别被我的应用阻止的设备,因此他们无法创建第二个帐户?

我已经阅读了一些关于唯一标识和 DeviceCheck(Apple 自己的 IPA)的内容。我也考虑在用户注册时询问电话号码,但这对我来说似乎有点复杂,其他解决方案只有在用户不重新安装应用程序的情况下才有效。

我的另一种方法是获取一些信息(运营商、iPhone 名称、iOS 版本、iPhone 型号等),将其打包成一个字符串并将其用作唯一 ID,但其中一些信息可以轻松更改而且我认为 Apple 不会喜欢这种解决方案。

我确信有更好/更简单的解决方案。

(这个任务在Android中似乎很简单。我打算用这个语句:UUID.randomUUID().toString();

该信息可能会有所帮助: 我计划将此应用连接到 Firebase。

在最好的情况下,该解决方案适用于 iOS 8.0 到当前的 iOS 版本。 我对 Swift 或 Objective C 中的任何类型的创造性解决方案持开放态度。

【问题讨论】:

标签: ios swift firebase


【解决方案1】:

我们可以通过使用SSKeychain 来实现这一点。使用 SSKeychain 一旦我们在SSkeychain 中设置了特定值,那么即使我们从您的 ios 设备中删除了该应用程序,该值仍将保留。

请检查以下内容,例如 Objective- C

 if([SSKeychain passwordForService:@"your application bundle identifier" account:@"user"] == nil)
            {
                    NSString *UUID = AppDelegate.GetUUID;
                    [SSKeychain setPassword:UUID forService:@"your application bundle identifier" account:@"user"];
                    NSString *retrieveuuid = [SSKeychain passwordForService:@"your application bundle identifier" account:@"user"];
                    NSLog(@"retrieveuuid %@",retrieveuuid);
            }
    + (NSString *)GetUUID {
            CFUUIDRef theUUID = CFUUIDCreate(NULL);
            CFStringRef string = CFUUIDCreateString(NULL, theUUID);
            CFRelease(theUUID);
            return (__bridge NSString *)string;
    }

【讨论】:

  • 非常感谢。我一定会试试这个。
  • 我有一个问题要确定。用户无法手动删除或编辑此条目,对吧?
  • 是的,没有这种手动编辑和删除的方法,只能通过编码来实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
  • 2021-09-12
  • 1970-01-01
  • 2011-12-11
  • 2012-11-12
  • 2014-10-05
  • 2012-10-03
相关资源
最近更新 更多