uniapp的ios的info.plist配置问题如何解决

在uniapp开发中,iOS端的info.plist文件配置遇到问题,具体表现为某些权限描述无法生效或Xcode打包时提示缺少必要配置项。尝试按照官方文档添加了NSPhotoLibraryUsageDescription等隐私权限描述,但应用审核仍被拒。请问:

  1. uniapp生成的iOS工程中,info.plist的正确配置位置在哪里?
  2. 是否需要手动修改原生工程中的plist文件?
  3. 常用的必配项有哪些?能否提供完整的模板示例?
  4. 如何验证配置是否生效?
2 回复

在uniapp项目的manifest.json中配置iOS权限,打包时会自动生成info.plist。如需自定义,可在HBuilderX中修改manifest的iOS设置,或手动编辑生成的plist文件。


在UniApp中配置iOS的info.plist文件时,常见问题及解决方案如下:

1. 配置权限描述

  • 问题:应用需要访问相机、相册等权限,但未在info.plist中添加对应描述,导致审核被拒或功能异常。
  • 解决:在HBuilderX项目的 manifest.json 中配置:
    "ios" : {
        "infoPlist" : {
            "NSCameraUsageDescription" : "需要相机权限用于拍照",
            "NSPhotoLibraryUsageDescription" : "需要相册权限用于选择图片"
        }
    }
    
    编译后会自动生成到ipa包的info.plist中。

2. URL Schemes配置

  • 问题:微信登录、支付等需要配置URL Scheme,未配置会导致回调失败。
  • 解决:在 manifest.jsonapp-plusdistributeios 中添加:
    "urltypes" : [
        {
            "identifier": "weixin",
            "urlschemes": ["wx1234567890abcdef"]
        }
    ]
    

3. ATS安全配置

  • 问题:iOS默认要求HTTPS,若应用需访问HTTP链接,需关闭ATS或配置例外。
  • 解决:在 infoPlist 中添加:
    "NSAppTransportSecurity" : {
        "NSAllowsArbitraryLoads" : true
    }
    
    (注意:上架App Store需谨慎使用,可能需说明原因)。

4. 白屏问题

  • 问题:iOS 14+设备启动后白屏,可能是未配置本地网络权限。
  • 解决:添加以下配置:
    "NSLocalNetworkUsageDescription" : "应用需要访问本地网络以发现服务",
    "NSBonjourServices" : ["_example._tcp"]
    

5. 自定义配置

  • 若需添加其他未在manifest.json中声明的键值,可通过原生插件自定义打包修改info.plist。

注意事项:

  • 修改 manifest.json 后需重新打包生效。
  • 上架App Store时,确保所有权限描述清晰且必要。
  • 通过HBuilderX云打包或本地打包自动生成最终info.plist,无需手动修改输出文件。

按以上步骤配置可解决大部分info.plist相关问题。

回到顶部