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

如何为iPad与Catalyst应用设置独立的蓝牙权限?

解决iPad与Catalyst版本蓝牙权限区分配置的方案

不用每次手动切换权限设置,有几种可靠的方法可以实现分平台配置:

1. 拆分Info.plist文件

  • 复制一份现有的Info.plist,命名为Info-MacCatalyst.plist
  • 在原iOS版的Info.plist中保留蓝牙权限声明(NSBluetoothAlwaysUsageDescription和NSBluetoothPeripheralUsageDescription)
  • 在Info-MacCatalyst.plist中删除这两个权限条目
  • 打开项目设置,在Build Settings中找到Info.plist File选项:
    • 为iOS目标选择原Info.plist
    • 为Mac Catalyst目标选择Info-MacCatalyst.plist

2. 使用XCConfig配置文件

  • 创建两个配置文件:iOS.xcconfig和MacCatalyst.xcconfig
  • 在iOS.xcconfig中添加权限配置:
    INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = 用于查找丢失的Apple Pencil
    INFOPLIST_KEY_NSBluetoothPeripheralUsageDescription = 用于查找丢失的Apple Pencil
    
  • MacCatalyst.xcconfig中不添加上述两行
  • 在项目的Project -> Info -> Configurations里,为iOS和Mac Catalyst目标分别对应选择各自的xcconfig文件

3. 代码层面隔离蓝牙逻辑

配合上面的配置,在代码里用条件编译确保Catalyst完全不涉及Core Bluetooth逻辑:

#if !targetEnvironment(macCatalyst)
// 这里写iPad上的Apple Pencil查找相关Core Bluetooth代码
#endif

这样提交审核时,Catalyst版本既没有权限声明,也没有蓝牙相关代码,就不会因为不必要的蓝牙权限被拒了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:46:02