如何在iOS设备中识别唯一ID?

时间:2018-12-01 04:36:32

标签: ios frameworks

如何在ios设备中识别唯一ID?如果我在同一设备上有多个具有不同开发者帐户的应用。如何检测两个应用程序在同一设备上?

示例:如何识别Apps A和Apps B安装在同一设备上。

  • 不同的包ID
  • 使用其他开发者帐户进行构建
  • 在同一设备上
  • iOS 9及更高版本

除了用于标识设备的唯一ID,还有其他解决方案吗?

2 个答案:

答案 0 :(得分:0)

如果您尝试为每个应用程序设备创建唯一ID,我认为您可以通过从捆绑ID和UDID结合生成MD5来创建唯一ID

但是,如果您想检测是否从App B安装了App A,则可以使用URL方案: Read More here

或者您可以阅读以下内容:Different ways to share data between apps — iOS

答案 1 :(得分:-2)

SSKeychain.h

SSKeychain.m

#import <AdSupport/AdSupport.h>

添加此文件

-(NSString*)DeviceKey{
    NSString *kSSToolkitTestsServiceName = @"SSToolkitTestServiceAppName";
    NSString *kSSToolkitTestsAccountName = @"SSToolkitTestAccountAppName";
    NSString *kSSToolkitTestsPassword;
    NSString *userIdString = [SSKeychain passwordForService:kSSToolkitTestsServiceName account:kSSToolkitTestsAccountName];

    if (userIdString.length<=1)
    {

        _Bool Track =[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled];
        kSSToolkitTestsPassword = @"00000000-0000-0000-0000-000000000000";

        if (Track || ![kSSToolkitTestsPassword isEqualToString:@"00000000-0000-0000-0000-000000000000"])
        {
            kSSToolkitTestsPassword = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
        }
        else
        {
            kSSToolkitTestsPassword = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

        }
        [SSKeychain setPassword:kSSToolkitTestsPassword forService:kSSToolkitTestsServiceName account:kSSToolkitTestsAccountName];
        [[NSUserDefaults standardUserDefaults] setValue:kSSToolkitTestsPassword forKey:KEYM_Register_Key];
    }
    else
    {
        [[NSUserDefaults standardUserDefaults] setValue:userIdString forKey:KEYM_Register_Key];
    }
    NSString *strKeyDevice=[[NSUserDefaults standardUserDefaults]objectForKey:KEYM_Register_Key];
    return strKeyDevice;
}

最后,您获得了唯一的ID,该ID使用网络服务或Firebase等存储您的数据库... 每个应用程序和两个应用程序中的相同流程在每个设备上都具有唯一的ID。  两个应用程序的唯一ID都相同。