You need to enable JavaScript to run this app. 如何在iOS项目中通过Tuist配置开启后台模式、通知等Xcode功能
优惠活动
大模型
产品
解决方案
定价
更多

如何在iOS项目中通过Tuist配置开启后台模式、通知等Xcode功能

Tuist 开启后台模式、通知能力的配置方法

由于Tuist采用声明式的工程生成机制,所有工程配置(包括签名、能力、Build Settings)都需要在项目的Swift清单文件中完成定义。生成Xcode项目后直接在Xcode可视化界面修改的配置,会在下次执行tuist generate时被完全覆盖,所有能力配置统一写入对应Target的初始化参数即可,不需要手动编辑entitlements文件或在Xcode面板操作。

核心配置位置

所有能力类配置都需要写入对应App Target初始化方法的capabilities数组中,Tuist会根据声明自动完成entitlements生成、Info.plist字段写入、签名配置关联全流程。

通知能力配置

找到需要开启通知功能的主App Target,在其capabilities列表中添加推送通知能力声明即可:

Target(
    name: "主App Target名称",
    platform: .iOS,
    product: .app,
    bundleId: "你的应用Bundle ID",
    infoPlist: .default,
    sources: ["Sources/**"],
    capabilities: [
        // 配置推送通知能力
        // 开发/TestFlight阶段用.development,正式上架切换为.production
        .pushNotifications(environment: .development)
    ]
)

本地通知不需要额外加特殊配置,开启通知能力后,在应用运行时向用户申请通知权限即可正常使用。

后台模式配置

在同一个Target的capabilities数组中追加后台模式声明,Tuist会自动将配置写入Info.plist的UIBackgroundModes字段,不需要手动编辑Info.plist:

capabilities: [
    .pushNotifications(environment: .development),
    // 按需选择需要的后台模式即可
    .backgroundModes([
        .remoteNotifications, // 收到APNs推送时,App在后台也能完成数据拉取
        .audio, // 后台音频播放
        .location, // 后台位置更新
        .fetch, // 系统触发的后台刷新
    ])
]

常见踩坑提醒

  • 配置修改完成后,必须重新执行tuist generate让配置生效。直接在Xcode的Signing & Capabilities面板添加的能力,会在下次生成工程时被清空,做的修改不会保留
  • 推送通知的环境配置需要和打包环境匹配:开发调试、内部测试阶段使用development环境,正式上架版本切换为production环境,否则会出现设备无法注册到APNs、收不到推送的问题
  • Tuist会自动管理生成的Entitlements文件路径,不需要手动在Build Settings中配置CODE_SIGN_ENTITLEMENTS参数,避免出现路径匹配错误导致的签名失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 12:57:00