Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在对象C或swift中获取设备序列号_Ios_Objective C_Swift - Fatal编程技术网

Ios 如何在对象C或swift中获取设备序列号

Ios 如何在对象C或swift中获取设备序列号,ios,objective-c,swift,Ios,Objective C,Swift,嗨,我是C目标的新手。 请帮助我如何在iPhone中获取设备序列号请帮助我 任何人请提供一个示例应用程序 提前感谢。对于iOS: 苹果不允许开发者在iOS上访问设备序列号。或者,他们为您提供: 一个字母数字字符串,用于向应用程序供应商唯一标识设备。(只读) 对于macOS: var serialNumber: String? { let platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMa

嗨,我是C目标的新手。 请帮助我如何在iPhone中获取设备序列号请帮助我 任何人请提供一个示例应用程序

提前感谢。

对于iOS:

苹果不允许开发者在iOS上访问设备序列号。或者,他们为您提供:

一个字母数字字符串,用于向应用程序供应商唯一标识设备。(只读)

对于macOS:

var serialNumber: String? {
  let platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice") )

  guard platformExpert > 0 else {
    return nil
  }

  guard let serialNumber = (IORegistryEntryCreateCFProperty(platformExpert, kIOPlatformSerialNumberKey as CFString, kCFAllocatorDefault, 0).takeUnretainedValue() as? String)?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) else {
    return nil
  }


  IOObjectRelease(platformExpert)

  return serialNumber
}
来源:

对于iOS:

苹果不允许开发者在iOS上访问设备序列号。或者,他们为您提供:

一个字母数字字符串,用于向应用程序供应商唯一标识设备。(只读)

对于macOS:

var serialNumber: String? {
  let platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice") )

  guard platformExpert > 0 else {
    return nil
  }

  guard let serialNumber = (IORegistryEntryCreateCFProperty(platformExpert, kIOPlatformSerialNumberKey as CFString, kCFAllocatorDefault, 0).takeUnretainedValue() as? String)?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) else {
    return nil
  }


  IOObjectRelease(platformExpert)

  return serialNumber
}

资料来源:

否,这在Swift或Objective-C中不可能。否,这在Swift或Objective-C中不可能。Link说明“如何在Swift中的macOS上获取序列号”。这在iOS中有效吗?@意思很重要啊,很好的一点-读得不好。编辑答案。请注意,这可能不是您想要的:@means matters good point-尽管用户没有提到他们为什么需要序列号。我应该编辑我的答案以包含你的帖子吗?请注意代码中有两种可能的内存泄漏。1) 如果您使用
takeUnretainedValue()
您负责释放对象(ARC不这么做),并且2)
platformExpert
将不会被释放,如果
nil
被返回,链接会说“如何在Swift中获取macOS上的序列号”。这在iOS中有效吗?@意思很重要啊,很好的一点-读得不好。编辑答案。请注意,这可能不是您想要的:@means matters good point-尽管用户没有提到他们为什么需要序列号。我应该编辑我的答案以包含你的帖子吗?请注意代码中有两种可能的内存泄漏。1) 如果您使用
takeunrepainedvalue()
您负责释放对象(ARC不这么做),2)
platformExpert
如果返回
nil
,则不会被释放