如何使用XcodeGen配置Notification Service Extension目标?
如何用XcodeGen添加Notification Service Extension目标
XcodeGen目前没有专门的Notification Service Extension目标类型,但可以通过通用App Extension类型变通实现,具体配置和步骤如下:
核心配置示例
在你的project.yml中添加扩展目标的配置:
targets: # 你的主应用目标(已有的配置) YourMainApp: type: application platform: iOS # ... 主应用其他配置 # Notification Service Extension 目标 NotificationService: type: appExtension platform: iOS deploymentTarget: "14.0" # 根据项目需求调整最低版本 bundleId: "com.yourcompany.yourapp.notification-service" infoPlist: NSExtension: NSExtensionPointIdentifier: "com.apple.usernotifications.service" NSExtensionPrincipalClass: "$(PRODUCT_MODULE_NAME).NotificationService" sources: - NotificationService # 指向存放扩展代码的目录 dependencies: - target: YourMainApp
关键配置说明
type: appExtension:以通用App Extension为基础类型,适配通知服务扩展NSExtensionPointIdentifier:必须设置为com.apple.usernotifications.service,这是苹果定义的通知服务扩展的唯一标识NSExtensionPrincipalClass:指定扩展的入口类,默认是NotificationService,用$(PRODUCT_MODULE_NAME)可以自动匹配模块名称,避免硬编码sources:确保指向的目录包含扩展的核心代码文件(比如NotificationService.swift),XcodeGen会自动处理目录内的文件
生成项目
配置完成后,在终端运行:
xcodegen generate
生成的项目中会出现功能完整的Notification Service Extension目标,和手动创建的扩展完全一致。
内容的提问来源于stack exchange,提问作者Sergey
相关产品推荐
相关产品推荐

