iOS应用添加Notification Service Extension后Fastlane签名配置问题
解决iOS Notification Service Extension添加后Fastlane证书配置问题
问题场景
为iOS应用新增NotificationModifier(Notification Service Extension)后,使用Fastlane打包时出现签名错误:
error: No profile for team 'TEAMID' matching 'App Provisioning Profile' found: Xcode couldn't find any provisioning profiles matching 'TEAMID/App Provisioning Profile'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the Signing & Capabilities tab of the target editor. (in target 'NotificationModifier' from project 'Yeshivat Torat Shraga')
推测原因为Fastlane使用的配置文件未包含新增Extension的Bundle ID。
解决步骤
确认Extension的Bundle ID与开发者后台配置
- 打开Xcode,进入
NotificationModifiertarget的Signing & Capabilities标签,确保Extension的Bundle ID是主App Bundle ID的后缀形式(例如主App为com.yourcompany.app,Extension应为com.yourcompany.app.NotificationModifier) - 登录Apple Developer后台,确认该Extension的Bundle ID已注册,且对应的Provisioning Profile包含此Bundle ID
- 打开Xcode,进入
更新Fastlane Match配置(若使用Match管理证书)
- 重新生成包含主App和Extension Bundle ID的配置文件,执行对应环境的命令:
# App Store环境 fastlane match appstore --app_identifier "主App Bundle ID,Extension Bundle ID" # Ad Hoc环境 fastlane match adhoc --app_identifier "主App Bundle ID,Extension Bundle ID" - 执行后Match会自动在开发者后台生成包含两个Bundle ID的配置文件,并下载到本地
- 重新生成包含主App和Extension Bundle ID的配置文件,执行对应环境的命令:
调整Fastlane Build Lane的签名参数
在build_releaselane中,为build_app(或gym)动作明确指定所有target的配置文件映射,示例:lane :build_release do match(type: "appstore") build_app( scheme: "Yeshivat Torat Shraga", export_method: "app-store", export_options: { signingStyle: "manual", provisioningProfiles: { "主App Bundle ID" => "主App配置文件名称", "com.yourcompany.app.NotificationModifier" => "Extension配置文件名称" } } ) end若使用自动签名,将
signingStyle设为"automatic"即可,确保Xcode能自动匹配到包含Extension的配置文件清理本地缓存并重新同步
- 删除本地旧配置文件:前往
~/Library/MobileDevice/Provisioning Profiles目录,删除所有相关的旧配置文件 - 若需要彻底重置,可执行
fastlane match nuke appstore(注意:此命令会删除开发者后台对应环境的所有配置文件,需谨慎操作),之后重新执行Match生成新配置
- 删除本地旧配置文件:前往
验证Xcode配置
- 关闭并重新打开Xcode项目,进入
NotificationModifiertarget的Signing & Capabilities标签,确认已选中新生成的配置文件 - 手动执行一次Xcode Archive,确认无签名错误后,再运行Fastlane的
build_releaselane
- 关闭并重新打开Xcode项目,进入
内容的提问来源于stack exchange,提问作者benjixinator
相关产品推荐
相关产品推荐

