From abca3cd2abeeb062eb108fb6040d031b97de1551 Mon Sep 17 00:00:00 2001 From: Tom Brow Date: Fri, 13 Nov 2026 16:09:08 -0800 Subject: [PATCH] fix(mobile): drop the iOS share extension from the build until it's signed (#9489) iOS release builds of main fail at export with "No profiles for `xyz.block.buzz.dogfood.mobile.ShareExtension` were found" ([buzz-mobile-releases build 62](https://buildkite.com/cash/buzz-mobile-releases/builds/62)). [#9433 iOS share sheet](https://github.com/block/buzz/pull/9433) added a ShareExtension target, and the release signing setup has no app ID or provisioning profile for it yet. This unhooks the ShareExtension target from the Xcode project (target, embed step and build settings) so the app builds and signs as it did before #9433. Nothing else changes: - The extension's sources stay in `mobile/ios/ShareExtension/`, so restoring it once the profiles exist is a revert of this commit. - The app's share hand-off code and outgoing share suggestions stay. Without the extension, Buzz just doesn't appear in the share sheet, as before #9433, and the hand-off never runs. ### Regressions - Sharing into Buzz from the iOS share sheet goes away until the profiles are registered. That's the point of this PR. - The app still donates `INSendMessageIntent` after a send. iOS only shows those as share suggestions for an app whose share extension declares the intent, so they stay invisible until the extension returns. ### Validation - iOS simulator debug build of the app succeeds with the target removed. - No other target referenced ShareExtension (it had no target dependencies). - Automated full-app run skipped: this only removes a build target, and the app code is unchanged. Signed-off-by: Tom Brow Co-authored-by: Tom Brow --- mobile/ios/Runner.xcodeproj/project.pbxproj | 149 -------------------- 1 file changed, 149 deletions(-) diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index ea8920aaaa..77e9b8c625 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -21,9 +21,7 @@ C0AF00000000000000000011 /* NativeAddMembersSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0AF00000000000000000012 /* NativeAddMembersSheet.swift */; }; C0AF00000000000000000071 /* NativeCreateChannelSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0AF00000000000000000072 /* NativeCreateChannelSheet.swift */; }; BZZ00000000000000000001 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = BZZ00000000000000000006 /* NotificationService.swift */; }; - BZZ00000000000000000031 /* ShareExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BZZ00000000000000000036 /* ShareExtension.swift */; }; BZZ00000000000000000002 /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = BZZ00000000000000000009 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - BZZ00000000000000000032 /* ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = BZZ00000000000000000039 /* ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; BZZ00000000000000000020 /* BuzzPushKit in Frameworks */ = {isa = PBXBuildFile; productRef = BZZ00000000000000000022 /* BuzzPushKit */; }; BZZ00000000000000000025 /* BuzzPushKit in Frameworks */ = {isa = PBXBuildFile; productRef = BZZ00000000000000000022 /* BuzzPushKit */; }; DCAF00000000000000000001 /* IosNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCAF00000000000000000002 /* IosNavigationBar.swift */; }; @@ -93,7 +91,6 @@ dstSubfolderSpec = 13; files = ( BZZ00000000000000000002 /* NotificationService.appex in Embed App Extensions */, - BZZ00000000000000000032 /* ShareExtension.appex in Embed App Extensions */, ); name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -125,13 +122,9 @@ C0AF00000000000000000012 /* NativeAddMembersSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeAddMembersSheet.swift; sourceTree = ""; }; C0AF00000000000000000072 /* NativeCreateChannelSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeCreateChannelSheet.swift; sourceTree = ""; }; BZZ00000000000000000006 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; - BZZ00000000000000000036 /* ShareExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareExtension.swift; sourceTree = ""; }; BZZ00000000000000000007 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BZZ00000000000000000037 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; BZZ00000000000000000008 /* NotificationService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = NotificationService.entitlements; sourceTree = ""; }; - BZZ00000000000000000038 /* ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = ShareExtension.entitlements; sourceTree = ""; }; BZZ00000000000000000009 /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - BZZ00000000000000000039 /* ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; BZZ0000000000000000000A /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Runner.entitlements; sourceTree = ""; }; DCAF00000000000000000002 /* IosNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IosNavigationBar.swift; sourceTree = ""; }; DCAF00000000000000000032 /* NavigationTopEdge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationTopEdge.swift; sourceTree = ""; }; @@ -205,13 +198,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BZZ0000000000000000003C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3C28C6B702C81085E6F96F2A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -285,7 +271,6 @@ isa = PBXGroup; children = ( BZZ0000000000000000000B /* NotificationService */, - BZZ0000000000000000003B /* ShareExtension */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, @@ -301,7 +286,6 @@ 97C146EE1CF9000F007C117D /* Runner.app */, 331C8081294A63A400263BE5 /* RunnerTests.xctest */, BZZ00000000000000000009 /* NotificationService.appex */, - BZZ00000000000000000039 /* ShareExtension.appex */, ); name = Products; sourceTree = ""; @@ -384,16 +368,6 @@ path = NotificationService; sourceTree = ""; }; - BZZ0000000000000000003B /* ShareExtension */ = { - isa = PBXGroup; - children = ( - BZZ00000000000000000036 /* ShareExtension.swift */, - BZZ00000000000000000037 /* Info.plist */, - BZZ00000000000000000038 /* ShareExtension.entitlements */, - ); - path = ShareExtension; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -463,25 +437,6 @@ productReference = BZZ00000000000000000009 /* NotificationService.appex */; productType = "com.apple.product-type.app-extension"; }; - BZZ0000000000000000003E /* ShareExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = BZZ0000000000000000003F /* Build configuration list for PBXNativeTarget "ShareExtension" */; - buildPhases = ( - BZZ0000000000000000003D /* Sources */, - BZZ0000000000000000003C /* Frameworks */, - BZZ00000000000000000040 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ShareExtension; - packageProductDependencies = ( - ); - productName = ShareExtension; - productReference = BZZ00000000000000000039 /* ShareExtension.appex */; - productType = "com.apple.product-type.app-extension"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -495,9 +450,6 @@ BZZ0000000000000000000E = { CreatedOnToolsVersion = 15.0; }; - BZZ0000000000000000003E = { - CreatedOnToolsVersion = 15.0; - }; 331C8080294A63A400263BE5 = { CreatedOnToolsVersion = 14.0; TestTargetID = 97C146ED1CF9000F007C117D; @@ -527,7 +479,6 @@ 97C146ED1CF9000F007C117D /* Runner */, 331C8080294A63A400263BE5 /* RunnerTests */, BZZ0000000000000000000E /* NotificationService */, - BZZ0000000000000000003E /* ShareExtension */, ); }; /* End PBXProject section */ @@ -540,13 +491,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BZZ00000000000000000040 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 331C807F294A63A400263BE5 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -690,14 +634,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BZZ0000000000000000003D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BZZ00000000000000000031 /* ShareExtension.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 331C807D294A63A400263BE5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1129,31 +1065,6 @@ }; name = Debug; }; - BZZ00000000000000000041 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = "$(BUZZ_DEVELOPMENT_TEAM)"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; BZZ00000000000000000012 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; @@ -1180,31 +1091,6 @@ }; name = Release; }; - BZZ00000000000000000042 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = "$(BUZZ_DEVELOPMENT_TEAM)"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; BZZ00000000000000000015 /* Profile */ = { isa = XCBuildConfiguration; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; @@ -1231,31 +1117,6 @@ }; name = Profile; }; - BZZ00000000000000000045 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = "$(BUZZ_DEVELOPMENT_TEAM)"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER).ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - }; - name = Profile; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1269,16 +1130,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BZZ0000000000000000003F /* Build configuration list for PBXNativeTarget "ShareExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BZZ00000000000000000041 /* Debug */, - BZZ00000000000000000042 /* Release */, - BZZ00000000000000000045 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { isa = XCConfigurationList; buildConfigurations = (