Skip to content

Miner App: Store seed phrase #467

@n13

Description

@n13

Miner app should store the seed phrase, if users enter it

This requires using FlutterSecureStorage

which in turn requires additional entitlements and code signing hurdles, as below

=====

Great question. If you add keychain-access-groups back, Developer ID Application cert alone is usually not enough for a notarized direct-download app.
You need a matching signing identity + provisioning profile + entitlements set.

What You Need

For your current distribution model (zip + notarization, not Mac App Store):

  1. Developer ID Application certificate (Quantus Labs LLC)
  2. macOS App ID for com.quantus.quantusMiner with Keychain Sharing capability enabled
  3. Developer ID provisioning profile bound to that App ID and certificate
  4. Entitlements that match profile (including keychain-access-groups)

If any one of these is mismatched, you’ll see launch failures (EPOLICY) or runtime keychain errors (-34018).

How To Create It (Apple Portal)

  1. In Apple Developer portal, create/verify App ID: com.quantus.quantusMiner
  2. Enable Keychain Sharing capability on that App ID
  3. Ensure you have a valid Developer ID Application cert
  4. Create a Developer ID provisioning profile for that App ID + cert
  5. Download and install:
    • cert in Keychain (export .p12 for CI)
    • profile for CI (embed as Contents/embedded.provisionprofile)

Project/CI Requirements

  • Sign in build with Xcode/xcodebuild using:
    • DEVELOPMENT_TEAM=8BRRAHLVW5
    • CODE_SIGN_IDENTITY=Developer ID Application
    • provisioning profile specifier set
  • In entitlements, use keychain group value that resolves correctly (e.g. via Xcode capability), not ad-hoc post-sign substitutions.
  • Avoid post-build manual codesign --entitlements ... rewriting unless you fully control profile + entitlement parity.
  • If you must re-sign, use --preserve-metadata=entitlements.

Verification Checklist

After build, verify all 3:

  • codesign -d --entitlements - "Quantus Miner.app"
  • security cms -D -i "Quantus Miner.app/Contents/embedded.provisionprofile" (entitlements inside profile)
  • spctl --assess --type execute --verbose "Quantus Miner.app"

References:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions