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

Skip to content

OPS: Catalyst#8309

Merged
GladosBlueWallet merged 39 commits into
masterfrom
cccc
Feb 26, 2026
Merged

OPS: Catalyst#8309
GladosBlueWallet merged 39 commits into
masterfrom
cccc

Conversation

@marcosrdz

@marcosrdz marcosrdz commented Feb 18, 2026

Copy link
Copy Markdown
Member

Builds app for macOS, creates a DMG file with instructions on how to open the app due to it not being notarized in the process.

A future PR will notarize the build.

@marcosrdz marcosrdz self-assigned this Feb 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds Mac Catalyst build support to BlueWallet, enabling the iOS app to be built and distributed as a native macOS application. The implementation includes a new GitHub Actions workflow for building Mac Catalyst binaries, fastlane lanes for build automation and TestFlight distribution, and Xcode project configuration changes to support automatic code signing.

Changes:

  • Added GitHub Actions workflow for building Mac Catalyst apps triggered by PR labels (mac-dmg, testflight)
  • Implemented fastlane lanes for building Mac Catalyst apps, creating DMGs with multilingual README files, and uploading to TestFlight
  • Modified Xcode project to use automatic code signing instead of manual, removing SDK-specific provisioning profile configurations

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 13 comments.

File Description
.github/workflows/build-mac-catalyst.yml New workflow for building Mac Catalyst apps, triggered by labels on PRs or manual dispatch, with conditional TestFlight upload
fastlane/Fastfile Added build_catalyst_app_lane and upload_catalyst_to_testflight lanes, updated authentication skip logic to include new lanes
ios/BlueWallet.xcodeproj/project.pbxproj Simplified code signing from Manual to Automatic, removed SDK-specific provisioning profiles, added empty input/output paths to CocoaPods phases

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/build-mac-catalyst.yml Outdated
Comment thread fastlane/Fastfile Outdated
Comment thread fastlane/Fastfile Outdated
Comment on lines +532 to +537
sh("codesign --verify --deep --strict '#{catalyst_app_path}'")
UI.success("App signed and verified")
else
# Ad-hoc sign so macOS doesn't treat the app as "damaged"
UI.message("Ad-hoc signing app to avoid Gatekeeper quarantine issues...")
sh("codesign --deep --force --sign - '#{catalyst_app_path}'")

Copilot AI Feb 22, 2026

Copy link

Choose a reason for hiding this comment

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

The catalyst_app_path variable is used in shell commands without proper escaping. While it's already wrapped in single quotes, it would be safer to use proper escaping or avoid shell interpolation entirely.

Copilot uses AI. Check for mistakes.
Comment thread fastlane/Fastfile Outdated
FileUtils.mkdir_p(dmg_staging)
FileUtils.cp_r(catalyst_app_path, dmg_staging)

sh("ln -s /Applications '#{dmg_staging}/Applications'")

Copilot AI Feb 22, 2026

Copy link

Choose a reason for hiding this comment

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

The sh command uses an unescaped dmg_staging path which could cause issues if the path contains special characters. The path is already wrapped in single quotes, but for better safety, consider using proper escaping.

Copilot uses AI. Check for mistakes.
Comment thread fastlane/Fastfile Outdated
UI.message("Added multilingual README with first-launch instructions to DMG")

FileUtils.rm_f(dmg_path)
sh("hdiutil create -volname 'BlueWallet' -srcfolder '#{dmg_staging}' -ov -format UDZO '#{dmg_path}'")

Copilot AI Feb 22, 2026

Copy link

Choose a reason for hiding this comment

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

The sh command uses unescaped variables dmg_staging and dmg_path which could cause issues if the paths contain special characters. While they are wrapped in single quotes, for better safety consider using proper escaping.

Copilot uses AI. Check for mistakes.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@copilot open a new pull request to apply changes based on this feedback

Comment on lines +105 to +117
- name: Upload to TestFlight
if: success() && steps.labels.outputs.upload_testflight == 'true'
run: bundle exec fastlane ios upload_catalyst_to_testflight
env:
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
APPLE_API_ISSUER_ID: ${{ secrets.APPLE_API_ISSUER_ID }}
APPLE_API_KEY_PATH: ${{ secrets.APPLE_API_KEY_PATH }}
APPLE_API_KEY_CONTENT: ${{ secrets.APPLE_API_KEY_CONTENT }}
CATALYST_TEAM_ID: ${{ secrets.CATALYST_TEAM_ID }}
TEAM_ID: ${{ secrets.TEAM_ID }}
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
LATEST_COMMIT_MESSAGE: ${{ github.event.pull_request.title || 'Manual build' }}

Copilot AI Feb 22, 2026

Copy link

Choose a reason for hiding this comment

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

The step creates the appstore_api_key.json file, but the environment variables APPLE_API_KEY_ID, APPLE_API_ISSUER_ID, and APPLE_API_KEY_CONTENT are not being set. The upload_catalyst_to_testflight lane expects to find the API key file at ./appstore_api_key.json (as seen in line 722 of the Fastfile), but this step only sets APPLE_API_KEY_PATH which is not used.

Add a step before this to create the API key JSON file from the secret, similar to how it's done in .github/workflows/build-ios-release-pullrequest.yml:495.

Copilot uses AI. Check for mistakes.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@copilot open a new pull request to apply changes based on this feedback

Comment thread .github/workflows/build-mac-catalyst.yml Outdated
Comment thread .github/workflows/build-mac-catalyst.yml Outdated
Comment thread fastlane/Fastfile Outdated
Comment thread fastlane/Fastfile Outdated
@marcosrdz

Copy link
Copy Markdown
Member Author

@copilot open a new pull request to apply changes based on the comments in this thread

Copilot AI commented Feb 22, 2026

Copy link
Copy Markdown
Contributor

@marcosrdz I've opened a new pull request, #8322, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI commented Feb 22, 2026

Copy link
Copy Markdown
Contributor

@marcosrdz I've opened a new pull request, #8323, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI commented Feb 22, 2026

Copy link
Copy Markdown
Contributor

@marcosrdz I've opened a new pull request, #8324, to work on those changes. Once the pull request is ready, I'll request review from you.

@github-actions

Copy link
Copy Markdown

Mac Catalyst Build

The Mac Catalyst DMG is ready for download:

Download BlueWallet-Mac-Catalyst.dmg

First launch: Right-click the app → Open → click Open in the dialog. You only need to do this once.

Built from 59b24272ecf431318cc850820a4ba6e5b5aa8924 | View workflow run

@GladosBlueWallet

Copy link
Copy Markdown
Collaborator

Wake the fuck up samurai, we have PRs to merge

image

[all PRs for @Overtorment] https://github.com/BlueWallet/BlueWallet/pulls/review-requested/Overtorment

@Overtorment

Copy link
Copy Markdown
Member

@cursor review pls

@GladosBlueWallet GladosBlueWallet merged commit 248182c into master Feb 26, 2026
12 of 14 checks passed
@GladosBlueWallet

Copy link
Copy Markdown
Collaborator

Unbelievable. You, [subject name here], must be the pride of [subject hometown here]!

@GladosBlueWallet GladosBlueWallet deleted the cccc branch February 26, 2026 01:21
@Overtorment Overtorment mentioned this pull request Feb 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants