Skip to content

Conversation

@CharlVS
Copy link
Member

@CharlVS CharlVS commented Oct 9, 2025

Summary

  • Bumps sdk submodule to track universal macOS support and updated KDF binary sources (commit bd2dfb9).
  • Prefers universal2 macOS KDF artifacts with arm64 fallback; adds arch-thinning in Release for correct slice selection.
  • Adds device_info_plus to iOS/macOS pods and regenerates Podfiles; updates komodo_defi_framework checksums.
  • Part of the test effort for SDK’s universal macOS builds and new CDN domain.

Changes

  • SDK submodule: point to bd2dfb9 (universal macOS KDF, updated build config and download logic).
  • Binary sources: build config now uses sdk.devbuilds.komodo.earth with nebula.decker.im fallback alongside GitHub API.
  • macOS: update komodo_defi_framework podspec to prune non-target slices in Release and re-sign; prefer universal2 artifacts.
  • iOS/macOS: include device_info_plus in Pods; regenerate Podfile.lock to reflect new dependencies and komodo_defi_framework checksum.

Why

  • Enable a single macOS build that runs on Apple Silicon and Intel (universal2).
  • Migrate KDF downloads to the new CDN domain while keeping robust fallbacks.
  • Capture device metadata via device_info_plus for future UX/telemetry and platform parity.

Platform impact

  • macOS: universal2 app builds; correct runpath and slice selection.
  • iOS: no runtime changes; Pods updated to include device_info_plus.
  • Other platforms: no code changes; KDF download source prioritised via new CDN.

QA checklist

  • Build and smoke-test launch and standard wallet flows on:
    • Windows
    • Linux
    • macOS (Intel)
    • macOS (Apple Silicon)
    • iOS
    • Android
    • Web
  • Verify KDF binary fetches from new CDN (or fallback) and launches successfully.
  • On macOS, confirm the produced app runs on both Intel and Apple Silicon hosts.
  • On iOS/macOS, confirm Pods resolve cleanly; device_info_plus is linked without warnings.

Risk/rollback

  • Low-to-moderate native build risk due to CDN change and pod updates.
  • Rollback by reverting the sdk submodule pointer to the previous commit.

Notes

  • If Xcode/CocoaPods cache issues arise, run a clean and reinstall Pods.
  • Ensure Podfile.lock checksums for komodo_defi_framework are aligned on both platforms after regenerating pods.

Reference


Note

Gate Firebase/Matomo analytics by availability, adjust macOS Podfile for signing/arch, add device_info_plus to pods, update dummy Firebase plist, and bump the sdk submodule.

  • Analytics:
    • Add AnalyticsApi.isAvailable() and conditionally register providers in analytics_repo.
    • FirebaseAnalyticsApi: implement availability checks (valid FirebaseOptions, exclude Linux); skip init when unavailable.
    • MatomoAnalyticsApi: implement isAvailable() based on MATOMO_URL/MATOMO_SITE_ID.
  • macOS build/config:
    • macos/Podfile: add CocoaPods CDN source; enforce hardened runtime and timestamped signing via OTHER_CODE_SIGN_FLAGS; set ARCHS=$(ARCHS_STANDARD) and ONLY_ACTIVE_ARCH Debug-only.
    • macos/Runner/GoogleService-Info.plist: replace placeholders with dummy values.
  • Dependencies:
    • Add device_info_plus to iOS/macOS Pods; regenerate locks; update komodo_defi_framework checksums.
  • Submodule:
    • Update sdk pointer to ffa7663.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 9, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/sdk-universal-macos-cdn-pods

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Oct 9, 2025

Visit the preview URL for this PR (updated for commit ab5437a):

https://walletrc--pull-3175-merge-mrgo5o01.web.app

(expires Wed, 22 Oct 2025 17:03:44 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: f66a4ff03faa546f12f0ae5a841bd9eff2714dcc

@CharlVS CharlVS requested a review from DeckerSU October 9, 2025 18:31
@CharlVS CharlVS changed the title chore(sdk): bump to universal macOS KDF + new CDN; add device_info_plus; regen pods chore(sdk): bump to universal macOS KDF + new CDN; regen pods Oct 9, 2025
@CharlVS CharlVS self-assigned this Oct 9, 2025
@CharlVS CharlVS requested a review from smk762 October 9, 2025 18:31
@CharlVS CharlVS added the QA Ready for QA Testing label Oct 9, 2025
@CharlVS CharlVS added this to the v0.9.3 Release milestone Oct 9, 2025
@DeckerSU
Copy link
Contributor

DeckerSU commented Oct 9, 2025

1. I see that the matching_pattern for macos here does not include the kdf_[a-f0-9]{7,40}-mac-universal variant, so universal binaries from https://sdk.devbuilds.komodo.earth/, like kdf_347d8fc-mac-universal.zip, will be ignored. This needs to be fixed. Also, the mm2-...something...zip naming scheme will no longer be used, since the Jenkins release pipelines are now aligned with our GA CI/CD and will follow its naming convention. Please review the suggestions here #3164 (comment) and make the related changes.
2. I can also confirm that the macOS build now generates universal2 binaries:

file ./Komodo\ Wallet.app/Contents/Frameworks/komodo_defi_framework.framework/Resources/kdf_resources.bundle/Contents/Resources/kdf 
./Komodo Wallet.app/Contents/Frameworks/komodo_defi_framework.framework/Resources/kdf_resources.bundle/Contents/Resources/kdf: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE|HAS_TLV_DESCRIPTORS>] [arm64]
...
file ./Komodo\ Wallet.app/Contents/MacOS/Komodo\ Wallet
./Komodo Wallet.app/Contents/MacOS/Komodo Wallet: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|BINDS_TO_WEAK|PIE>] [arm64]

So it should run on both arm64 and x86_64 without any issues. For full testing we still need macOS code signing. It would also be great if someone could add my Apple account to the WDS9WYN969 development team. I am not in that team yet, so I cannot build the app using Xcode auto-provisioning with that team, which creates some inconvenience.

@CharlVS
Copy link
Member Author

CharlVS commented Oct 10, 2025

Thanks for the review, @DeckerSU.

The WDS9WYN969 team is not used after the unified release afaik. I will get an update for you.

@CharlVS
Copy link
Member Author

CharlVS commented Oct 10, 2025

@DeckerSU please check out the latest changes.

@DeckerSU
Copy link
Contributor

The WDS9WYN969 team is not used after the unified release afaik. I will get an update for you.

It uses WDS9WYN969 by default, JFYI.

@DeckerSU
Copy link
Contributor

@DeckerSU please check out the latest changes.

Looks good, but I expected all occurrences of the mm2-...something...-.zip patterns to be removed in build_config.json, not just for macOS. In other words, all old patterns starting with mm2_ can be safely removed, since no new KDF releases will use them.

@smk762
Copy link
Collaborator

smk762 commented Oct 13, 2025

Confirmed login/swap functionality in linux, web, windows, and android.
Currently unable to create ios/macos binaries for testing. Will await their provision, or someone else's confirmation fo ios/macos functionality (my macmini is pre-silicon).

…4 guidance

Use $(ARCHS_STANDARD) to build universal (arm64 + x86_64).

Note: Failed builds only showed a warning for flutter_secure_storage; CI may fail-fast on the first problematic pod and not evaluate all pods.

cc @smk762
cursor[bot]

This comment was marked as outdated.

… for others

Align pods Debug with local-arch-only preference; keep Profile/Release universal via ONLY_ACTIVE_ARCH=NO.

Refs: review note on inconsistent Debug arch settings; this ensures faster local builds while preserving universal builds for non-Debug.
…OS configs

- Adjust analytics APIs (Firebase & Matomo)
- Update macOS GoogleService-Info.plist and Xcode project settings
- Sync sdk submodule/dir changes
cursor[bot]

This comment was marked as outdated.

Revert changes which weren’t supposed to be committed
@smk762
Copy link
Collaborator

smk762 commented Oct 16, 2025

Confirmed login/swap functionality in pre-silicon MacOS via #3185
iOS confirmation pending binaries or dev confirmation. Will retry ios build locally later today, but it has not been friendly to me lately.

@CharlVS CharlVS marked this pull request as draft October 20, 2025 11:10
CharlVS added a commit that referenced this pull request Oct 20, 2025
…n signing support for standalone distribution (#3185)

* change product bundle identifier (com.komodo.wallet)

* Set sdk submodule to chore/sdk-universal-macos-cdn-pods

#3175

* XCode: add production scheme and corresponding configurations

* make Release-production sign with Developer ID Application

* sdk: temp following submodules for patch-macos-release-profile

new https://github.com/KomodoPlatform/komodo-defi-sdk-flutter/tree/patch-macos-release-profile
branch for macos Developer ID Application release preparations.

* sdk: update submodules

* add OTHER_CODE_SIGN_FLAGS --options=runtime --timestamp

* fix developement team for Release-production

after this - kdf binary is signed (but still without timestamp)

* fix codesigning for Pods (now CP-User signing in Pods receive correct env)

'Release-production'=> :release, - CocoaPods will create this config in Pods project

* add --options=runtime --timestamp for codesigning pods

* sdk: pin version with code_sign_if_enabled in cp-user sh script

* sdk: bump to new location of KDF binary under MacOS

* macos: XCode project update / Pods_Runner.framework in Frameworks

* build(macos): set CODE_SIGN_INJECT_BASE_ENTITLEMENTS to NO for Release

need to remove below from Entitlements
"com.apple.security.get-task-allow" = 1;

To check:
codesign -d --entitlements :- "build/macos/Build/Products/Release-production/Komodo Wallet.app" | plutil -p -

Read more:
https://developer.apple.com/documentation/security/resolving-common-notarization-issues#3087731

* update .gitignore to exclude dist/ directory

* feat: add make-dmg.sh script for building DMG files on macOS

This script automates the process of creating a DMG file for the Komodo Wallet application, including setting up the Finder layout and handling background images. It requires macOS and utilizes hdiutil, osascript, and ditto for the operations.

* feat: add test-sign-timestamp.sh script for verifying code signing and timestamping on macOS

This script checks the code signing and timestamping of the Komodo Wallet application, providing feedback on the presence of timestamps and the authority of the timestamping service. It simplifies the verification process for macOS app builds.

* feat: enhance make-dmg.sh script with default app path and usage instructions

* chore: update Podfile.lock to include device_info_plus and update dependencies

* chore: update subproject commit reference in sdk

* feat: add README.md for contrib scripts and enhance test-sign-timestamp.sh

* chore(sdk): roll submodule to latest dev

- Update .gitmodules to track dev
- Sync sdk to origin/dev

---------

Co-authored-by: Nitride <[email protected]>
@CharlVS CharlVS modified the milestones: v0.9.3 Release, v0.9.4 Nov 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

QA Ready for QA Testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants