You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS应用如何从MDM服务器获取IMEI等设备信息?

MDM向自研iOS应用同步设备信息的实现方案

底层机制说明

你提到的MDM推送字典数据到应用NSUserDefaults的能力,是苹果官方原生提供的*托管应用配置(Managed App Configuration)*特性,属于iOS MDM协议的标准能力,无需依赖私有API或越狱即可实现。
具体实现逻辑如下:

  • 首先将你的自研iOS应用设置为MDM托管应用:可通过MDM的InstallApplication命令直接推送安装应用,或用户手动安装后,由MDM下发管理命令将应用转为托管状态
  • MDM服务器完成设备注册、采集到IMEI等设备信息后,构造自定义字典配置,通过MDM协议的InstallConfiguration命令将配置推送到对应设备
  • 设备收到配置命令后,系统会自动将字典内容写入目标应用NSUserDefaults的固定特殊键com.apple.configuration.managed下,无需应用做任何额外的接收逻辑

应用侧读取数据示例

Swift 代码

// 读取MDM推送的托管配置
if let managedConfig = UserDefaults.standard.dictionary(forKey: "com.apple.configuration.managed") {
    let deviceImei = managedConfig["imei"] as? String
    // 业务逻辑使用imei值
}

// 可选:监听配置更新通知,实时获取MDM推送的最新数据
NotificationCenter.default.addObserver(
    forName: UserDefaults.didChangeNotification,
    object: nil,
    queue: .main
) { _ in
    // 重新读取com.apple.configuration.managed即可拿到最新配置
}

Objective-C 代码

// 读取托管配置
NSDictionary *managedConfig = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"com.apple.configuration.managed"];
NSString *deviceImei = managedConfig[@"imei"];

// 监听配置更新通知
[[NSNotificationCenter defaultCenter] addObserverForName:NSUserDefaultsDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
    // 重新读取配置
}];

注意事项

  • 只有被MDM托管的应用可以读取到com.apple.configuration.managed键的内容,未托管的应用读取该键会返回nil
  • 该能力完全合规,通过此方式获取IMEI等设备信息不会触发App Store的隐私规则校验
  • 如需应用向MDM回传数据,可将需要回传的内容写入NSUserDefaults的com.apple.feedback.managed键,MDM服务器可主动拉取该键的内容

内容的提问来源于stack exchange,提问作者Inyouchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:36:03