diff --git a/.github/workflows/build-ios-release-pullrequest.yml b/.github/workflows/build-ios-release-pullrequest.yml index 5e466c4501..5d6ef2b4ec 100644 --- a/.github/workflows/build-ios-release-pullrequest.yml +++ b/.github/workflows/build-ios-release-pullrequest.yml @@ -31,14 +31,14 @@ jobs: node-version: 18 - uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: 15.3 + xcode-version: 15.4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 2.6.10 - bundler-cache: false + ruby-version: 3.1.6 + bundler-cache: true - name: Install dependencies with Bundler - run: bundle install + run: bundle install --quiet - name: Install Fastlane run: gem install fastlane - name: Clear Derived Data @@ -113,63 +113,62 @@ jobs: path: ./ios/build/BlueWallet.${{env.PROJECT_VERSION}}(${{ env.NEW_BUILD_NUMBER }}).ipa testflight-upload: - needs: build - runs-on: macos-14 - if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'testflight') - env: - APPLE_ID: ${{ secrets.APPLE_ID }} - NEW_BUILD_NUMBER: ${{ needs.build.outputs.new_build_number }} - PROJECT_VERSION: ${{ needs.build.outputs.project_version }} - LATEST_COMMIT_MESSAGE: ${{ needs.build.outputs.latest_commit_message }} - steps: - - name: Checkout project - uses: actions/checkout@v3 - - name: Cache Ruby Gems - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-gems- - - name: Install dependencies with Bundler - run: | - bundle config path vendor/bundle - bundle install --jobs 4 --retry 3 - - name: Download IPA from Artifact - uses: actions/download-artifact@v2 - with: - name: BlueWallet.${{needs.build.outputs.project_version}}(${{needs.build.outputs.new_build_number}}).ipa - path: ./ios/build - - name: Create App Store Connect API Key JSON - run: echo '${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENT }}' > ./ios/appstore_api_key.json - - name: Upload to TestFlight - env: - APP_STORE_CONNECT_API_KEY_PATH: $(pwd)/ios/appstore_api_key.p8 - MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} - GIT_ACCESS_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }} - GIT_URL: ${{ secrets.GIT_URL }} - ITC_TEAM_ID: ${{ secrets.ITC_TEAM_ID }} - ITC_TEAM_NAME: ${{ secrets.ITC_TEAM_NAME }} - APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }} - APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} - run: bundle exec fastlane ios upload_to_testflight_lane - working-directory: ./ios - - name: Post PR Comment - if: success() && github.event_name == 'pull_request' - uses: actions/github-script@v6 - env: - BUILD_NUMBER: ${{ needs.build.outputs.new_build_number }} - LATEST_COMMIT_MESSAGE: ${{ needs.build.outputs.latest_commit_message }} - with: - script: | - const buildNumber = process.env.BUILD_NUMBER; - const message = `The build ${buildNumber} has been uploaded to TestFlight.`; - const prNumber = context.payload.pull_request.number; - const repo = context.repo; - github.rest.issues.createComment({ - ...repo, - issue_number: prNumber, - body: message, - }); - \ No newline at end of file + needs: build + runs-on: macos-14 + if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'testflight') + env: + APPLE_ID: ${{ secrets.APPLE_ID }} + NEW_BUILD_NUMBER: ${{ needs.build.outputs.new_build_number }} + PROJECT_VERSION: ${{ needs.build.outputs.project_version }} + LATEST_COMMIT_MESSAGE: ${{ needs.build.outputs.latest_commit_message }} + steps: + - name: Checkout project + uses: actions/checkout@v3 + - name: Cache Ruby Gems + uses: actions/cache@v2 + with: + path: vendor/bundle + key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} + restore-keys: | + ${{ runner.os }}-gems- + - name: Install dependencies with Bundler + run: | + bundle config path vendor/bundle + bundle install --jobs 4 --retry 3 --quiet + - name: Download IPA from Artifact + uses: actions/download-artifact@v2 + with: + name: BlueWallet.${{needs.build.outputs.project_version}}(${{needs.build.outputs.new_build_number}}).ipa + path: ./ios/build + - name: Create App Store Connect API Key JSON + run: echo '${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENT }}' > ./ios/appstore_api_key.json + - name: Upload to TestFlight + env: + APP_STORE_CONNECT_API_KEY_PATH: $(pwd)/ios/appstore_api_key.p8 + MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} + GIT_ACCESS_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }} + GIT_URL: ${{ secrets.GIT_URL }} + ITC_TEAM_ID: ${{ secrets.ITC_TEAM_ID }} + ITC_TEAM_NAME: ${{ secrets.ITC_TEAM_NAME }} + APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }} + APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: bundle exec fastlane ios upload_to_testflight_lane + working-directory: ./ios + - name: Post PR Comment + if: success() && github.event_name == 'pull_request' + uses: actions/github-script@v6 + env: + BUILD_NUMBER: ${{ needs.build.outputs.new_build_number }} + LATEST_COMMIT_MESSAGE: ${{ needs.build.outputs.latest_commit_message }} + with: + script: | + const buildNumber = process.env.BUILD_NUMBER; + const message = `The build ${buildNumber} has been uploaded to TestFlight.`; + const prNumber = context.payload.pull_request.number; + const repo = context.repo; + github.rest.issues.createComment({ + ...repo, + issue_number: prNumber, + body: message, + }); \ No newline at end of file diff --git a/.ruby-version b/.ruby-version index 2b4a67131f..8a4b2758ef 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.6.10 \ No newline at end of file +3.1.6 \ No newline at end of file diff --git a/Gemfile b/Gemfile index 05a9d44227..7e60e03851 100644 --- a/Gemfile +++ b/Gemfile @@ -1,11 +1,7 @@ source "https://rubygems.org" # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby "2.6.10" -gem "rubyzip", "2.3.0" -gem "algolia", "2.3.0" +ruby "3.1.6" gem "cocoapods", ">= 1.13", "< 1.15" gem "activesupport", ">= 6.1.7.3", "< 7.1.0" -gem "public_suffix", "4.0" -gem "domain_name", "0.5.20190701" gem "fastlane" \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index fe01b5c336..60e4918247 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,19 +5,13 @@ GEM base64 nkf rexml - activesupport (6.1.7.8) + activesupport (7.0.8.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - zeitwerk (~> 2.3) addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) - algolia (2.3.0) - faraday (>= 0.15, < 3) - faraday-net_http_persistent (>= 0.15, < 3) - multi_json (~> 1.0) - net-http-persistent algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) @@ -84,27 +78,25 @@ GEM commander (4.6.0) highline (~> 2.0.0) concurrent-ruby (1.3.3) - connection_pool (2.4.1) 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) + domain_name (0.6.20240107) dotenv (2.8.1) emoji_regex (3.2.3) escape (0.0.4) ethon (0.16.0) ffi (>= 1.15.0) - excon (0.109.0) - faraday (1.9.0) + excon (0.110.0) + faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) - faraday-httpclient (< 3) + faraday-httpclient (~> 1.0) faraday-multipart (~> 1.0) - faraday-net_http (< 3) - faraday-net_http_persistent (< 3) - faraday-patron (< 3) + 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) @@ -114,16 +106,12 @@ GEM faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) - faraday-httpclient (2.0.1) - httpclient (>= 2.2) + faraday-httpclient (1.0.1) faraday-multipart (1.0.4) multipart-post (~> 2) - faraday-net_http (2.1.0) - faraday-net_http_persistent (2.0.2) - faraday-net_http (< 3) - net-http-persistent (~> 4.0) - faraday-patron (2.0.1) - patron (>= 0.4.2) + faraday-net_http (1.0.1) + 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.0) @@ -188,19 +176,19 @@ GEM 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-storage_v1 (0.31.0) google-apis-core (>= 0.11.0, < 2.a) - google-cloud-core (1.6.1) + google-cloud-core (1.7.0) 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) + google-cloud-errors (1.4.0) + google-cloud-storage (1.47.0) addressable (~> 2.8) digest-crc (~> 0.4) google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.29.0) + google-apis-storage_v1 (~> 0.31.0) google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) @@ -229,15 +217,12 @@ GEM nanaimo (0.3.0) nap (1.1.0) naturally (2.2.1) - net-http-persistent (4.0.2) - connection_pool (~> 2.2) netrc (0.11.0) nkf (0.2.0) optparse (0.5.0) os (1.1.4) - patron (0.13.3) plist (3.7.1) - public_suffix (4.0.0) + public_suffix (4.0.7) rake (13.2.1) representable (3.2.0) declarative (< 0.1.0) @@ -249,9 +234,9 @@ GEM rouge (2.0.7) ruby-macho (2.5.1) ruby2_keywords (0.0.5) - rubyzip (2.3.0) + rubyzip (2.3.2) security (0.1.5) - signet (0.18.0) + signet (0.19.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) @@ -273,9 +258,6 @@ GEM tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.9.1) unicode-display_width (2.5.0) word_wrap (1.0.0) xcodeproj (1.24.0) @@ -289,22 +271,17 @@ GEM rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) - zeitwerk (2.6.16) PLATFORMS ruby DEPENDENCIES activesupport (>= 6.1.7.3, < 7.1.0) - algolia (= 2.3.0) cocoapods (>= 1.13, < 1.15) - domain_name (= 0.5.20190701) fastlane - public_suffix (= 4.0) - rubyzip (= 2.3.0) RUBY VERSION - ruby 2.6.10p210 + ruby 3.1.6p260 BUNDLED WITH - 2.4.22 + 2.5.13 diff --git a/ios/BlueWallet.xcodeproj/project.pbxproj b/ios/BlueWallet.xcodeproj/project.pbxproj index d42a8f0c98..f53ee2bfbf 100644 --- a/ios/BlueWallet.xcodeproj/project.pbxproj +++ b/ios/BlueWallet.xcodeproj/project.pbxproj @@ -2737,4 +2737,4 @@ /* End XCSwiftPackageProductDependency section */ }; rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} +} \ No newline at end of file diff --git a/ios/Podfile b/ios/Podfile index c65a9bb17f..ade1a6a730 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -79,7 +79,7 @@ post_install do |installer| ) installer.pods_project.targets.each do |target| target.build_configurations.each do |config| - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.4' if ['React-Core-AccessibilityResources'].include? target.name config.build_settings['CODE_SIGN_STYLE'] = "Manual" config.build_settings['CODE_SIGN_IDENTITY'] = "Apple Distribution: Bluewallet Services, S. R. L. (A7W54YZ4WU)" diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 2c7150bdb0..c7e850de05 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -343,7 +343,7 @@ PODS: - React - react-native-randombytes (3.6.1): - React-Core - - react-native-safe-area-context (4.10.4): + - react-native-safe-area-context (4.10.5): - React-Core - react-native-secure-key-store (2.0.10): - React-Core @@ -462,7 +462,7 @@ PODS: - React-perflogger (= 0.72.14) - ReactNativeCameraKit (13.0.0): - React-Core - - RealmJS (12.9.0): + - RealmJS (12.10.0): - React - rn-ldk (0.8.4): - React-Core @@ -803,7 +803,7 @@ SPEC CHECKSUMS: react-native-ios-context-menu: e529171ba760a1af7f2ef0729f5a7f4d226171c5 react-native-qrcode-local-image: 35ccb306e4265bc5545f813e54cc830b5d75bcfc react-native-randombytes: 421f1c7d48c0af8dbcd471b0324393ebf8fe7846 - react-native-safe-area-context: 399a5859f6acbdf67f671c69b53113f535f3b5b0 + react-native-safe-area-context: a240ad4b683349e48b1d51fed1611138d1bdad97 react-native-secure-key-store: 910e6df6bc33cb790aba6ee24bc7818df1fe5898 react-native-tcp-socket: e724380c910c2e704816ec817ed28f1342246ff7 React-NativeModulesApple: 3107f777453f953906d9ba9dc5f8cbd91a6ef913 @@ -824,7 +824,7 @@ SPEC CHECKSUMS: React-utils: 22a77b05da25ce49c744faa82e73856dcae1734e ReactCommon: ff94462e007c568d8cdebc32e3c97af86ec93bb5 ReactNativeCameraKit: 9d46a5d7dd544ca64aa9c03c150d2348faf437eb - RealmJS: 7aa0e7dcc8959d28cee3ab302415a8893e50ad12 + RealmJS: f86da4f2c5b089d976db335f370449903ddc8fbb rn-ldk: 0d8749d98cc5ce67302a32831818c116b67f7643 RNCAsyncStorage: 826b603ae9c0f88b5ac4e956801f755109fa4d5c RNCClipboard: 0a720adef5ec193aa0e3de24c3977222c7e52a37 @@ -850,6 +850,6 @@ SPEC CHECKSUMS: SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 Yoga: c32e0be1a17f8f1f0e633a3122f7666441f52c82 -PODFILE CHECKSUM: d43800c8d806b1d14ba325886c4b71fff2938408 +PODFILE CHECKSUM: f19eea438501edfe85fb2fa51d40ba1b57540758 COCOAPODS: 1.14.3