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

Flutter开发:能否获取iOS设备信息?Android正常iOS无法获取怎么办?

Flutter iOS设备信息获取问题解决方案

iOS并非完全无法获取设备信息——Apple对设备标识类信息的获取有严格的权限与API限制,像IMEI这类敏感信息早在iOS 10+就已无法通过公开API获取,但基础设备信息仍可正常获取。以下是可行的解决方案:

推荐的Flutter包

  • device_info_plus:这是Flutter官方生态维护的主流设备信息工具,完美支持iOS和Android双平台。

    • 使用步骤:
      1. 在pubspec.yaml中添加依赖:device_info_plus: ^latest_version(替换为当前最新版本号)
      2. 编写获取代码:
        import 'package:device_info_plus/device_info_plus.dart';
        
        final deviceInfo = DeviceInfoPlugin();
        final iosInfo = await deviceInfo.iosInfo;
        // 可获取的常用信息示例
        print('设备名称: ${iosInfo.name}');
        print('iOS版本: ${iosInfo.systemVersion}');
        print('设备型号: ${iosInfo.model}');
        print('开发者唯一标识: ${iosInfo.identifierForVendor}');
        
    • iOS适配注意:
      • identifierForVendor是Apple允许的合规设备标识,同一开发者旗下的App在同一设备上会得到相同值,卸载重装后可能变更
      • 无法获取IMEI、Mac地址等敏感信息,这类内容属于Apple严格限制范畴
      • 若需获取广告标识符(IDFA),需额外引入AdSupport.framework,并在info.plist中添加NSUserTrackingUsageDescription权限描述,同时请求用户授权
  • package_info_plus:如果仅需获取App自身信息(如版本号、包名),这个包更轻量化,同样支持双平台。

常见排查点

  • 确认iOS项目的info.plist中已添加必要的权限描述(针对需要授权的信息)
  • 检查使用的包是否为最新版本,旧版本可能存在iOS适配漏洞
  • iOS 14+中,部分信息(如IDFA)的获取必须先请求用户授权,未授权会返回空值或默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:20:01