uniapp开发的项目上架应用平台提示获取mac信息如何解决?

在uniapp开发的项目上架应用平台时,提示“获取mac信息”被拒绝,应该如何解决?应用平台要求说明获取mac信息的用途,但项目本身并未主动调用相关权限,可能是uniapp底层模块或第三方SDK触发的。请问如何排查具体原因?是否需要修改配置或声明隐私政策?有没有遇到相同问题的开发者可以提供解决方案?

2 回复

在manifest.json中检查并移除不必要的权限,如android.permission.ACCESS_WIFI_STATE。确保隐私政策中说明信息收集用途,或改用其他合法标识符替代MAC地址。


在UniApp开发中,如果应用上架时被平台(如华为、小米、应用宝等)提示“获取MAC信息”,通常是因为应用在代码中使用了获取设备唯一标识的API,而MAC地址属于敏感用户隐私,可能导致审核不通过。以下是解决方案:

1. 检查并移除MAC地址获取代码

在UniApp项目中,搜索并删除任何获取MAC地址的代码。常见问题包括:

  • 使用uni.getSystemInfouni.getSystemInfoSync,但某些平台可能误报。
  • 第三方插件或原生代码(如Android原生模块)中包含MAC地址获取逻辑。

示例代码检查

  • 确保没有调用类似networkInfo.getMacAddress()(Android原生)的代码。
  • 如果使用插件,检查插件文档,确保其不涉及MAC地址。

2. 使用替代标识符

如果需要设备唯一标识,建议使用平台允许的替代方案,如OAID(安卓10+)或UUID:

  • OAID(移动安全联盟标识):适用于国内安卓平台,可通过官方MSA SDK或UniApp插件获取。
  • UUID:使用uni.getSystemInfoSync().uuid(注意:部分平台可能限制)。
  • 其他选项:如设备厂商提供的匿名标识符。

示例代码(使用OAID插件): 如果集成OAID插件,参考插件文档调用:

// 假设插件名为"msa-oaid"
const oaid = uni.requireNativePlugin('msa-oaid');
oaid.getOAID((result) => {
  console.log('OAID:', result.oaid);
});

注意:使用前需在manifest.json中配置插件,并确保符合平台政策。

3. 更新隐私政策

在应用隐私政策中明确说明数据收集类型,避免提及MAC地址。如果使用了OAID等标识符,需在政策中披露其用途(如广告跟踪)。

4. 提交审核时说明

如果平台误报,可在应用上架时提交说明:

  • 指出应用未收集MAC地址,并列出使用的合法标识符。
  • 提供代码截图或文档作为证据。

5. 测试和验证

使用真机测试应用,确保无MAC地址获取行为。可通过Android Studio日志或第三方工具检查网络请求。

总结

关键点是移除MAC相关代码,改用OAID等合规标识符,并更新隐私政策。通常,修改后重新打包提交即可通过审核。如果问题持续,检查第三方库或联系平台客服。

回到顶部