Thanks to visit codestin.com
Credit goes to github.com

Skip to content

OPS: ios build fix#8339

Merged
marcosrdz merged 1 commit into
masterfrom
fix-ios-build
Feb 28, 2026
Merged

OPS: ios build fix#8339
marcosrdz merged 1 commit into
masterfrom
fix-ios-build

Conversation

@Overtorment

@Overtorment Overtorment commented Feb 28, 2026

Copy link
Copy Markdown
Member

attempting to fix ios build that was apparently broken in 403573a


Note

Medium Risk
Build-signing settings are updated for multiple targets, which can fix CI/release builds but also risk breaking signing if profile names/SDK-specific overrides don’t match the build environment.

Overview
Fixes iOS build signing configuration by switching BlueWallet and WidgetsExtension Release signing from Automatic to Manual and adding SDK-specific CODE_SIGN_IDENTITY overrides (iOS, Mac Catalyst, and widget watchOS).

Adds per-SDK DEVELOPMENT_TEAM and PROVISIONING_PROFILE_SPECIFIER values (including Fastlane match App Store profiles for iOS and Catalyst, and widget profiles) to ensure consistent signing across platforms.

Written by Cursor Bugbot for commit e15311d. This will update automatically on new commits. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: watchOS signing identity swapped in Widgets Release config
    • Swapped the watchOS signing identities so Debug uses "iPhone Developer" and Release uses "iPhone Distribution", matching the pattern of the other SDK-specific identities in each configuration.

Create PR

Or push these changes by commenting:

@cursor push c656d2cc3a
Preview (c656d2cc3a)
diff --git a/ios/BlueWallet.xcodeproj/project.pbxproj b/ios/BlueWallet.xcodeproj/project.pbxproj
--- a/ios/BlueWallet.xcodeproj/project.pbxproj
+++ b/ios/BlueWallet.xcodeproj/project.pbxproj
@@ -1572,7 +1572,7 @@
 				CODE_SIGN_IDENTITY = "Apple Development";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
-				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution";
+				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Manual;
 				CURRENT_PROJECT_VERSION = 1703259999;
 				DEAD_CODE_STRIPPING = YES;
@@ -1632,7 +1632,7 @@
 				CODE_SIGN_IDENTITY = "Apple Development";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
 				"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution";
-				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution";
 				CODE_SIGN_STYLE = Manual;
 				COPY_PHASE_STRIP = NO;
 				CURRENT_PROJECT_VERSION = 1703259999;
This Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.

CODE_SIGN_STYLE = Automatic;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

watchOS signing identity swapped in Widgets Release config

High Severity

The Widgets Release configuration sets CODE_SIGN_IDENTITY[sdk=watchos*] to "iPhone Developer" (a development identity), but Release builds require a distribution identity. The other SDK targets in the same Release config correctly use distribution identities ("iPhone Distribution" for iphoneos, "Apple Distribution" for macosx), and the separate BlueWalletWatch Release config also correctly uses "iPhone Distribution" for watchOS. This will cause App Store signing failures for the watchOS widget.

Fix in Cursor Fix in Web

@GladosBlueWallet GladosBlueWallet left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran your build-fix experiment. The specimen is alive, but the containment unit is… questionable. Inline notes below.

@@ -1425,10 +1425,14 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = BlueWallet/BlueWalletRelease.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You set CODE_SIGN_STYLE = Manual but keep a global CODE_SIGN_IDENTITY = "Apple Development" while also overriding iphoneos/macosx to Distribution. That split identity tends to confuse Xcode/CI (and humans). Suggest: remove the global value and rely entirely on sdk-specific settings (or move to xcconfig/CI overrides).

CURRENT_PROJECT_VERSION = 1703259999;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = A7W54YZ4WU;
DEVELOPMENT_TEAM = "";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DEVELOPMENT_TEAM = ""; as the default is a nice way to make local builds fail in creative new ways when the conditional keys don’t apply (or when Xcode decides to ‘help’). Prefer $(DEVELOPMENT_TEAM) / inherited defaults, or leave it unset and set team/profile in CI for release signing.

PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet;
PRODUCT_NAME = BlueWallet;
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore io.bluewallet.bluewallet";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hard-coding PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*] = "match AppStore ..." bakes your private signing setup into the project file. That will break forks, contributors, and any CI that doesn’t have that exact match profile name. Strongly consider keeping this empty in-repo and injecting via CI / .xcconfig / xcodebuild args for the release lane.

CODE_SIGN_STYLE = Automatic;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Widgets Release: CODE_SIGN_IDENTITY[sdk=watchos*] = "iPhone Developer" looks wrong for a Release/App Store signing path. If the intent is Distribution, this should be the correct distribution identity for watchOS too (and ideally consistent with your provisioning profile type). Double-check this, because it’s the kind of mismatch that only fails at the worst possible moment.

PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.MarketWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore io.bluewallet.bluewallet.MarketWidget";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same concern as above: AppStore match profiles for widget targets are now hardwired into the pbxproj. If this PR is meant to fix CI, it’s better to fix CI config rather than making the repo require your exact signing environment.

@marcosrdz marcosrdz merged commit 3e280ed into master Feb 28, 2026
15 checks passed
@marcosrdz marcosrdz deleted the fix-ios-build branch February 28, 2026 23:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants