diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..45d6e472b --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,84 @@ +# .circleci/config.yml +version: 2.1 + +jobs: + test: + executor: xcode-11 + steps: + - setup + - fastlane: + lane: "test" + release: + executor: xcode-11 + steps: + - setup + # # This is required for Fastlane Match to work correctly + # - add_ssh_keys: + # fingerprints: + # - "" + - fastlane: + lane: "release" + - store-ipa + +executors: + xcode-11: + macos: + xcode: "11.4.0" + environment: + LC_ALL: en_US.UTF-8 + LANG: en_US.UTF-8 + shell: /bin/bash --login -eo pipefail + +commands: + setup: + description: "Shared setup" + steps: + - checkout + - restore-gems + + restore-gems: + description: "Restore Ruby Gems" + steps: + - run: + name: Set Ruby Version + command: echo "ruby-2.5" > ~/.ruby-version + - restore_cache: + key: 1-gems-{{ checksum "Gemfile.lock" }} + - run: bundle check || bundle install --path vendor/bundle + - save_cache: + key: 1-gems-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle + fastlane: + description: "Runs specified Fastlane lane" + parameters: + lane: + type: string + default: "test" + steps: + - run: + name: Fastlane + command: | + bundle exec fastlane << parameters.lane >> + store-ipa: + description: "Stores .ipa file" + steps: + - store_artifacts: + path: "ChatSecure.ipa" + +workflows: + version: 2 + integration: + jobs: + - test: + filters: + tags: + only: /.*/ + # - release: + # requires: + # - test + # filters: + # branches: + # ignore: /.*/ + # tags: + # only: /\d.\d.\d/ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 07994d20b..f5ef05c29 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,22 @@ DerivedData *.orig *.xccheckout +## App packaging +*.ipa +*.dSYM.zip +*.dSYM +*.app + Pods/ Carthage/ com.mono0926.LicensePlist.Output/ Secrets.plist Preview.html + +.env + fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output diff --git a/ChatSecure.xcodeproj/project.pbxproj b/ChatSecure.xcodeproj/project.pbxproj index cf48ca908..bb51369f6 100644 --- a/ChatSecure.xcodeproj/project.pbxproj +++ b/ChatSecure.xcodeproj/project.pbxproj @@ -442,6 +442,7 @@ D9C52B3C235CB582002B213A /* OTRXMPPServerInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529AE235CB580002B213A /* OTRXMPPServerInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; D9C52B3D235CB582002B213A /* ChatSecureCoreCompat-Swift.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529B0235CB580002B213A /* ChatSecureCoreCompat-Swift.h */; }; D9C52B3F235CBC27002B213A /* ChatSecureCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9C52800235CB55C002B213A /* ChatSecureCore.framework */; }; + D9D44A232446B7440003B317 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D986C654244567090066CC03 /* SwiftUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; D9DEC34A1FABC9F900BF1F7C /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D9DEC3491FABC9F900BF1F7C /* Settings.bundle */; }; D9ECD08F2344626800ECE5F9 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D9ECD08E2344626800ECE5F9 /* LaunchScreen.storyboard */; }; D9F5C2A8236F7F8200F14A16 /* Purchase.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA8D235971E2007474EC /* Purchase.storyboard */; }; @@ -1133,6 +1134,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D9D44A232446B7440003B317 /* SwiftUI.framework in Frameworks */, D9C52B3F235CBC27002B213A /* ChatSecureCore.framework in Frameworks */, 7CD871CB705CA365E0755104 /* libPods-ChatSecureCorePods-ChatSecureTests.a in Frameworks */, ); @@ -2240,16 +2242,13 @@ TargetAttributes = { 6365CEFB1E2453F6009E213F = { CreatedOnToolsVersion = 8.2; - DevelopmentTeam = SF3NXKQQ64; LastSwiftMigration = 1010; ProvisioningStyle = Automatic; TestTargetID = 6396AF991A169D54009F3E6C; }; 6396AF991A169D54009F3E6C = { CreatedOnToolsVersion = 6.1; - DevelopmentTeam = 4T8JLQR6GR; LastSwiftMigration = 1010; - ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.DataProtection = { enabled = 1; @@ -2964,8 +2963,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = SF3NXKQQ64; + DEVELOPMENT_TEAM = 4T8JLQR6GR; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", "COCOAPODS=1", @@ -2991,9 +2991,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = SF3NXKQQ64; + DEVELOPMENT_TEAM = 4T8JLQR6GR; INFOPLIST_FILE = ChatSecureUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -3035,7 +3036,6 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -3100,7 +3100,6 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -3137,12 +3136,12 @@ BUNDLE_ID_SUFFIX = ""; COCOAPODS_PARALLEL_CODE_SIGN = true; CODE_SIGN_ENTITLEMENTS = ChatSecure/ChatSecure.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 167; DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = NO; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = 4T8JLQR6GR; ENABLE_HARDENED_RUNTIME = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -3160,7 +3159,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.chrisballinger.ChatSecure"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "match AppStore com.chrisballinger.ChatSecure catalyst"; SUPPORTS_MACCATALYST = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; @@ -3175,12 +3175,12 @@ BUNDLE_ID_SUFFIX = ""; COCOAPODS_PARALLEL_CODE_SIGN = true; CODE_SIGN_ENTITLEMENTS = ChatSecure/ChatSecure.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 167; DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = NO; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = 4T8JLQR6GR; ENABLE_HARDENED_RUNTIME = YES; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -3198,7 +3198,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.chrisballinger.ChatSecure"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "match AppStore com.chrisballinger.ChatSecure catalyst"; SUPPORTS_MACCATALYST = YES; }; name = iOS_Release; @@ -3276,7 +3277,6 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -3321,12 +3321,12 @@ BUNDLE_ID_SUFFIX = ""; COCOAPODS_PARALLEL_CODE_SIGN = true; CODE_SIGN_ENTITLEMENTS = ChatSecure/ChatSecure.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 167; DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = NO; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = 4T8JLQR6GR; ENABLE_HARDENED_RUNTIME = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -3344,7 +3344,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.chrisballinger.ChatSecure"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "match AppStore com.chrisballinger.ChatSecure catalyst"; SUPPORTS_MACCATALYST = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; @@ -3381,8 +3382,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = SF3NXKQQ64; + DEVELOPMENT_TEAM = 4T8JLQR6GR; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", "COCOAPODS=1", @@ -3474,7 +3476,6 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -3511,12 +3512,12 @@ BUNDLE_ID_SUFFIX = ""; COCOAPODS_PARALLEL_CODE_SIGN = true; CODE_SIGN_ENTITLEMENTS = ChatSecure/ChatSecure.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 167; DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = NO; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = 4T8JLQR6GR; ENABLE_HARDENED_RUNTIME = YES; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -3534,7 +3535,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.chrisballinger.ChatSecure"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "match AppStore com.chrisballinger.ChatSecure catalyst"; SUPPORTS_MACCATALYST = YES; }; name = macOS_Release; @@ -3564,9 +3566,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = SF3NXKQQ64; + DEVELOPMENT_TEAM = 4T8JLQR6GR; INFOPLIST_FILE = ChatSecureUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/Gemfile b/Gemfile index cf0da31e2..7b0a288eb 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,8 @@ source "https://rubygems.org" gem 'cocoapods' -# Waiting for https://github.com/CocoaPods/CocoaPods/pull/9470 -# gem 'cocoapods', '1.9.0.beta.2' -gem 'fastlane' +#gem 'fastlane' + +# https://github.com/fastlane/fastlane/pull/16158 +# gem 'fastlane', :git => 'https://github.com/fastlane/fastlane.git', :branch => 'joshdholtz-appstore-connect-api-sigh' +gem 'fastlane', :git => 'https://github.com/chrisballinger/fastlane.git', :branch => 'chrisballinger-appstore-connect-api-sigh' diff --git a/Gemfile.lock b/Gemfile.lock index 57d025b0f..1fa909685 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,47 @@ +GIT + remote: https://github.com/chrisballinger/fastlane.git + revision: 38c84f768590d67089d31d9ecfb9b30ec3317b8b + branch: chrisballinger-appstore-connect-api-sigh + specs: + fastlane (2.144.0) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.3, < 3.0.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.2, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored + commander-fastlane (>= 4.4.6, < 5.0.0) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 2.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 0.17) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 0.13.1) + fastimage (>= 2.1.0, < 3.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-api-client (>= 0.29.2, < 0.37.0) + google-cloud-storage (>= 1.15.0, < 2.0.0) + highline (>= 1.7.2, < 2.0.0) + json (< 3.0.0) + jwt (~> 2.1.0) + mini_magick (>= 4.9.4, < 5.0.0) + multi_xml (~> 0.5) + multipart-post (~> 2.0.0) + plist (>= 3.1.0, < 4.0.0) + public_suffix (~> 2.0.0) + rubyzip (>= 1.3.0, < 2.0.0) + security (= 0.1.3) + simctl (~> 1.6.3) + slack-notifier (>= 2.0.0, < 3.0.0) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (>= 1.4.5, < 2.0.0) + 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.3.0) + xcpretty-travis-formatter (>= 0.0.3) + GEM remote: https://rubygems.org/ specs: @@ -13,17 +57,17 @@ GEM httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) atomos (0.1.3) - aws-eventstream (1.0.3) - aws-partitions (1.288.0) - aws-sdk-core (3.92.0) - aws-eventstream (~> 1.0, >= 1.0.2) + aws-eventstream (1.1.0) + aws-partitions (1.296.0) + aws-sdk-core (3.94.0) + aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) aws-sdk-kms (1.30.0) aws-sdk-core (~> 3, >= 3.71.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.61.1) + aws-sdk-s3 (1.61.2) aws-sdk-core (~> 3, >= 3.83.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) @@ -92,44 +136,6 @@ GEM faraday_middleware (0.13.1) faraday (>= 0.7.4, < 1.0) fastimage (2.1.7) - fastlane (2.144.0) - CFPropertyList (>= 2.3, < 4.0.0) - addressable (>= 2.3, < 3.0.0) - aws-sdk-s3 (~> 1.0) - babosa (>= 1.0.2, < 2.0.0) - bundler (>= 1.12.0, < 3.0.0) - colored - commander-fastlane (>= 4.4.6, < 5.0.0) - dotenv (>= 2.1.1, < 3.0.0) - emoji_regex (>= 0.1, < 2.0) - excon (>= 0.71.0, < 1.0.0) - faraday (~> 0.17) - faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 0.13.1) - fastimage (>= 2.1.0, < 3.0.0) - gh_inspector (>= 1.1.2, < 2.0.0) - google-api-client (>= 0.29.2, < 0.37.0) - google-cloud-storage (>= 1.15.0, < 2.0.0) - highline (>= 1.7.2, < 2.0.0) - json (< 3.0.0) - jwt (~> 2.1.0) - mini_magick (>= 4.9.4, < 5.0.0) - multi_xml (~> 0.5) - multipart-post (~> 2.0.0) - plist (>= 3.1.0, < 4.0.0) - public_suffix (~> 2.0.0) - rubyzip (>= 1.3.0, < 2.0.0) - security (= 0.1.3) - simctl (~> 1.6.3) - slack-notifier (>= 2.0.0, < 3.0.0) - terminal-notifier (>= 2.0.0, < 3.0.0) - terminal-table (>= 1.4.5, < 2.0.0) - 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.3.0) - xcpretty-travis-formatter (>= 0.0.3) ffi (1.12.2) fourflusher (2.3.1) fuzzy_match (2.0.4) @@ -148,20 +154,20 @@ GEM google-cloud-env (1.3.1) faraday (>= 0.17.3, < 2.0) google-cloud-errors (1.0.0) - google-cloud-storage (1.25.1) + google-cloud-storage (1.26.0) addressable (~> 2.5) digest-crc (~> 0.4) google-api-client (~> 0.33) google-cloud-core (~> 1.2) googleauth (~> 0.9) mini_mime (~> 1.0) - googleauth (0.11.0) + googleauth (0.12.0) faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) - signet (~> 0.12) + signet (~> 0.14) highline (1.7.10) http-cookie (1.0.3) domain_name (~> 0.5) @@ -183,7 +189,7 @@ GEM nap (1.1.0) naturally (2.2.0) netrc (0.11.0) - os (1.0.1) + os (1.1.0) plist (3.5.0) public_suffix (2.0.5) representable (3.0.4) @@ -195,7 +201,7 @@ GEM ruby-macho (1.4.0) rubyzip (1.3.0) security (0.1.3) - signet (0.13.2) + signet (0.14.0) addressable (~> 2.3) faraday (>= 0.17.3, < 2.0) jwt (>= 1.5, < 3.0) @@ -214,15 +220,15 @@ GEM tty-cursor (~> 0.7) typhoeus (1.3.1) ethon (>= 0.9.0) - tzinfo (1.2.6) + tzinfo (1.2.7) thread_safe (~> 0.1) uber (0.1.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) + unf_ext (0.0.7.7) unicode-display_width (1.7.0) word_wrap (1.0.0) - xcodeproj (1.15.0) + xcodeproj (1.16.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -238,7 +244,7 @@ PLATFORMS DEPENDENCIES cocoapods - fastlane + fastlane! BUNDLED WITH 1.17.2 diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 8d1d6037e..11ba671c0 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -15,7 +15,45 @@ default_platform(:ios) +platform :mac do + desc "Runs tests on macOS" + lane :test do + scan( + scheme: "ChatSecure" + ) + end + + desc "Submit a new macOS release" + lane :release do + setup_circle_ci + match( + type: "appstore", + platform: "catalyst", + ) + build_mac_app( + scheme: "ChatSecure (Mac)", + destination: 'generic/platform=macOS,variant=Mac Catalyst' + ) + end +end + platform :ios do + desc "Runs tests on iOS" + lane :test do + scan( + scheme: "ChatSecure" + ) + end + + desc "Submit a new iOS release" + lane :release do + setup_circle_ci + match + gym( + scheme: "ChatSecure", + ) + end + desc "Generate new localized screenshots" lane :screenshots do capture_screenshots(workspace: "ChatSecure.xcworkspace", scheme: "ChatSecureUITests") diff --git a/fastlane/Matchfile b/fastlane/Matchfile new file mode 100644 index 000000000..6144b0ab6 --- /dev/null +++ b/fastlane/Matchfile @@ -0,0 +1,9 @@ + +storage_mode("git") +readonly(true) +type("appstore") + +app_identifier(["com.chrisballinger.ChatSecure"]) + +clone_branch_directly(true) +shallow_clone(true) diff --git a/fastlane/README.md b/fastlane/README.md index 8ee8c5983..8bb393e0d 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -15,7 +15,31 @@ Install _fastlane_ using or alternatively using `brew cask install fastlane` # Available Actions +## Mac +### mac test +``` +fastlane mac test +``` +Runs tests on macOS +### mac release +``` +fastlane mac release +``` +Submit a new macOS release + +---- + ## iOS +### ios test +``` +fastlane ios test +``` +Runs tests on iOS +### ios release +``` +fastlane ios release +``` +Submit a new iOS release ### ios screenshots ``` fastlane ios screenshots