diff --git a/.gitignore b/.gitignore index 754e0ef05a..d40a175d03 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,5 @@ venv/ .fvm/ /macos/build AGENTS_1.md +# .dmg Release +dist/ \ No newline at end of file diff --git a/contrib/README.md b/contrib/README.md new file mode 100644 index 0000000000..05076d59ef --- /dev/null +++ b/contrib/README.md @@ -0,0 +1,147 @@ +# Contrib Scripts + +This directory contains utility scripts for building, packaging, and testing the Komodo Wallet application. + +## Scripts Overview + +### `make-dmg.sh` +Creates a professional DMG installer for macOS applications. + +**Purpose:** Builds a disk image (.dmg) file with proper layout for distributing macOS applications. + +**Features:** +- Creates a disk image with the application bundle +- Adds a shortcut to the Applications folder +- Supports custom background images +- Configures proper Finder window layout and icon positioning +- Compresses the final output + +**Usage:** +```bash +# Use default app path +./make-dmg.sh + +# Or specify custom parameters +APP="build/.../Komodo Wallet.app" \ +VOL="Komodo Wallet" \ +OUT="dist/KomodoWallet.dmg" \ +BG="assets/dmg_background.png" \ +./make-dmg.sh +``` + +**Default Parameters:** +- `APP`: `build/macos/Build/Products/Release-production/Komodo Wallet.app` +- `VOL`: `Komodo Wallet` +- `OUT`: `dist/KomodoWallet.dmg` +- `BG`: (optional background image) +- `ICON_SIZE`: `128` +- `WIN_W`: `530` (Finder window width) +- `WIN_H`: `400` (Finder window height) + +**Requirements:** macOS, hdiutil, osascript, ditto + +--- + +### `test-sign-timestamp.sh` +Checks code signing and timestamping for macOS applications. + +**Purpose:** Verifies that all executable Mach-O files in the app bundle are properly signed and timestamped. + +**Features:** +- Scans all executable files in the app bundle +- Checks for valid code signatures +- Verifies timestamping (Apple's timestamp authority) +- Provides colored output for easy reading +- Reports missing timestamps + +**Usage:** +```bash +# Use default app path +./test-sign-timestamp.sh + +# Or specify custom app path +./test-sign-timestamp.sh "path/to/your/app.app" +``` + +**Default App Path:** `build/macos/Build/Products/Release-production/Komodo Wallet.app` + +**Requirements:** macOS, codesign utility + + +## Release Build and Notarization Process for macOS (Non-App Store Distribution) + +To build and notarize the macOS app for release (for distribution outside the Mac App Store), follow these steps. +Note: The `--flavor production` flag is mandatory in the build command to ensure correct provisioning for signing with a Developer ID Application certificate and for proper notarization/distribution outside the App Store. + +```bash +# 1. Clean the project and fetch dependencies +flutter clean +flutter pub get --enforce-lockfile +pushd macos; pod deintegrate; pod install; popd # Generating Pods project + +# 2. Fetch all required artifacts (this runs komodo_wallet_build_transformer) +flutter build web --no-pub -v + +# 3. Build the macOS release application (ensure --flavor production is present) +flutter build macos --no-pub --release -v \ + --dart-define=COMMIT_HASH= \ + --dart-define=FEEDBACK_API_KEY= \ + --dart-define=FEEDBACK_PRODUCTION_URL= \ + --dart-define=TRELLO_BOARD_ID= \ + --dart-define=TRELLO_LIST_ID= \ + --dart-define=MATOMO_URL= \ + --dart-define=MATOMO_SITE_ID= \ + --flavor production +``` +Replace the `<...>` placeholders above with your actual values. + +To view app entitlements used in the resulting .app: +```bash +codesign -d --entitlements :- "build/macos/Build/Products/Release-production/Komodo Wallet.app" | plutil -p - +``` + +Package the application bundle as a ZIP archive (required by notary service): +```bash +APP="build/macos/Build/Products/Release-production/Komodo Wallet.app" +ZIP="KomodoWallet.zip" +ditto -c -k --keepParent "$APP" "$ZIP" +``` + +Submit the ZIP archive to Apple Notary Service: +```bash +xcrun notarytool submit "$ZIP" --keychain-profile "AC_NOTARY" --wait +``` + +Check notarization status for a specific request: +```bash +xcrun notarytool info \ + --apple-id "" \ + --team-id "" \ + --password "" +``` + +Download notarization log: +```bash +xcrun notarytool log --keychain-profile AC_NOTARY > notarization_errors.json +``` + +If there were no errors and the submission status was `Accepted`, you can proceed with the following steps to staple and validate the app: + +```bash +xcrun stapler staple "$APP" +xcrun stapler validate "$APP" +spctl --assess --type execute -vv "$APP" # now the status should be accepted +``` + + + + + + + + + + + + + diff --git a/contrib/make-dmg.sh b/contrib/make-dmg.sh new file mode 100755 index 0000000000..ec26c01f30 --- /dev/null +++ b/contrib/make-dmg.sh @@ -0,0 +1,228 @@ +#!/usr/bin/env bash +# make_dmg.sh — Build DMG with layout «App ⇢ Applications» +# +# This script creates a professional DMG installer for macOS applications. +# It creates a disk image with: +# - The application bundle +# - A shortcut to Applications folder +# - Custom background image (optional) +# - Proper Finder window layout and icon positioning +# - Compressed final output +# +# Requires: macOS, hdiutil, osascript, ditto. + +set -euo pipefail + +# ------------------------ PARAMETERS ------------------------ +# Default app path +DEFAULT_APP="build/macos/Build/Products/Release-production/Komodo Wallet.app" + +APP="${APP:-$DEFAULT_APP}" # Path to .app (uses default if not specified) +VOL="${VOL:-Komodo Wallet}" # Volume/window name for DMG +OUT="${OUT:-dist/KomodoWallet.dmg}" # Path to output .dmg +BG="${BG:-}" # Path to PNG background (optional) +ICON_SIZE="${ICON_SIZE:-128}" # Icon size +WIN_W="${WIN_W:-530}" # Finder window width in DMG +WIN_H="${WIN_H:-400}" # Finder window height in DMG +APP_X="${APP_X:-120}" # .app icon position (x) +APP_Y="${APP_Y:-200}" # .app icon position (y) +APPS_X="${APPS_X:-400}" # Applications shortcut position (x) +APPS_Y="${APPS_Y:-200}" # Applications shortcut position (y) + +usage() { + cat <&2 "ERROR: .app not found: ${APP}"; exit 1; } + +APP_BASENAME="$(basename "${APP}")" +OUT_DIR="$(dirname "${OUT}")" +mkdir -p "${OUT_DIR}" + +# Work in local tmp inside project — fewer TCC issues +TMPROOT="${TMPROOT:-$PWD/.dmg_tmp}" +mkdir -p "$TMPROOT" +TMPDIR="$(mktemp -d "$TMPROOT/tmp.XXXXXXXX")" +STAGING="${TMPDIR}/staging" +mkdir -p "${STAGING}" + +cleanup() { + set +e + if [[ -n "${MOUNT_POINT:-}" && -d "${MOUNT_POINT:-}" ]]; then + hdiutil detach "${MOUNT_POINT}" -quiet || true + fi + rm -rf "${TMPDIR}" >/dev/null 2>&1 || true +} +trap cleanup EXIT + +echo "==> Preparing staging" +cp -R "${APP}" "${STAGING}/" +ln -s /Applications "${STAGING}/Applications" + +if [[ -n "${BG}" ]]; then + echo "==> Adding background ${BG}" + mkdir -p "${STAGING}/.background" + cp "${BG}" "${STAGING}/.background/background.png" + chflags hidden "${STAGING}/.background" || true +fi + +# --------- IMAGE SIZE CALCULATION (with margin) ---------- +echo "==> Estimating image size" +# Staging size in kilobytes +SIZE_KB=$(du -sk "${STAGING}" | awk '{print $1}') +# Add ~30% margin + minimum 20 MB +HEADROOM_KB=$(( SIZE_KB / 3 )) +[[ ${HEADROOM_KB} -lt 20480 ]] && HEADROOM_KB=20480 +TOTAL_KB=$(( SIZE_KB + HEADROOM_KB )) +# Round to megabytes +TOTAL_MB=$(( (TOTAL_KB + 1023) / 1024 )) +echo " Estimated size: ${TOTAL_MB} MiB" + +TMP_DMG="${TMPDIR}/tmp.dmg" +FINAL_DMG="${OUT}" + +echo "==> Creating empty RW DMG (${TOTAL_MB} MiB)" +hdiutil create -verbose \ + -size "${TOTAL_MB}m" \ + -fs HFS+J -volname "${VOL}" \ + "${TMP_DMG}" + +# if volume with same name is mounted — unmount it +if [[ -d "/Volumes/${VOL}" ]]; then + hdiutil detach "/Volumes/${VOL}" -force -quiet || true +fi + +echo "==> Mounting DMG" +MOUNT_POINT="${TMPDIR}/mnt" +mkdir -p "${MOUNT_POINT}" + +# Mount directly to our directory +if ! hdiutil attach "${TMP_DMG}" \ + -readwrite -noverify -noautoopen \ + -mountpoint "${MOUNT_POINT}" >/dev/null; then + echo >&2 "ERROR: failed to mount DMG (attach returned error)" + exit 1 +fi + +# Check that it's actually mounted +if [[ ! -d "${MOUNT_POINT}" || ! -e "${MOUNT_POINT}/." ]]; then + echo >&2 "ERROR: failed to mount DMG (mountpoint not accessible)" + exit 1 +fi +echo " Mounted at: ${MOUNT_POINT}" + +# --------- CONTENT COPYING (DITTO) ---------- +echo "==> Copying content to volume (ditto)" +# Application +ditto "${STAGING}/${APP_BASENAME}" "${MOUNT_POINT}/${APP_BASENAME}" +# Applications shortcut (recreate on volume side) +rm -f "${MOUNT_POINT}/Applications" 2>/dev/null || true +ln -s /Applications "${MOUNT_POINT}/Applications" +# Background (if exists) +if [[ -f "${STAGING}/.background/background.png" ]]; then + mkdir -p "${MOUNT_POINT}/.background" + ditto "${STAGING}/.background/background.png" "${MOUNT_POINT}/.background/background.png" + chflags hidden "${MOUNT_POINT}/.background" || true +fi + +# --------- FINDER WINDOW STYLING ---------- +echo "==> Setting up Finder layout" +sleep 2 # give Finder a bit more time to see the mounted volume +osascript < Unmounting DMG" +for i in {1..5}; do + if hdiutil detach "${MOUNT_POINT}" -quiet; then + DETACHED=1 + break + fi + echo " Retry attempt (${i})..." + sleep 1 +done +[[ -z "${DETACHED:-}" ]] && { echo >&2 "ERROR: failed to unmount ${MOUNT_POINT}"; exit 1; } + +# Remove old DMG if it already exists +if [[ -f "${FINAL_DMG}" ]]; then + echo "==> Removing old file ${FINAL_DMG}" + rm -f "${FINAL_DMG}" +fi + +echo "==> Converting to compressed UDZO" +hdiutil convert -verbose "${TMP_DMG}" -format UDZO -imagekey zlib-level=9 -o "${FINAL_DMG}" + +echo "==> Done: ${FINAL_DMG}" \ No newline at end of file diff --git a/contrib/test-sign-timestamp.sh b/contrib/test-sign-timestamp.sh new file mode 100755 index 0000000000..b1f3f084d4 --- /dev/null +++ b/contrib/test-sign-timestamp.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# test-sign-timestamp.sh — Check code signing and timestamping for macOS app +# Usage: ./contrib/test-sign-timestamp.sh [APP_PATH] +# If APP_PATH is not provided, uses default build path + +set -euo pipefail + +# Default app path +DEFAULT_APP="build/macos/Build/Products/Release-production/Komodo Wallet.app" + +# Parse command line arguments +APP="${1:-$DEFAULT_APP}" + +# Color codes for output +RED='\033[0;31m'; GRN='\033[0;32m'; YEL='\033[0;33m'; BLU='\033[0;34m'; NC='\033[0m' + +# Welcome message +echo -e "${BLU}========================================${NC}" +echo -e "${BLU} Code Signing & Timestamp Checker${NC}" +echo -e "${BLU}========================================${NC}" +echo "" +echo -e "Checking app: ${YEL}$APP${NC}" +echo "" + +# Check if app exists +if [[ ! -d "$APP" ]]; then + echo -e "${RED}ERROR: App not found at: $APP${NC}" + echo "" + echo "Usage: $0 [APP_PATH]" + echo " APP_PATH - Path to the .app bundle to check" + echo " If not provided, uses: $DEFAULT_APP" + exit 1 +fi + +# Searching for all executable Mach-O files (+x) +while IFS= read -r -d '' f; do + if file -b "$f" | grep -q 'Mach-O'; then + echo "==> $f" + INFO="$(LC_ALL=C /usr/bin/codesign -d --verbose=4 "$f" 2>&1 || true)" + if echo "$INFO" | grep -q '^[[:space:]]*Timestamp='; then + TS="$(echo "$INFO" | sed -n 's/^[[:space:]]*Timestamp=//p' | head -n1)" + echo -e " ${GRN}✔ Signed + timestamp${NC} ($TS)" + + # On newer systems, the 'Timestamp Authority=' line is often missing. + # If you really need to check the TSA, look for 'Apple' in the certificate chain. + if echo "$INFO" | grep -q 'Authority=.*Apple'; then + : # All good, timestamp is most likely from Apple + else + echo -e " ${YEL}▲ Timestamp present, but TSA line not shown by 'codesign' (this is normal).${NC}" + fi + else + echo -e " ${RED}✖ Signed, but NO timestamp${NC}" + fi + fi +done < <(find "$APP" -type f -perm -111 -print0) +# Additional verification for the entire .app bundle: +echo "" +echo -e "${BLU}Performing deep signature verification of the .app bundle...${NC}" +/usr/bin/codesign --verify --deep --strict --verbose=2 "$APP" + +echo "" +echo -e "${BLU}Gatekeeper assessment (spctl) for the .app bundle...${NC}" +/usr/sbin/spctl --assess --type execute -vv "$APP" + +echo "" +echo -e "${BLU}========================================${NC}" +echo -e "${BLU} Check completed${NC}" +echo -e "${BLU}========================================${NC}" diff --git a/macos/Podfile b/macos/Podfile index fb9b4184a4..c42286ed18 100644 --- a/macos/Podfile +++ b/macos/Podfile @@ -16,6 +16,7 @@ project 'Runner', { 'Debug' => :debug, 'Profile' => :release, 'Release' => :release, + 'Release-production'=> :release, } def flutter_root @@ -52,4 +53,17 @@ post_install do |installer| config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = deployment_target end end + + team_id = '8HPBYKKKQP' + installer.pods_project.targets.each do |t| + t.build_configurations.each do |cfg| + next unless cfg.name == 'Release-production' + cfg.build_settings['DEVELOPMENT_TEAM'] = team_id + cfg.build_settings['CODE_SIGN_STYLE'] = 'Manual' + cfg.build_settings['CODE_SIGN_IDENTITY[sdk=macosx*]'] = 'Developer ID Application' + cfg.build_settings['CODE_SIGNING_ALLOWED'] = 'YES' + cfg.build_settings['CODE_SIGNING_REQUIRED'] = 'YES' + cfg.build_settings['OTHER_CODE_SIGN_FLAGS[sdk=macosx*]'] = '--options=runtime --timestamp' + end + end end diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 0345a714f6..37e54b7986 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -1,4 +1,6 @@ PODS: + - device_info_plus (0.0.1): + - FlutterMacOS - file_picker (0.0.1): - FlutterMacOS - Firebase/Analytics (11.15.0): @@ -136,6 +138,7 @@ PODS: - FlutterMacOS DEPENDENCIES: + - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) - file_picker (from `Flutter/ephemeral/.symlinks/plugins/file_picker/macos`) - firebase_analytics (from `Flutter/ephemeral/.symlinks/plugins/firebase_analytics/macos`) - firebase_core (from `Flutter/ephemeral/.symlinks/plugins/firebase_core/macos`) @@ -168,6 +171,8 @@ SPEC REPOS: - PromisesObjC EXTERNAL SOURCES: + device_info_plus: + :path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos file_picker: :path: Flutter/ephemeral/.symlinks/plugins/file_picker/macos firebase_analytics: @@ -204,34 +209,35 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/window_size/macos SPEC CHECKSUMS: - file_picker: 7584aae6fa07a041af2b36a2655122d42f578c1a + device_info_plus: 1b14eed9bf95428983aed283a8d51cce3d8c4215 + file_picker: e716a70a9fe5fd9e09ebc922d7541464289443af Firebase: d99ac19b909cd2c548339c2241ecd0d1599ab02e - firebase_analytics: 3091f96bd17636f6da5092a4701ffacf67c6e455 - firebase_core: 7667f880631ae8ad10e3d6567ab7582fe0682326 + firebase_analytics: c6a3f80cf2e8681b4e6b3402162acf116c4d3a57 + firebase_core: 2af692f4818474ed52eda1ba6aeb448a6a3352af FirebaseAnalytics: 6433dfd311ba78084fc93bdfc145e8cb75740eae FirebaseCore: efb3893e5b94f32b86e331e3bd6dadf18b66568e FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 - flutter_inappwebview_macos: c2d68649f9f8f1831bfcd98d73fd6256366d9d1d - flutter_secure_storage_darwin: ce237a8775b39723566dc72571190a3769d70468 - flutter_window_close: bd408414cbbf0d39f0d3076c4da0cdbf1c527168 + flutter_inappwebview_macos: bdf207b8f4ebd58e86ae06cd96b147de99a67c9b + flutter_secure_storage_darwin: 12d2375c690785d97a4e586f15f11be5ae35d5b0 + flutter_window_close: a0f4f388e956ebafa866e3e171ce837c166eab9c FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 GoogleAppMeasurement: 700dce7541804bec33db590a5c496b663fbe2539 GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 - komodo_defi_framework: 725599127b357521f4567b16192bf07d7ad1d4b0 - local_auth_darwin: d2e8c53ef0c4f43c646462e3415432c4dab3ae19 - mobile_scanner: 9157936403f5a0644ca3779a38ff8404c5434a93 + komodo_defi_framework: 73bb4b6190e827bfda4609700d59e64e0aa60fb7 + local_auth_darwin: fa4b06454df7df8e97c18d7ee55151c57e7af0de + mobile_scanner: 77265f3dc8d580810e91849d4a0811a90467ed5e nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: f0052d280d17aa382b932f399edf32507174e870 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc - shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 - url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673 - video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b - window_size: 4bd15034e6e3d0720fd77928a7c42e5492cfece9 + share_plus: 1fa619de8392a4398bfaf176d441853922614e89 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 + video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 + window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 -PODFILE CHECKSUM: d064900e78ded0efef7fcc0db57cbf4bc2487624 +PODFILE CHECKSUM: a890bc27443c296eb8ca4510f54c35d2e0f66ed0 COCOAPODS: 1.16.2 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index c45132ec07..35beafb641 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ /* Begin PBXBuildFile section */ 0FECB4522D11D6AF00F11CB7 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 1E230071C7D8F340D13AB3D8 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 378AA469DFC01E26ECFD0219 /* Pods_Runner.framework */; }; 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; @@ -33,7 +34,6 @@ D6F2739D2710691C005CC4F3 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D6F2739C2710690C005CC4F3 /* libc++.tbd */; platformFilter = maccatalyst; }; D6F2739F27106934005CC4F3 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D6F2739E2710692B005CC4F3 /* libresolv.tbd */; platformFilter = maccatalyst; }; D6F273A12710694D005CC4F3 /* libSystem.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D6F273A027106944005CC4F3 /* libSystem.tbd */; platformFilter = maccatalyst; }; - F0C41ACB9674358D4A6C7838 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBED5C6C4A1CA4CE9B9F2193 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -74,19 +74,22 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 366D2EBDC3400ABABE59124C /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 378AA469DFC01E26ECFD0219 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 38B3D86EA829F8A1CBE530C1 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 42C68977A49A0D4061E4C701 /* Pods-Runner.debug-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-production.xcconfig"; sourceTree = ""; }; + 4D54E611D842457DB7F47DA6 /* Pods-Runner.release-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-production.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - AC3362C2E5FD3245C1DF46DE /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 9AEFD27D4CEB10A80A08C41F /* Pods-Runner.profile-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-production.xcconfig"; sourceTree = ""; }; BC509CF635E02824A671F07F /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; - CBED5C6C4A1CA4CE9B9F2193 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C8AFAF26E542485ADE0EC368 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; D60A10D42711A1B300EB58E3 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; D60A10D62711A1D000EB58E3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; D6B034EF2711A360007FC221 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; D6F2739C2710690C005CC4F3 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; D6F2739E2710692B005CC4F3 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; D6F273A027106944005CC4F3 /* libSystem.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libSystem.tbd; path = usr/lib/libSystem.tbd; sourceTree = SDKROOT; }; - EB312012C5DDB0C61F2B00DD /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - F3467061AB9E6B9F454F9E55 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -98,9 +101,9 @@ D6F2739D2710691C005CC4F3 /* libc++.tbd in Frameworks */, D60A10D72711A1D000EB58E3 /* SystemConfiguration.framework in Frameworks */, D60A10D52711A1B300EB58E3 /* CoreFoundation.framework in Frameworks */, - F0C41ACB9674358D4A6C7838 /* Pods_Runner.framework in Frameworks */, D6F273A12710694D005CC4F3 /* libSystem.tbd in Frameworks */, D6F2739F27106934005CC4F3 /* libresolv.tbd in Frameworks */, + 1E230071C7D8F340D13AB3D8 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -176,9 +179,12 @@ 3931C7C5835EE32D50936E8A /* Pods */ = { isa = PBXGroup; children = ( - AC3362C2E5FD3245C1DF46DE /* Pods-Runner.debug.xcconfig */, - EB312012C5DDB0C61F2B00DD /* Pods-Runner.release.xcconfig */, - F3467061AB9E6B9F454F9E55 /* Pods-Runner.profile.xcconfig */, + C8AFAF26E542485ADE0EC368 /* Pods-Runner.debug.xcconfig */, + 42C68977A49A0D4061E4C701 /* Pods-Runner.debug-production.xcconfig */, + 366D2EBDC3400ABABE59124C /* Pods-Runner.release.xcconfig */, + 4D54E611D842457DB7F47DA6 /* Pods-Runner.release-production.xcconfig */, + 38B3D86EA829F8A1CBE530C1 /* Pods-Runner.profile.xcconfig */, + 9AEFD27D4CEB10A80A08C41F /* Pods-Runner.profile-production.xcconfig */, ); path = Pods; sourceTree = ""; @@ -192,7 +198,7 @@ D6F273A027106944005CC4F3 /* libSystem.tbd */, D6F2739E2710692B005CC4F3 /* libresolv.tbd */, D6F2739C2710690C005CC4F3 /* libc++.tbd */, - CBED5C6C4A1CA4CE9B9F2193 /* Pods_Runner.framework */, + 378AA469DFC01E26ECFD0219 /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -204,13 +210,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - A4BFE8B57517ABC4F933089B /* [CP] Check Pods Manifest.lock */, + 3069B72540C3B7C1D094DAEB /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - CC7BBD7412CA68EC0C78C62C /* [CP] Embed Pods Frameworks */, + 4F2BCCFAF7F3B06A5F612111 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -235,7 +241,6 @@ 33CC10EC2044A3C60003C045 = { CreatedOnToolsVersion = 9.2; LastSwiftMigration = 1300; - ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.Sandbox = { enabled = 1; @@ -281,67 +286,67 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3399D490228B24CF009A79C7 /* ShellScript */ = { + 3069B72540C3B7C1D094DAEB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 33CC111E2044C6BF0003C045 /* ShellScript */ = { + 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - Flutter/ephemeral/FlutterInputs.xcfilelist, ); inputPaths = ( - Flutter/ephemeral/tripwire, ); outputFileListPaths = ( - Flutter/ephemeral/FlutterOutputs.xcfilelist, ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire\n"; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; }; - A4BFE8B57517ABC4F933089B /* [CP] Check Pods Manifest.lock */ = { + 33CC111E2044C6BF0003C045 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", + Flutter/ephemeral/tripwire, ); - name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire\n"; }; - CC7BBD7412CA68EC0C78C62C /* [CP] Embed Pods Frameworks */ = { + 4F2BCCFAF7F3B06A5F612111 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -510,7 +515,7 @@ "$(PROJECT_DIR)", ); MACOSX_DEPLOYMENT_TARGET = 13.5; - PRODUCT_BUNDLE_IDENTIFIER = com.komodo.komodowallet; + PRODUCT_BUNDLE_IDENTIFIER = com.komodo.wallet; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; @@ -650,7 +655,7 @@ "$(PROJECT_DIR)", ); MACOSX_DEPLOYMENT_TARGET = 13.5; - PRODUCT_BUNDLE_IDENTIFIER = com.komodo.komodowallet; + PRODUCT_BUNDLE_IDENTIFIER = com.komodo.wallet; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -685,7 +690,7 @@ "$(PROJECT_DIR)", ); MACOSX_DEPLOYMENT_TARGET = 13.5; - PRODUCT_BUNDLE_IDENTIFIER = com.komodo.komodowallet; + PRODUCT_BUNDLE_IDENTIFIER = com.komodo.wallet; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; @@ -707,6 +712,280 @@ }; name = Release; }; + ECCB76212E9EF2E90062B2E2 /* Debug-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = "Debug-production"; + }; + ECCB76222E9EF2E90062B2E2 /* Debug-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 8HPBYKKKQP; + EXCLUDED_ARCHS = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + MACOSX_DEPLOYMENT_TARGET = 13.5; + PRODUCT_BUNDLE_IDENTIFIER = com.komodo.wallet; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = "Debug-production"; + }; + ECCB76232E9EF2E90062B2E2 /* Debug-production */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Debug-production"; + }; + ECCB76242E9EF2FF0062B2E2 /* Release-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = "Release-production"; + }; + ECCB76252E9EF2FF0062B2E2 /* Release-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_INJECT_BASE_ENTITLEMENTS = NO; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 8HPBYKKKQP; + "DEVELOPMENT_TEAM[sdk=macosx*]" = 8HPBYKKKQP; + EXCLUDED_ARCHS = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + MACOSX_DEPLOYMENT_TARGET = 13.5; + "OTHER_CODE_SIGN_FLAGS[sdk=*]" = "--options=runtime --timestamp"; + PRODUCT_BUNDLE_IDENTIFIER = com.komodo.wallet; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "[decker] Komodo(8HPBYKKKQP.com.komodo.wallet)"; + SWIFT_VERSION = 5.0; + }; + name = "Release-production"; + }; + ECCB76262E9EF2FF0062B2E2 /* Release-production */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Release-production"; + }; + ECCB76272E9EF3100062B2E2 /* Profile-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = "Profile-production"; + }; + ECCB76282E9EF3100062B2E2 /* Profile-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 8HPBYKKKQP; + EXCLUDED_ARCHS = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + MACOSX_DEPLOYMENT_TARGET = 13.5; + PRODUCT_BUNDLE_IDENTIFIER = com.komodo.wallet; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = "Profile-production"; + }; + ECCB76292E9EF3100062B2E2 /* Profile-production */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Profile-production"; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -714,8 +993,11 @@ isa = XCConfigurationList; buildConfigurations = ( 33CC10F92044A3C60003C045 /* Debug */, + ECCB76212E9EF2E90062B2E2 /* Debug-production */, 33CC10FA2044A3C60003C045 /* Release */, + ECCB76242E9EF2FF0062B2E2 /* Release-production */, 338D0CE9231458BD00FA5F75 /* Profile */, + ECCB76272E9EF3100062B2E2 /* Profile-production */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -724,8 +1006,11 @@ isa = XCConfigurationList; buildConfigurations = ( 33CC10FC2044A3C60003C045 /* Debug */, + ECCB76222E9EF2E90062B2E2 /* Debug-production */, 33CC10FD2044A3C60003C045 /* Release */, + ECCB76252E9EF2FF0062B2E2 /* Release-production */, 338D0CEA231458BD00FA5F75 /* Profile */, + ECCB76282E9EF3100062B2E2 /* Profile-production */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -734,8 +1019,11 @@ isa = XCConfigurationList; buildConfigurations = ( 33CC111C2044C6BA0003C045 /* Debug */, + ECCB76232E9EF2E90062B2E2 /* Debug-production */, 33CC111D2044C6BA0003C045 /* Release */, + ECCB76262E9EF2FF0062B2E2 /* Release-production */, 338D0CEB231458BD00FA5F75 /* Profile */, + ECCB76292E9EF3100062B2E2 /* Profile-production */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme new file mode 100644 index 0000000000..c01bf6fd35 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig index 0a9f2dd7b7..cbd566d2de 100644 --- a/macos/Runner/Configs/AppInfo.xcconfig +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -13,7 +13,7 @@ PRODUCT_NAME = Komodo Wallet // The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.komodo.komodowallet +PRODUCT_BUNDLE_IDENTIFIER = com.komodo.wallet // The copyright displayed in application information PRODUCT_COPYRIGHT = Copyright © 2020 com.komodo. All rights reserved. diff --git a/sdk b/sdk index ec40963cb0..9881ff2e0d 160000 --- a/sdk +++ b/sdk @@ -1 +1 @@ -Subproject commit ec40963cb023056dd71e82ba143d7bcbec863cdf +Subproject commit 9881ff2e0da95295cd6629e1b709af779fcac856