diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..0cb495c02 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,81 @@ +# .circleci/config.yml +# Use the latest 2.1 version of CircleCI pipeline process engine. +# See: https://circleci.com/docs/2.0/configuration-reference +# Insoired by: https://medium.com/uptech-team/swift-package-manager-and-how-to-cache-it-with-ci-14968cd58c5f +version: 2.1 +orbs: + macos: circleci/macos@2 + +jobs: + build-and-test: + macos: + xcode: 15.3.0 + #parallelism: 2 Does not work of open source macOS + resource_class: macos.m1.medium.gen1 + working_directory: ~/litewallet-ios/ + environment: + FL_OUTPUT_DIR: output + FASTLANE_LANE: all_unit_tests + shell: /bin/bash --login -o pipefail + steps: + - checkout + - run: + name: "Initialize submodule(s)" + command: "git submodule init && git submodule update --init --recursive" + - run: + name: "Setup env files" + command: | + echo 'export $GOOGLE_SERVICES_PLIST="$GOOGLE_SERVICES_PLIST"' >> $BASH_ENV + echo "$GOOGLE_SERVICES_PLIST" | base64 --decode > litewallet/GoogleService-Info.plist + echo 'export $REMOTE_CONFIG_DEFAULTS="$REMOTE_CONFIG_DEFAULTS"' >> $BASH_ENV + echo "$REMOTE_CONFIG_DEFAULTS" | base64 --decode > litewallet/remote-config-defaults.plist + echo 'export $DEBUG_PARTNER_KEYS="$DEBUG_PARTNER_KEYS"' >> $BASH_ENV + echo "$DEBUG_PARTNER_KEYS" | base64 --decode > litewallet/partner-keys.plist + - restore_cache: + name: Restore SPM Cache + keys: + - spm-cache-{{ checksum "Package.resolved" }} + - run: + name: Install Bundler + command: gem install bundler:1.17.2; bundle update --bundler; bundle install + - run: + name: Fastlane + command: bundle exec fastlane $FASTLANE_LANE + - save_cache: + name: Save SPM Cache + key: spm-cache-{{ checksum "Package.resolved" }} + paths: + - SourcePackages/ + - store_artifacts: + path: output + - store_test_results: + path: output/scan + + beta: + macos: + xcode: 14.0.1 + working_directory: ~/litewallet-ios/ + environment: + FL_OUTPUT_DIR: output + FASTLANE_LANE: beta + shell: /bin/bash --login -o pipefail + steps: + - checkout + - run: bundle install + - run: + name: Fastlane + command: cd ios; bundle exec fastlane $FASTLANE_LANE + - store_artifacts: + path: output/litewallet.ipa + +workflows: + version: 2 + build-test: + jobs: + - build-and-test + - beta: + filters: + branches: + only: develop + requires: + - build-and-test \ No newline at end of file diff --git a/.gitignore b/.gitignore index 24ca1f81f..2502c3146 100644 --- a/.gitignore +++ b/.gitignore @@ -25,12 +25,11 @@ xcuserdata/ # Swift Package Manager Packages/ Package.pins -Package.resolved .build/ # Add this line if you want to avoid checking in Xcode SPM integration. .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata - + SourcePackages/ # SwiftFormat BuildTools/.build diff --git a/BuildTools/Package.resolved b/BuildTools/Package.resolved new file mode 100644 index 000000000..cdcb11b57 --- /dev/null +++ b/BuildTools/Package.resolved @@ -0,0 +1,16 @@ +{ + "object": { + "pins": [ + { + "package": "SwiftFormat", + "repositoryURL": "https://github.com/nicklockwood/SwiftFormat", + "state": { + "branch": null, + "revision": "da637c398c5d08896521b737f2868ddc2e7996ae", + "version": "0.50.6" + } + } + ] + }, + "version": 1 +} diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..4681873c6 --- /dev/null +++ b/Gemfile @@ -0,0 +1,7 @@ +source 'https://rubygems.org' + + +gem 'rb-readline' +gem 'fastlane' + +ruby '3.3.0' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000..ff5e761c7 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,230 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.7) + base64 + nkf + rexml + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + artifactory (3.0.17) + atomos (0.1.3) + aws-eventstream (1.3.0) + aws-partitions (1.1028.0) + aws-sdk-core (3.214.0) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.992.0) + aws-sigv4 (~> 1.9) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.96.0) + aws-sdk-core (~> 3, >= 3.210.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.176.1) + aws-sdk-core (~> 3, >= 3.210.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.10.1) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) + base64 (0.2.0) + claide (1.1.0) + colored (1.2) + colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) + declarative (0.0.20) + digest-crc (0.6.5) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.8.1) + emoji_regex (3.2.3) + excon (0.109.0) + faraday (1.10.4) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.1.0) + multipart-post (~> 2.0) + faraday-net_http (1.0.2) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.1) + faraday (~> 1.0) + fastimage (2.3.1) + fastlane (2.226.0) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored (~> 1.2) + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + fastlane-sirp (>= 1.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-env (>= 1.6.0, < 2.0.0) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + http-cookie (~> 1.0.5) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (>= 2.0.0, < 3.0.0) + naturally (~> 2.2) + optparse (>= 0.1.1, < 1.0.0) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 2.0.0, < 3.0.0) + security (= 0.1.5) + simctl (~> 1.6.3) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (~> 3) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.4.0) + xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) + fastlane-sirp (1.0.0) + sysrandom (~> 1.0) + gh_inspector (1.1.3) + google-apis-androidpublisher_v3 (0.54.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-core (0.11.3) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + google-apis-iamcredentials_v1 (0.17.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-playcustomapp_v1 (0.13.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-storage_v1 (0.29.0) + google-apis-core (>= 0.11.0, < 2.a) + google-cloud-core (1.6.1) + google-cloud-env (>= 1.0, < 3.a) + google-cloud-errors (~> 1.0) + google-cloud-env (1.6.0) + faraday (>= 0.17.3, < 3.0) + google-cloud-errors (1.3.1) + google-cloud-storage (1.45.0) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.29.0) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.8) + domain_name (~> 0.5) + httpclient (2.8.3) + jmespath (1.6.2) + json (2.7.6) + jwt (2.9.3) + base64 + mini_magick (4.13.2) + mini_mime (1.1.5) + multi_json (1.15.0) + multipart-post (2.4.1) + nanaimo (0.4.0) + naturally (2.2.1) + nkf (0.2.0) + optparse (0.6.0) + os (1.1.4) + plist (3.7.1) + public_suffix (5.1.1) + rake (13.2.1) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.4.0) + rouge (3.28.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + security (0.1.5) + signet (0.18.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.10) + CFPropertyList + naturally + sysrandom (1.0.5) + terminal-notifier (2.0.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.2) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) + uber (0.1.0) + unf (0.2.0) + unicode-display_width (2.6.0) + word_wrap (1.0.0) + xcode-install (2.8.1) + claide (>= 0.9.1) + fastlane (>= 2.1.0, < 3.0.0) + xcodeproj (1.27.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.4.0) + rexml (>= 3.3.6, < 4.0) + xcpretty (0.4.0) + rouge (~> 3.28.0) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) + +PLATFORMS + ruby + +DEPENDENCIES + fastlane + xcode-install + +RUBY VERSION + ruby 2.6.10p210 + +BUNDLED WITH + 1.17.2 diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 000000000..67b862acb --- /dev/null +++ b/Package.resolved @@ -0,0 +1,186 @@ +{ + "originHash" : "14dce1306a5a29a6be3d2f739c8e5f2f994b6122e8dce67c9a5d2fdbfffebe7f", + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "194a6706acbd25e4ef639bcaddea16e8758a3e27", + "version" : "1.2024011602.0" + } + }, + { + "identity" : "app-check", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/app-check.git", + "state" : { + "revision" : "61b85103a1aeed8218f17c794687781505fbbef5", + "version" : "11.2.0" + } + }, + { + "identity" : "appsflyerframework-static", + "kind" : "remoteSourceControl", + "location" : "https://github.com/AppsFlyerSDK/AppsFlyerFramework-Static", + "state" : { + "revision" : "65945f5d9c37bc98434d48af39540f326adbfa35", + "version" : "6.15.3" + } + }, + { + "identity" : "cwlcatchexception", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mattgallagher/CwlCatchException.git", + "state" : { + "revision" : "07b2ba21d361c223e25e3c1e924288742923f08c", + "version" : "2.2.1" + } + }, + { + "identity" : "cwlpreconditiontesting", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state" : { + "revision" : "0139c665ebb45e6a9fbdb68aabfd7c39f3fe0071", + "version" : "2.2.2" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk.git", + "state" : { + "revision" : "2e02253fd1ce99145bcbf1bb367ccf61bd0ca46b", + "version" : "11.6.0" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "4f234bcbdae841d7015258fbbf8e7743a39b8200", + "version" : "11.4.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "617af071af9aa1d6a091d59a202910ac482128f9", + "version" : "10.1.0" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "53156c7ec267db846e6b64c9f4c4e31ba4cf75eb", + "version" : "8.0.2" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "f56d8fc3162de9a498377c7b6cea43431f4f5083", + "version" : "1.65.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "a2ab612cb980066ee56d90d60d8462992c07f24b", + "version" : "3.5.0" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", + "version" : "100.0.0" + } + }, + { + "identity" : "keychainaccess", + "kind" : "remoteSourceControl", + "location" : "https://github.com/kishikawakatsumi/KeychainAccess.git", + "state" : { + "revision" : "3d0ea2c0806791abcc5d7f0d9f62f1cfd4a7264d", + "version" : "4.2.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", + "version" : "1.22.5" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1", + "version" : "2.30910.0" + } + }, + { + "identity" : "nimble", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Quick/Nimble", + "state" : { + "revision" : "c93f16c25af5770f0d3e6af27c9634640946b068", + "version" : "9.2.1" + } + }, + { + "identity" : "ohhttpstubs", + "kind" : "remoteSourceControl", + "location" : "https://github.com/AliSoftware/OHHTTPStubs", + "state" : { + "revision" : "12f19662426d0434d6c330c6974d53e2eb10ecd9", + "version" : "9.1.0" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac", + "version" : "2.4.0" + } + }, + { + "identity" : "push-notifications-swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pusher/push-notifications-swift.git", + "state" : { + "revision" : "0374352e6a54071a4e3d2ddf674ba56a84630ba6", + "version" : "4.0.0" + } + }, + { + "identity" : "swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-protobuf.git", + "state" : { + "revision" : "ebc7251dd5b37f627c93698e4374084d98409633", + "version" : "1.28.2" + } + } + ], + "version" : 3 +} diff --git a/fastlane/Fastfile b/fastlane/Fastfile new file mode 100644 index 000000000..39904efcd --- /dev/null +++ b/fastlane/Fastfile @@ -0,0 +1,24 @@ +# fastlane/Fastfile +default_platform :ios + +platform :ios do + + before_all do + setup_circle_ci + end + + error do |lane, exception| + # You can log the error, send a notification, or take any other action + UI.error("Error occurred during running the pipeline: #{exception.message}") + end + + desc "Run all the unit tests" + lane :all_unit_tests do + run_tests(clean: true, devices: ["iPhone 15"], scheme: "litewallet", cloned_source_packages_path: "SourcePackages") + end + + desc "Build and Archive" + lane :build_and_archive do + build_app(clean: true, scheme: "litewallet", cloned_source_packages_path: "SourcePackages") + end +end \ No newline at end of file diff --git a/fastlane/README.md b/fastlane/README.md new file mode 100644 index 000000000..d3cc03402 --- /dev/null +++ b/fastlane/README.md @@ -0,0 +1,40 @@ +fastlane documentation +---- + +# Installation + +Make sure you have the latest version of the Xcode command line tools installed: + +```sh +xcode-select --install +``` + +For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane) + +# Available Actions + +## iOS + +### ios all_unit_tests + +```sh +[bundle exec] fastlane ios all_unit_tests +``` + +Run all the unit tests + +### ios build_and_archive + +```sh +[bundle exec] fastlane ios build_and_archive +``` + +Build and Archive + +---- + +This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run. + +More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools). + +The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools). diff --git a/litewallet.xcodeproj/project.pbxproj b/litewallet.xcodeproj/project.pbxproj index 4198fee9f..11a8dd13b 100644 --- a/litewallet.xcodeproj/project.pbxproj +++ b/litewallet.xcodeproj/project.pbxproj @@ -274,7 +274,6 @@ C350788C27DCB10700A50819 /* TextView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C350788B27DCB10700A50819 /* TextView+Extension.swift */; }; C353582B2D11D9B500395C45 /* RemoteConfigHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C353582A2D11D9B500395C45 /* RemoteConfigHelper.swift */; }; C353582D2D11DA4900395C45 /* FirebaseRemoteConfig in Frameworks */ = {isa = PBXBuildFile; productRef = C353582C2D11DA4900395C45 /* FirebaseRemoteConfig */; }; - C353582F2D11DA4900395C45 /* FirebaseRemoteConfigSwift in Frameworks */ = {isa = PBXBuildFile; productRef = C353582E2D11DA4900395C45 /* FirebaseRemoteConfigSwift */; }; C35358332D11E7D100395C45 /* APITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C35358322D11E7D100395C45 /* APITests.swift */; }; C35358372D11EB0600395C45 /* remote-config-defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = C35358362D11EB0600395C45 /* remote-config-defaults.plist */; settings = {ASSET_TAGS = ("initial-resources", ); }; }; C35358392D11EB2F00395C45 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C35358382D11EB2F00395C45 /* GoogleService-Info.plist */; settings = {ASSET_TAGS = ("initial-resources", ); }; }; @@ -1677,7 +1676,6 @@ C3423C182B781C6B0051BD6D /* PushNotifications in Frameworks */, C35C1222293D464A0009022D /* FirebaseAuth in Frameworks */, C35C1224293D464A0009022D /* FirebaseCrashlytics in Frameworks */, - C353582F2D11DA4900395C45 /* FirebaseRemoteConfigSwift in Frameworks */, C35C1220293D464A0009022D /* FirebaseAnalytics in Frameworks */, 759DA0BE1DAC36A3008CC49B /* libBRCore.a in Frameworks */, ); @@ -3582,6 +3580,7 @@ 75A2A78E1DA5934300A983D8 /* Resources */, 75A2A8031DA5935F00A983D8 /* Embed App Extensions */, 22A9A9831DF63288000F0016 /* Embed Frameworks */, + C3D00A6D2D1B10E900AC2840 /* Run Script for CircleCI SPM Caching */, C3A3FFB526FE46E8000FE955 /* Mark Dev Notes */, 58A9FE4C291BC37400B75825 /* Count number of swift lines */, ); @@ -3600,7 +3599,6 @@ C3423C172B781C6B0051BD6D /* PushNotifications */, C30808A42D0A23530063E793 /* AppsFlyerLib-Static */, C353582C2D11DA4900395C45 /* FirebaseRemoteConfig */, - C353582E2D11DA4900395C45 /* FirebaseRemoteConfigSwift */, ); productName = breadwallet; productReference = 75A2A7901DA5934300A983D8 /* Litewallet.app */; @@ -3907,6 +3905,24 @@ shellPath = /bin/sh; shellScript = "# http://www.benzado.com/blog/post/329/make-xcode-nag-you-about-unfinished-todos\necho \"make-xcode-nag-you-about-unfinished-todos for swift files only\"\nKEYWORDS=\"DEV:|TODO:|FIXME:|\\?\\?\\?:|\\!\\!\\!:\"\nfind \"${SRCROOT}\" \\( -name \"*.swift\" \\) -print0 | \\\nxargs -0 egrep --with-filename --line-number --only-matching \"($KEYWORDS).*\\$\" | \\\nperl -p -e \"s/($KEYWORDS)/ warning: \\$1/\"\n"; }; + C3D00A6D2D1B10E900AC2840 /* Run Script for CircleCI SPM Caching */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Run Script for CircleCI SPM Caching"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Type a script or drag a script file from your workspace to insert its path.\ncp litewallet.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved Package.resolved\n"; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -4512,7 +4528,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "initial-resources"; @@ -4538,7 +4554,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = litewallet/litewallet.entitlements; - CURRENT_PROJECT_VERSION = 241217.1; + CURRENT_PROJECT_VERSION = 241223.0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ZV7987N2ZC; EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE = YES; @@ -4555,7 +4571,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.14.0; + MARKETING_VERSION = 3.13.7; ONLY_ACTIVE_ARCH = YES; ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "initial-resources speakTag"; OTHER_SWIFT_FLAGS = "-DDebug $(inherited)"; @@ -4871,7 +4887,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = NO; ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "initial-resources"; "OTHER_LDFLAGS[arch=*]" = "-ObjC "; @@ -4896,7 +4912,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = litewallet/litewallet.entitlements; - CURRENT_PROJECT_VERSION = 241217.1; + CURRENT_PROJECT_VERSION = 241223.0; DEVELOPMENT_TEAM = ZV7987N2ZC; EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -4912,7 +4928,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.14.0; + MARKETING_VERSION = 3.13.7; ONLY_ACTIVE_ARCH = YES; ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "initial-resources speakTag"; OTHER_SWIFT_FLAGS = "$(inherited)"; @@ -5018,7 +5034,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "initial-resources"; @@ -5038,7 +5054,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = litewallet/litewallet.entitlements; - CURRENT_PROJECT_VERSION = 241217.1; + CURRENT_PROJECT_VERSION = 241223.0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ZV7987N2ZC; EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE = NO; @@ -5055,7 +5071,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.14.0; + MARKETING_VERSION = 3.13.7; ONLY_ACTIVE_ARCH = YES; ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "initial-resources speakTag"; OTHER_SWIFT_FLAGS = "-DDebug -DTestnet $(inherited)"; @@ -5164,7 +5180,7 @@ 2465874023A5AAD100A32E9E /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 755CD9CA1DAA18420075898E /* Build configuration list for PBXNativeTarget "unbound" */ = { isa = XCConfigurationList; @@ -5174,7 +5190,7 @@ 755CD9CC1DAA18420075898E /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 755CD9D71DAA197D0075898E /* Build configuration list for PBXNativeTarget "BRCore" */ = { isa = XCConfigurationList; @@ -5184,7 +5200,7 @@ 755CD9D91DAA197D0075898E /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 759DA0DA1DAC8668008CC49B /* Build configuration list for PBXLegacyTarget "submodules" */ = { isa = XCConfigurationList; @@ -5194,7 +5210,7 @@ 759DA0D91DAC8668008CC49B /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 75A2A78B1DA5934300A983D8 /* Build configuration list for PBXProject "litewallet" */ = { isa = XCConfigurationList; @@ -5204,7 +5220,7 @@ 75A2A7DA1DA5934400A983D8 /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 75A2A7E31DA5934400A983D8 /* Build configuration list for PBXNativeTarget "litewallet" */ = { isa = XCConfigurationList; @@ -5214,7 +5230,7 @@ 75A2A7E51DA5934400A983D8 /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 75A2A8151DA5936F00A983D8 /* Build configuration list for PBXNativeTarget "TodayExtension" */ = { isa = XCConfigurationList; @@ -5224,7 +5240,7 @@ 75A2A8171DA5936F00A983D8 /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 75C735B51DAA1C9F00251ECF /* Build configuration list for PBXNativeTarget "nettle" */ = { isa = XCConfigurationList; @@ -5234,7 +5250,7 @@ 75C735B71DAA1C9F00251ECF /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; /* End XCConfigurationList section */ @@ -5259,8 +5275,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 10.23.0; + kind = upToNextMajorVersion; + minimumVersion = 11.6.0; }; }; C35C1228293D48330009022D /* XCRemoteSwiftPackageReference "KeychainAccess" */ = { @@ -5289,11 +5305,6 @@ package = C35C121E293D464A0009022D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; productName = FirebaseRemoteConfig; }; - C353582E2D11DA4900395C45 /* FirebaseRemoteConfigSwift */ = { - isa = XCSwiftPackageProductDependency; - package = C35C121E293D464A0009022D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; - productName = FirebaseRemoteConfigSwift; - }; C35C121F293D464A0009022D /* FirebaseAnalytics */ = { isa = XCSwiftPackageProductDependency; package = C35C121E293D464A0009022D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; diff --git a/litewallet.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/litewallet.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 000000000..67b862acb --- /dev/null +++ b/litewallet.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,186 @@ +{ + "originHash" : "14dce1306a5a29a6be3d2f739c8e5f2f994b6122e8dce67c9a5d2fdbfffebe7f", + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "194a6706acbd25e4ef639bcaddea16e8758a3e27", + "version" : "1.2024011602.0" + } + }, + { + "identity" : "app-check", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/app-check.git", + "state" : { + "revision" : "61b85103a1aeed8218f17c794687781505fbbef5", + "version" : "11.2.0" + } + }, + { + "identity" : "appsflyerframework-static", + "kind" : "remoteSourceControl", + "location" : "https://github.com/AppsFlyerSDK/AppsFlyerFramework-Static", + "state" : { + "revision" : "65945f5d9c37bc98434d48af39540f326adbfa35", + "version" : "6.15.3" + } + }, + { + "identity" : "cwlcatchexception", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mattgallagher/CwlCatchException.git", + "state" : { + "revision" : "07b2ba21d361c223e25e3c1e924288742923f08c", + "version" : "2.2.1" + } + }, + { + "identity" : "cwlpreconditiontesting", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state" : { + "revision" : "0139c665ebb45e6a9fbdb68aabfd7c39f3fe0071", + "version" : "2.2.2" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk.git", + "state" : { + "revision" : "2e02253fd1ce99145bcbf1bb367ccf61bd0ca46b", + "version" : "11.6.0" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "4f234bcbdae841d7015258fbbf8e7743a39b8200", + "version" : "11.4.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "617af071af9aa1d6a091d59a202910ac482128f9", + "version" : "10.1.0" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "53156c7ec267db846e6b64c9f4c4e31ba4cf75eb", + "version" : "8.0.2" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "f56d8fc3162de9a498377c7b6cea43431f4f5083", + "version" : "1.65.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "a2ab612cb980066ee56d90d60d8462992c07f24b", + "version" : "3.5.0" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", + "version" : "100.0.0" + } + }, + { + "identity" : "keychainaccess", + "kind" : "remoteSourceControl", + "location" : "https://github.com/kishikawakatsumi/KeychainAccess.git", + "state" : { + "revision" : "3d0ea2c0806791abcc5d7f0d9f62f1cfd4a7264d", + "version" : "4.2.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", + "version" : "1.22.5" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1", + "version" : "2.30910.0" + } + }, + { + "identity" : "nimble", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Quick/Nimble", + "state" : { + "revision" : "c93f16c25af5770f0d3e6af27c9634640946b068", + "version" : "9.2.1" + } + }, + { + "identity" : "ohhttpstubs", + "kind" : "remoteSourceControl", + "location" : "https://github.com/AliSoftware/OHHTTPStubs", + "state" : { + "revision" : "12f19662426d0434d6c330c6974d53e2eb10ecd9", + "version" : "9.1.0" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac", + "version" : "2.4.0" + } + }, + { + "identity" : "push-notifications-swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pusher/push-notifications-swift.git", + "state" : { + "revision" : "0374352e6a54071a4e3d2ddf674ba56a84630ba6", + "version" : "4.0.0" + } + }, + { + "identity" : "swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-protobuf.git", + "state" : { + "revision" : "ebc7251dd5b37f627c93698e4374084d98409633", + "version" : "1.28.2" + } + } + ], + "version" : 3 +} diff --git a/litewalletTests/Class Tests/AmountTests.swift b/litewalletTests/Class Tests/AmountTests.swift index fb57ecea3..887ab4273 100644 --- a/litewalletTests/Class Tests/AmountTests.swift +++ b/litewalletTests/Class Tests/AmountTests.swift @@ -2,6 +2,8 @@ import XCTest class AmountTests: XCTestCase { + let mockSeeds = MockSeeds() + override func setUp() {} override func tearDown() {} @@ -13,7 +15,7 @@ class AmountTests: XCTestCase { let amount = MockSeeds.amount100 // Then: - XCTAssertFalse(amount.amount == 0) + XCTAssertTrue(amount.amount == 100) } func testPerformanceExample() {