【问题标题】:Cordova-IOS How to get iPhone UUID or alternative identifierCordova-IOS 如何获取 iPhone UUID 或替代标识符
【发布时间】:2023-03-31 16:24:02
【问题描述】:

我正在开发基于 Cordova 的应用程序,出于安全原因,我需要在向服务器端发送任何请求之前识别设备

但您可能知道,Apple 现在禁止以任何方式识别设备。

我尝试了很多插件,但它似乎只在 android 上工作,在 IOS 上它只是识别应用程序而不是设备我也尝试过原生目标 C 代码,如

[[[UIDevice currentDevice] identifierForVendor] UUIDString]

但它在删除应用程序并重新安装时也发生了变化

关于如何使用 UDID 或 IMEI 或任何其他替代方法识别 iPhone 的任何建议

【问题讨论】:

  • 无法从 iOS 设备读取原始 UUID。
  • Joerg 提到的这一点非常重要。您无法再获得在重新安装和不同应用程序中持续存在的特定设备标识符。您必须使用可以由用户更改的供应商标识符。你不应该试图找到一种方法来获得像真正的 UUID 这样的东西,因为这会侵犯你的用户隐私。如果 Apple 注意到,您甚至可能会被踢出应用商店。

标签: ios iphone cordova phonegap-plugins cordova-plugins


【解决方案1】:

在 KeyChain 中保留 identifierForVendor 或自定义 UUID。

删除应用并重新安装它不会改变。

见: How to preserve identifierForVendor in ios after uninstalling ios app on device?

更多..

我没有使用 Cordova,但我知道混合应用程序的工作原理。

  1. 为管理器创建 iOS 原生方法(获取、设置、删除)KeyChain。
  2. 创建 iOS 原生方法来创建 UUID。
  3. 让 Cordova 使用本地方法:http://cordova.apache.org/docs/en/2.5.0/guide_plugin-development_ios_index.md.html

如果您不想自己做,请使用我找到的插件: http://plugins.cordova.io/#/package/com.crypho.plugins.securestorage 或者 http://plugins.cordova.io/#/package/com.shazron.cordova.plugin.keychainutil

但你应该检查它们是否正常工作。

【讨论】:

  • 告诉他如何用cordova做到这一点。
【解决方案2】:

为什么不使用具有device.uuid 方法并适用于Android 和IOS 的标准cordova-plugin-device

见:https://github.com/apache/cordova-plugin-device#deviceuuid

获取设备的通用唯一标识符 (UUID)。

var string = device.uuid;

【讨论】:

  • 它还为每个应用程序而不是每个设备返回一个唯一标识符,这意味着当用户删除应用程序并再次安装它时,它会生成另一个 UUID
【解决方案3】:

Reming Hsu 保存任何 UDID 的想法是正确的,即使它是用于钥匙串中的应用程序,然后重用它非常有效,这是完整的代码

 NSString *myUUID = [[[UIDevice currentDevice] identifierForVendor]    UUIDString];
    KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"myApp" accessGroup:nil];
if ([[keychainItem objectForKey:(__bridge id)kSecAttrAccount] length]) {

    NSString *imeiFromK = [keychainItem objectForKey:(__bridge id)(kSecAttrAccount)];

}
else {

    [keychainItem setObject:myUUID forKey:(__bridge id)(kSecAttrAccount)];


}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 2011-08-01
    • 2015-01-07
    相关资源
    最近更新 更多