From 1ec192bec519957b1b714d16bd6da11906f75f28 Mon Sep 17 00:00:00 2001 From: TinyKitten <32848922+TinyKitten@users.noreply.github.com> Date: Fri, 20 Feb 2026 19:20:17 +0900 Subject: [PATCH 1/5] Bump version to 10.1.2 --- android/app/build.gradle | 8 ++--- app.config.ts | 7 ++-- ios/TrainLCD.xcodeproj/project.pbxproj | 44 +++++++++++++------------- package.json | 2 +- 4 files changed, 31 insertions(+), 30 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 2ef945d04..6db64c6dc 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -142,13 +142,13 @@ android { dimension "environment" applicationId "me.tinykitten.trainlcd.dev" versionNameSuffix "-dev" - versionCode 100000259 - versionName "10.1.1" + versionCode 100000260 + versionName "10.1.2" } prod { dimension "environment" - versionCode 100000259 - versionName "10.1.1" + versionCode 100000260 + versionName "10.1.2" } } } diff --git a/app.config.ts b/app.config.ts index d2a798924..ddf1ca1ce 100644 --- a/app.config.ts +++ b/app.config.ts @@ -3,7 +3,7 @@ import type { ConfigContext } from 'expo/config'; export default ({ config }: ConfigContext) => ({ name: 'TrainLCD', slug: 'trainlcd', - version: '10.1.1', + version: '10.1.2', plugins: [ 'expo-font', 'expo-localization', @@ -43,7 +43,7 @@ export default ({ config }: ConfigContext) => ({ }, }, ios: { - buildNumber: '2472', + buildNumber: '2473', bundleIdentifier: process.env.EAS_BUILD_PROFILE === 'production' ? 'me.tinykitten.trainlcd' @@ -60,7 +60,7 @@ export default ({ config }: ConfigContext) => ({ ? 'me.tinykitten.trainlcd' : 'me.tinykitten.trainlcd.dev', permissions: [], - versionCode: 100000259, + versionCode: 100000260, }, owner: 'trainlcd', }); @@ -88,5 +88,6 @@ export default ({ config }: ConfigContext) => ({ + diff --git a/ios/TrainLCD.xcodeproj/project.pbxproj b/ios/TrainLCD.xcodeproj/project.pbxproj index d2ace4ee9..9e81b4170 100644 --- a/ios/TrainLCD.xcodeproj/project.pbxproj +++ b/ios/TrainLCD.xcodeproj/project.pbxproj @@ -2435,7 +2435,7 @@ CODE_SIGN_ENTITLEMENTS = ProdTrainLCD.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = E6R2G33Z36; INFOPLIST_FILE = TrainLCD/Schemes/Prod/Info.plist; @@ -2474,7 +2474,7 @@ CODE_SIGN_ENTITLEMENTS = ProdTrainLCD.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEVELOPMENT_TEAM = E6R2G33Z36; INFOPLIST_FILE = TrainLCD/Schemes/Prod/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = TrainLCD; @@ -2533,7 +2533,7 @@ CODE_SIGN_ENTITLEMENTS = TrainLCD/trainlcd.entitlements; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; CXX = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -2589,7 +2589,7 @@ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", "\"$(inherited)\"", ); - MARKETING_VERSION = 10.1.1; + MARKETING_VERSION = 10.1.2; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "$(inherited)"; @@ -2639,7 +2639,7 @@ CODE_SIGN_ENTITLEMENTS = TrainLCD/trainlcd.entitlements; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; CXX = ""; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -2691,7 +2691,7 @@ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", "\"$(inherited)\"", ); - MARKETING_VERSION = 10.1.1; + MARKETING_VERSION = 10.1.2; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CFLAGS = "$(inherited)"; OTHER_CPLUSPLUSFLAGS = "$(inherited)"; @@ -2718,7 +2718,7 @@ CODE_SIGN_ENTITLEMENTS = CanaryTrainLCD.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = E6R2G33Z36; INFOPLIST_FILE = TrainLCD/Schemes/Dev/Info.plist; @@ -2757,7 +2757,7 @@ CODE_SIGN_ENTITLEMENTS = CanaryTrainLCD.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; INFOPLIST_FILE = TrainLCD/Schemes/Dev/Info.plist; @@ -2968,7 +2968,7 @@ CODE_SIGN_ENTITLEMENTS = RideSessionActivity/CanaryRideSessionActivity.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -3019,7 +3019,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -3070,7 +3070,7 @@ CODE_SIGN_ENTITLEMENTS = WatchWidget/ProdWatchWidget.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -3128,7 +3128,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -3179,7 +3179,7 @@ CODE_SIGN_ENTITLEMENTS = WatchWidget/CanaryWatchWidget.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -3236,7 +3236,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -3284,7 +3284,7 @@ CODE_SIGN_ENTITLEMENTS = RideSessionActivity/ProdRideSessionActivity.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -3335,7 +3335,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -3554,7 +3554,7 @@ CODE_SIGN_ENTITLEMENTS = ProdAppClip/ProdAppClip.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = NO; @@ -3610,7 +3610,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = NO; @@ -3660,7 +3660,7 @@ CODE_SIGN_ENTITLEMENTS = CanaryAppClip/CanaryAppClip.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = NO; @@ -3684,7 +3684,7 @@ "@executable_path/Frameworks", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 10.1.1; + MARKETING_VERSION = 10.1.2; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; @@ -3718,7 +3718,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2472; + CURRENT_PROJECT_VERSION = 2473; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = NO; @@ -3738,7 +3738,7 @@ "@executable_path/Frameworks", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 10.1.1; + MARKETING_VERSION = 10.1.2; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PODS_ROOT = "${SRCROOT}/Pods"; diff --git a/package.json b/package.json index 21280ba68..5adc3bd06 100644 --- a/package.json +++ b/package.json @@ -147,5 +147,5 @@ } }, "name": "trainlcd", - "version": "10.1.1" + "version": "10.1.2" } From d9f2ffc7ca1899596ae5c7ed95db1ac8437336cd Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 20 Feb 2026 19:30:23 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=AA=E3=81=84Fastlane=E3=81=AE=E5=89=8A=E9=99=A4?= =?UTF-8?q?=20(#5382)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/copilot-instructions.md | 2 +- .gitignore | 10 -- AGENTS.md | 10 +- README.md | 6 +- android/Gemfile | 7 - android/Gemfile.lock | 227 --------------------------- android/fastlane/.env.default.sample | 5 - android/fastlane/Appfile | 2 - android/fastlane/Fastfile | 108 ------------- android/fastlane/Pluginfile | 3 - android/fastlane/README.md | 48 ------ ios/Gemfile | 7 - ios/Gemfile.lock | 225 -------------------------- ios/fastlane/.env.default.sample | 5 - ios/fastlane/.gitignore | 1 - ios/fastlane/Appfile | 8 - ios/fastlane/Fastfile | 69 -------- ios/fastlane/Matchfile | 26 --- ios/fastlane/Pluginfile | 3 - ios/fastlane/README.md | 48 ------ package.json | 4 - 21 files changed, 9 insertions(+), 815 deletions(-) delete mode 100644 android/Gemfile delete mode 100644 android/Gemfile.lock delete mode 100644 android/fastlane/.env.default.sample delete mode 100644 android/fastlane/Appfile delete mode 100644 android/fastlane/Fastfile delete mode 100644 android/fastlane/Pluginfile delete mode 100644 android/fastlane/README.md delete mode 100644 ios/Gemfile delete mode 100644 ios/Gemfile.lock delete mode 100644 ios/fastlane/.env.default.sample delete mode 100644 ios/fastlane/.gitignore delete mode 100644 ios/fastlane/Appfile delete mode 100644 ios/fastlane/Fastfile delete mode 100644 ios/fastlane/Matchfile delete mode 100644 ios/fastlane/Pluginfile delete mode 100644 ios/fastlane/README.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 39dc5609c..fe890ee72 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -88,7 +88,7 @@ src/ ```bash pnpm start # Expo開発サーバー起動 -pnpm android / pnpm ios # ネイティブビルド(Fastlane経由) +pnpm android / pnpm ios # ネイティブビルド pnpm web # Web版実行 pnpm lint # Biome Lint実行 pnpm format # Biomeフォーマット適用 diff --git a/.gitignore b/.gitignore index 8bcf0ee20..7a16e2ca2 100644 --- a/.gitignore +++ b/.gitignore @@ -68,16 +68,6 @@ buck-out/ \.buckd/ *.keystore -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/ - -*/fastlane/report.xml -*/fastlane/Preview.html -*/fastlane/screenshots android/google-play-services-account.json ios/TrainLCD.app.dSYM.zip diff --git a/AGENTS.md b/AGENTS.md index 77b468430..8f3c196b4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -31,7 +31,7 @@ This handbook defines how automation agents collaborate safely and effectively o - `assets/`: static media (images, fonts, icons). - `docs/`: human-facing documentation including changelog and incident notes. - `utils/`: developer tooling scripts such as GraphQL codegen config. -- `android/`, `ios/`: native projects managed via Fastlane. +- `android/`, `ios/`: native projects. - `functions/`: Firebase Cloud Functions. ## Tooling & Environment Expectations @@ -39,13 +39,13 @@ This handbook defines how automation agents collaborate safely and effectively o - Target **Node.js 20.x** and **pnpm 10.x**; use the globally installed pnpm (Corepack is unnecessary). - Run `pnpm install` when dependencies shift; avoid re-locking packages unless instructed. - Metro cache issues: run `expo start --clear` only when debugging build failures and document the action. -- For native builds, rely on project scripts (`pnpm android`, `pnpm ios`) rather than invoking Fastlane directly. +- For native builds, rely on project scripts (`pnpm android`, `pnpm ios`). - GraphQL codegen requires `GQL_API_URL` in `.env.local`; run `pnpm gql:codegen` after document or schema updates. ## Build, Test & Development Commands - `pnpm start`: start the Expo Dev Client locally. -- `pnpm android` / `pnpm ios`: build native binaries through Fastlane lanes. +- `pnpm android` / `pnpm ios`: build native binaries. - `pnpm web`: run the web preview. - `pnpm lint`: execute Biome linting (`biome ci ./src` in CI). - `pnpm format`: apply Biome formatting fixes. @@ -87,7 +87,7 @@ This handbook defines how automation agents collaborate safely and effectively o - Store secrets in `.env.local`; treat `.env` as the template, and keep `.env.example` synchronized for onboarding. - Never commit credentials, access tokens, or production endpoints. -- Protect Expo and Fastlane credentials with 2FA and rotate access when automations change. +- Protect Expo credentials with 2FA and rotate access when automations change. - After dependency upgrades (`pnpm up --interactive`) or Expo SDK migrations, run `expo-doctor`, `pnpm lint`, `pnpm test`, and `pnpm typecheck`, then capture results in `docs/changelog.md`. ## Automation Checklists @@ -108,7 +108,7 @@ This handbook defines how automation agents collaborate safely and effectively o **For workflow, release, or CI updates** -- [ ] Cross-check `.github/workflows/` and Fastlane lanes for consistency. +- [ ] Cross-check `.github/workflows/` for consistency. - [ ] Provide dry-run instructions or environment prerequisites. - [ ] Document required secrets, environment variables, or service accounts. diff --git a/README.md b/README.md index 87a0e86ef..898300dfc 100644 --- a/README.md +++ b/README.md @@ -135,8 +135,8 @@ src/ ├── translation.ts # i18n resources └── lineSymbolImage.ts # Line symbol metadata -android/ # Native Android project (Fastlane-managed) -ios/ # Native iOS project (Fastlane-managed) +android/ # Native Android project +ios/ # Native iOS project functions/ # Firebase Cloud Functions docs/ # Architectural notes and runbooks assets/ # Static media bundled with the app @@ -146,7 +146,7 @@ utils/ # Tooling scripts and codegen helpers ### Available Scripts - `pnpm start` - Start the Expo development server -- `pnpm android` / `pnpm ios` - Build and launch native binaries through Fastlane +- `pnpm android` / `pnpm ios` - Build and launch native binaries - `pnpm web` - Serve the Expo web build - `pnpm lint` - Run Biome linter - `pnpm format` - Format code with Biome diff --git a/android/Gemfile b/android/Gemfile deleted file mode 100644 index 55d56631c..000000000 --- a/android/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source "https://rubygems.org" - -gem "abbrev", "~> 0.1" -gem "fastlane", "~> 2.228.0" - -plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') -eval_gemfile(plugins_path) if File.exist?(plugins_path) diff --git a/android/Gemfile.lock b/android/Gemfile.lock deleted file mode 100644 index 351be22d1..000000000 --- a/android/Gemfile.lock +++ /dev/null @@ -1,227 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (3.0.7) - base64 - nkf - rexml - abbrev (0.1.2) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - artifactory (3.0.17) - atomos (0.1.3) - aws-eventstream (1.3.2) - aws-partitions (1.1064.0) - aws-sdk-core (3.220.1) - aws-eventstream (~> 1, >= 1.3.0) - aws-partitions (~> 1, >= 1.992.0) - aws-sigv4 (~> 1.9) - base64 - jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.99.0) - aws-sdk-core (~> 3, >= 3.216.0) - aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.182.0) - aws-sdk-core (~> 3, >= 3.216.0) - aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.5) - aws-sigv4 (1.11.0) - 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.7.0) - rake (>= 12.0.0, < 14.0.0) - domain_name (0.6.20240107) - dotenv (2.8.1) - emoji_regex (3.2.3) - excon (0.112.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.4.0) - fastlane (2.228.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.1) - 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.31.0) - google-apis-core (>= 0.11.0, < 2.a) - google-cloud-core (1.8.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.5.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.31.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.9.0) - mutex_m - jmespath (1.6.2) - json (2.10.1) - jwt (2.10.1) - base64 - mini_magick (4.13.2) - mini_mime (1.1.5) - multi_json (1.15.0) - multipart-post (2.4.1) - mutex_m (0.3.0) - nanaimo (0.4.0) - naturally (2.2.1) - nkf (0.2.0) - optparse (0.6.0) - os (1.1.4) - plist (3.7.2) - public_suffix (6.0.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.1) - rouge (3.28.0) - ruby2_keywords (0.0.5) - rubyzip (2.4.1) - security (0.1.5) - signet (0.19.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) - unicode-display_width (2.6.0) - word_wrap (1.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.1) - rouge (~> 3.28.0) - xcpretty-travis-formatter (1.0.1) - xcpretty (~> 0.2, >= 0.0.7) - -PLATFORMS - arm64-darwin-24 - ruby - -DEPENDENCIES - abbrev (~> 0.1) - fastlane (~> 2.228.0) - -BUNDLED WITH - 2.6.5 diff --git a/android/fastlane/.env.default.sample b/android/fastlane/.env.default.sample deleted file mode 100644 index 5080dc016..000000000 --- a/android/fastlane/.env.default.sample +++ /dev/null @@ -1,5 +0,0 @@ -JSON_KEY_FILE_PATH= -SIGNING_STORE_FILE= -SIGNING_STORE_PASSWORD= -SIGNING_KEY_ALIAS= -SIGNING_KEY_PASSWORD= diff --git a/android/fastlane/Appfile b/android/fastlane/Appfile deleted file mode 100644 index 94e9ac2dd..000000000 --- a/android/fastlane/Appfile +++ /dev/null @@ -1,2 +0,0 @@ -json_key_file(ENV["JSON_KEY_FILE_PATH"]) # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one -package_name(ENV["PACKAGE_NAME"]) # e.g. com.krausefx.app diff --git a/android/fastlane/Fastfile b/android/fastlane/Fastfile deleted file mode 100644 index d6cc7bd90..000000000 --- a/android/fastlane/Fastfile +++ /dev/null @@ -1,108 +0,0 @@ -# This file contains the fastlane.tools configuration -# You can find the documentation at https://docs.fastlane.tools -# -# For a list of all available actions, check out -# -# https://docs.fastlane.tools/actions -# -# For a list of all available plugins, check out -# -# https://docs.fastlane.tools/plugins/available-plugins -# - -# Uncomment the line if you want fastlane to automatically update itself -# update_fastlane - -default_platform(:android) - -platform :android do - def increment_version_code(gradle_build: 'app/build.gradle') - sh %Q{cd ../ && echo "$(awk 'NR==1,/versionCode [[:digit:]]+$/{sub(/versionCode [[:digit:]]+$/,"versionCode "$2+10)}1' ./app/build.gradle)" > #{gradle_build} && cd -} - end - - def increment_wearable_version_code(gradle_build: 'wearable/build.gradle.kts') - sh %Q{cd ../ && echo "$(awk 'NR==1,/versionCode \\= [[:digit:]]+$/{sub(/versionCode \\= [[:digit:]]+$/,"versionCode \\=\s"$3+10)}1' #{gradle_build})" > #{gradle_build} && cd -} - end - - desc "Bump version number" - lane :bump_version do - increment_version_code() - increment_wearable_version_code() - end - - lane :deploy do - gradle( - task: "bundle", - build_type: "prodRelease", - print_command: false, - properties: { - "android.injected.signing.store.file" => ENV["SIGNING_STORE_FILE"], - "android.injected.signing.store.password" => ENV["SIGNING_STORE_PASSWORD"], - "android.injected.signing.key.alias" => ENV["SIGNING_KEY_ALIAS"], - "android.injected.signing.key.password" => ENV["SIGNING_KEY_PASSWORD"], - } - ) - upload_to_play_store( - track: "internal", - package_name: "me.tinykitten.trainlcd", - aab_paths: [ - "app/build/outputs/bundle/prodRelease/app-prod-release.aab", - ], - skip_upload_apk: true, - skip_upload_images: true, - skip_upload_screenshots: true, - skip_upload_metadata: true, - skip_upload_changelogs: true - ) - upload_to_play_store( - track: "wear:internal", - package_name: "me.tinykitten.trainlcd", - aab_paths: [ - "wearable/build/outputs/bundle/prodRelease/wearable-prod-release.aab" - ], - skip_upload_apk: true, - skip_upload_images: true, - skip_upload_screenshots: true, - skip_upload_metadata: true, - skip_upload_changelogs: true - ) - end - - lane :deploy_canary do - gradle( - task: "bundle", - build_type: "devRelease", - print_command: false, - properties: { - "android.injected.signing.store.file" => ENV["SIGNING_STORE_FILE"], - "android.injected.signing.store.password" => ENV["SIGNING_STORE_PASSWORD"], - "android.injected.signing.key.alias" => ENV["SIGNING_KEY_ALIAS"], - "android.injected.signing.key.password" => ENV["SIGNING_KEY_PASSWORD"], - } - ) - upload_to_play_store( - track: "internal", - package_name: "me.tinykitten.trainlcd.dev", - aab_paths: [ - "app/build/outputs/bundle/devRelease/app-dev-release.aab", - ], - skip_upload_apk: true, - skip_upload_images: true, - skip_upload_screenshots: true, - skip_upload_metadata: true, - skip_upload_changelogs: true - ) - upload_to_play_store( - track: "wear:internal", - package_name: "me.tinykitten.trainlcd.dev", - aab_paths: [ - "wearable/build/outputs/bundle/devRelease/wearable-dev-release.aab" - ], - skip_upload_apk: true, - skip_upload_images: true, - skip_upload_screenshots: true, - skip_upload_metadata: true, - skip_upload_changelogs: true - ) - end -end diff --git a/android/fastlane/Pluginfile b/android/fastlane/Pluginfile deleted file mode 100644 index 273a6b6f4..000000000 --- a/android/fastlane/Pluginfile +++ /dev/null @@ -1,3 +0,0 @@ -# Autogenerated by fastlane -# -# Ensure this file is checked in to source control! diff --git a/android/fastlane/README.md b/android/fastlane/README.md deleted file mode 100644 index 5447fd06d..000000000 --- a/android/fastlane/README.md +++ /dev/null @@ -1,48 +0,0 @@ -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 - -## Android - -### android bump_version - -```sh -[bundle exec] fastlane android bump_version -``` - -Bump version number - -### android deploy - -```sh -[bundle exec] fastlane android deploy -``` - - - -### android deploy_canary - -```sh -[bundle exec] fastlane android deploy_canary -``` - - - ----- - -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/ios/Gemfile b/ios/Gemfile deleted file mode 100644 index 55d56631c..000000000 --- a/ios/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source "https://rubygems.org" - -gem "abbrev", "~> 0.1" -gem "fastlane", "~> 2.228.0" - -plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') -eval_gemfile(plugins_path) if File.exist?(plugins_path) diff --git a/ios/Gemfile.lock b/ios/Gemfile.lock deleted file mode 100644 index 3ec40cc53..000000000 --- a/ios/Gemfile.lock +++ /dev/null @@ -1,225 +0,0 @@ -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.2) - aws-partitions (1.1064.0) - aws-sdk-core (3.220.1) - aws-eventstream (~> 1, >= 1.3.0) - aws-partitions (~> 1, >= 1.992.0) - aws-sigv4 (~> 1.9) - base64 - jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.99.0) - aws-sdk-core (~> 3, >= 3.216.0) - aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.182.0) - aws-sdk-core (~> 3, >= 3.216.0) - aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.5) - aws-sigv4 (1.11.0) - 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.7.0) - rake (>= 12.0.0, < 14.0.0) - domain_name (0.6.20240107) - dotenv (2.8.1) - emoji_regex (3.2.3) - excon (0.112.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.4.0) - 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.31.0) - google-apis-core (>= 0.11.0, < 2.a) - google-cloud-core (1.8.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.5.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.31.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.9.0) - mutex_m - jmespath (1.6.2) - json (2.10.1) - jwt (2.10.1) - base64 - mini_magick (4.13.2) - mini_mime (1.1.5) - multi_json (1.15.0) - multipart-post (2.4.1) - mutex_m (0.3.0) - nanaimo (0.4.0) - naturally (2.2.1) - nkf (0.2.0) - optparse (0.6.0) - os (1.1.4) - plist (3.7.2) - public_suffix (6.0.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.1) - rouge (3.28.0) - ruby2_keywords (0.0.5) - rubyzip (2.4.1) - security (0.1.5) - signet (0.19.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) - unicode-display_width (2.6.0) - word_wrap (1.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 - arm64-darwin-24 - ruby - -DEPENDENCIES - fastlane - -BUNDLED WITH - 2.6.5 diff --git a/ios/fastlane/.env.default.sample b/ios/fastlane/.env.default.sample deleted file mode 100644 index 11b508406..000000000 --- a/ios/fastlane/.env.default.sample +++ /dev/null @@ -1,5 +0,0 @@ -APPLE_ID= -ITC_TEAM_ID= -TEAM_ID= -MATCH_PASSWORD= -FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD= diff --git a/ios/fastlane/.gitignore b/ios/fastlane/.gitignore deleted file mode 100644 index 4c49bd78f..000000000 --- a/ios/fastlane/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.env diff --git a/ios/fastlane/Appfile b/ios/fastlane/Appfile deleted file mode 100644 index fb2b97d04..000000000 --- a/ios/fastlane/Appfile +++ /dev/null @@ -1,8 +0,0 @@ -app_identifier("me.tinykitten.trainlcd") # The bundle identifier of your app -apple_id(ENV["APPLE_ID"]) # Your Apple email address - -itc_team_id(ENV["ITC_TEAM_ID"]) # App Store Connect Team ID -team_id(ENV["TEAM_ID"]) # Developer Portal Team ID - -# For more information about the Appfile, see: -# https://docs.fastlane.tools/advanced/#appfile diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile deleted file mode 100644 index 218d7c26e..000000000 --- a/ios/fastlane/Fastfile +++ /dev/null @@ -1,69 +0,0 @@ -# This file contains the fastlane.tools configuration -# You can find the documentation at https://docs.fastlane.tools -# -# For a list of all available actions, check out -# -# https://docs.fastlane.tools/actions -# -# For a list of all available plugins, check out -# -# https://docs.fastlane.tools/plugins/available-plugins -# - -# Uncomment the line if you want fastlane to automatically update itself -# update_fastlane - -default_platform(:ios) - -platform :ios do - desc "Bump version number" - lane :bump_version do - increment_build_number( - xcodeproj: "TrainLCD.xcodeproj", - skip_info_plist: true - ) - end - desc "Push a new beta build to TestFlight" - lane :deploy do - match( - type: "appstore", - readonly: is_ci, - app_identifier: [ - "me.tinykitten.trainlcd", - "me.tinykitten.trainlcd.watchkitapp", - "me.tinykitten.trainlcd.watchkitapp.watchkitextension", - "me.tinykitten.trainlcd.watchkitapp.watchkitextension.watchwidget", - "me.tinykitten.trainlcd.ridesessionactivity", - "me.tinykitten.trainlcd.Clip" - ], - force_for_new_devices: true - ) - gym(workspace: "TrainLCD.xcworkspace", scheme: "ProdTrainLCD") - upload_to_testflight( - skip_waiting_for_build_processing: true - ) - end - desc "Deploy a development build to TestFlight" - lane :deploy_canary do - match( - type: "appstore", - readonly: is_ci, - app_identifier: [ - "me.tinykitten.trainlcd.dev", - "me.tinykitten.trainlcd.dev.watchkitapp", - "me.tinykitten.trainlcd.dev.watchkitapp.watchkitextension", - "me.tinykitten.trainlcd.dev.watchkitapp.watchkitextension.watchwidget", - "me.tinykitten.trainlcd.dev.ridesessionactivity", - "me.tinykitten.trainlcd.dev.Clip" - ], - force_for_new_devices: true - ) - gym( - workspace: "TrainLCD.xcworkspace", - scheme: "CanaryTrainLCD" - ) - upload_to_testflight( - skip_waiting_for_build_processing: true - ) - end -end diff --git a/ios/fastlane/Matchfile b/ios/fastlane/Matchfile deleted file mode 100644 index 40bfd9d10..000000000 --- a/ios/fastlane/Matchfile +++ /dev/null @@ -1,26 +0,0 @@ -git_url("git@github.com:TrainLCD/Certificates.git") - -storage_mode("git") - -type("development") # The default type, can be: appstore, adhoc, enterprise or development - -app_identifier([ - "me.tinykitten.trainlcd", - "me.tinykitten.trainlcd.watchkitapp", - "me.tinykitten.trainlcd.watchkitapp.watchkitextension", - "me.tinykitten.trainlcd.watchkitapp.watchkitextension.watchwidget", - "me.tinykitten.trainlcd.ridesessionactivity", - "me.tinykitten.trainlcd.Clip", - "me.tinykitten.trainlcd.dev", - "me.tinykitten.trainlcd.dev.watchkitapp", - "me.tinykitten.trainlcd.dev.watchkitapp.watchkitextension", - "me.tinykitten.trainlcd.dev.watchkitapp.watchkitextension.watchwidget", - "me.tinykitten.trainlcd.dev.ridesessionactivity", - "me.tinykitten.trainlcd.dev.Clip" - ]) -# username("user@fastlane.tools") # Your Apple Developer Portal username - -# For all available options run `fastlane match --help` -# Remove the # in the beginning of the line to enable the other options - -# The docs are available on https://docs.fastlane.tools/actions/match diff --git a/ios/fastlane/Pluginfile b/ios/fastlane/Pluginfile deleted file mode 100644 index 273a6b6f4..000000000 --- a/ios/fastlane/Pluginfile +++ /dev/null @@ -1,3 +0,0 @@ -# Autogenerated by fastlane -# -# Ensure this file is checked in to source control! diff --git a/ios/fastlane/README.md b/ios/fastlane/README.md deleted file mode 100644 index ba71829b9..000000000 --- a/ios/fastlane/README.md +++ /dev/null @@ -1,48 +0,0 @@ -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 bump_version - -```sh -[bundle exec] fastlane ios bump_version -``` - -Bump version number - -### ios deploy - -```sh -[bundle exec] fastlane ios deploy -``` - -Push a new beta build to TestFlight - -### ios deploy_canary - -```sh -[bundle exec] fastlane ios deploy_canary -``` - -Deploy a development build to TestFlight - ----- - -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/package.json b/package.json index 5adc3bd06..3b83dbc06 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,6 @@ "test": "TZ=UTC jest", "typecheck": "tsc --noEmit", "watch:test": "TZ=UTC jest --watch", - "deploy:ios": "cd ios && bundle exec fastlane bump_version && bundle exec fastlane deploy", - "deploy:ios:canary": "cd ios && bundle exec fastlane bump_version && bundle exec fastlane deploy_canary", - "deploy:android": "cd android && bundle exec fastlane bump_version && PACKAGE_NAME=me.tinykitten.trainlcd bundle exec fastlane deploy", - "deploy:android:canary": "cd android && bundle exec fastlane bump_version && PACKAGE_NAME=me.tinykitten.trainlcd.dev bundle exec fastlane deploy_canary", "gql:codegen": "graphql-codegen --config utils/codegen.ts", "version:bump": "node scripts/bump-version.js" }, From 28e2a4785732a5e859781af38ae6fedd51ff313e Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Sat, 21 Feb 2026 05:53:43 +0900 Subject: [PATCH 3/5] =?UTF-8?q?PadArch=E3=81=AE=E3=83=AC=E3=82=A4=E3=82=A2?= =?UTF-8?q?=E3=82=A6=E3=83=88=E3=81=8C=E6=A9=9F=E7=A8=AE=E4=BE=9D=E5=AD=98?= =?UTF-8?q?=E3=81=97=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20(#5383)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * PadArchのレイアウトが機種依存しないように修正 * ゼロ除算絶対許さないマン --- src/components/PadArch.tsx | 320 ++++++++++++++++++++++--------------- 1 file changed, 189 insertions(+), 131 deletions(-) diff --git a/src/components/PadArch.tsx b/src/components/PadArch.tsx index 118f232c4..f0867210b 100644 --- a/src/components/PadArch.tsx +++ b/src/components/PadArch.tsx @@ -53,8 +53,76 @@ type ColorSegment = { yEnd: number; }; -// animatedSurface の bottom: -200 によるSVG座標系オフセット -const ARC_SVG_Y_OFFSET = 200; +const STROKE_WIDTH = 128; +const DOT_RADIUS = 34; // circle width(68) / 2 +const NAME_TOP_OFFSET = 42; + +/** SVG 楕円弧の中心パラメータを算出する (SVG Spec F.6.5) */ +const ARC_EPS = 1e-6; +const computeArcEllipse = ( + x1: number, + y1: number, + x2: number, + y2: number, + rawRx: number, + rawRy: number, + largeArc: boolean, + sweep: boolean +): { cx: number; cy: number; rx: number; ry: number } => { + let rx = Math.max(rawRx, ARC_EPS); + let ry = Math.max(rawRy, ARC_EPS); + const dx = (x1 - x2) / 2; + const dy = (y1 - y2) / 2; + const d = (dx * dx) / (rx * rx) + (dy * dy) / (ry * ry); + if (d > 1) { + const s = Math.sqrt(d); + rx *= s; + ry *= s; + } + const num = Math.max( + 0, + rx * rx * ry * ry - rx * rx * dy * dy - ry * ry * dx * dx + ); + const denom = rx * rx * dy * dy + ry * ry * dx * dx; + const root = denom > 0 ? Math.sqrt(num / denom) : 0; + const sign = largeArc === sweep ? -1 : 1; + return { + cx: (sign * root * rx * dy) / ry + (x1 + x2) / 2, + cy: (sign * root * -(ry * dx)) / rx + (y1 + y2) / 2, + rx, + ry, + }; +}; + +/** 楕円弧上で指定した y 座標に対応する x 座標を返す(外側の弧) */ +const getArcXAtY = ( + y: number, + cx: number, + cy: number, + rx: number, + ry: number +): number => { + if (ry < ARC_EPS) return cx; + const t = Math.max(-1, Math.min(1, (y - cy) / ry)); + return cx + rx * Math.sqrt(1 - t * t); +}; + +/** 楕円上の指定座標における外向き単位法線の水平成分を返す */ +const getOutwardNormalX = ( + x: number, + y: number, + cx: number, + cy: number, + rx: number, + ry: number +): number => { + const clampedRx = Math.max(rx, ARC_EPS); + const clampedRy = Math.max(ry, ARC_EPS); + const gx = (x - cx) / (clampedRx * clampedRx); + const gy = (y - cy) / (clampedRy * clampedRy); + const len = Math.sqrt(gx * gx + gy * gy); + return len > 0 ? gx / len : 1; +}; const computeColorSegments = ( stations: Station[], @@ -102,21 +170,17 @@ const computeColorSegments = ( for (let i = 1; i <= stationColors.length; i++) { if (i === stationColors.length || stationColors[i] !== currentColor) { - // アニメーションSVGはARC_SVG_Y_OFFSETだけ下にずれているため境界もずらす // 境界位置: 前の駅ドットと次の駅ドットの間を 0.8 の比率で按分(やや次の駅寄り) const BOUNDARY_RATIO = 0.8; const yStart = segStartIdx === 0 ? -height : dotYs[segStartIdx - 1] * (1 - BOUNDARY_RATIO) + - dotYs[segStartIdx] * BOUNDARY_RATIO + - ARC_SVG_Y_OFFSET; + dotYs[segStartIdx] * BOUNDARY_RATIO; const yEnd = i === stationColors.length ? 2 * height - : dotYs[i - 1] * (1 - BOUNDARY_RATIO) + - dotYs[i] * BOUNDARY_RATIO + - ARC_SVG_Y_OFFSET; + : dotYs[i - 1] * (1 - BOUNDARY_RATIO) + dotYs[i] * BOUNDARY_RATIO; segments.push({ color: currentColor, yStart, yEnd }); @@ -154,12 +218,8 @@ const styles = StyleSheet.create({ arrivedCircle: { width: 18, height: 18, - marginLeft: 32, - marginTop: 24, - }, - animatedSurface: { - position: 'absolute', - bottom: -200, + marginLeft: 21, + marginTop: 25, }, clipViewStyle: { overflow: 'hidden', @@ -433,7 +493,22 @@ const PadArch: React.FC = ({ [windowWidth, windowHeight] ); const hexLineColor = line.color ?? '#000'; - const strokeWidth = 128; + const strokeWidth = STROKE_WIDTH; + + // アークの楕円中心を算出(ドット・ラベル・シェブロンの位置計算に使用) + const arc = useMemo(() => { + const rx = windowWidth / 1.5; + return computeArcEllipse( + 0, + -64, + rx, + windowHeight, + rx, + windowHeight, + false, + true + ); + }, [windowWidth, windowHeight]); const colorSegments = useMemo( () => @@ -446,80 +521,60 @@ const PadArch: React.FC = ({ [stations, trainTypeLines, hexLineColor, windowHeight] ); - const dynamicStyles = useMemo( - () => ({ + const dynamicStyles = useMemo(() => { + const chevronY = (4 * windowHeight) / 7 + 84; + const chevronArrivedY = (4 * windowHeight) / 7; + return { + arcContainer: { width: windowWidth, height: windowHeight }, stationNameContainer: { width: windowWidth / 4 }, stationName: { width: windowWidth / 4 }, clipViewStyle: { width: windowWidth }, chevron: { - right: windowWidth / 3.15, - top: (4 * windowHeight) / 7 + 84, + right: + windowWidth - + getArcXAtY(chevronY, arc.cx, arc.cy, arc.rx, arc.ry) - + 30, + top: chevronY, }, chevronArrived: { - top: (4 * windowHeight) / 7, - right: windowWidth / 2.985, + top: chevronArrivedY, + right: + windowWidth - + getArcXAtY(chevronArrivedY, arc.cx, arc.cy, arc.rx, arc.ry) - + 36, }, - }), - [windowWidth, windowHeight] - ); + }; + }, [windowWidth, windowHeight, arc]); const getDotLeft = useCallback( (i: number): number => { - const leftPad = 0; - switch (i) { - case 0: - return windowWidth / 3 + leftPad; - case 1: - return windowWidth / 2.35 + leftPad; - case 2: - return windowWidth / 1.975 + leftPad; - case 3: - return windowWidth / 1.785 + leftPad; - case 4: - return windowWidth / 1.655 - 3.5; - default: - return 0; - } + const dotY = i === 0 ? windowHeight / 30 : (i * windowHeight) / 7; + const arcX = getArcXAtY(dotY, arc.cx, arc.cy, arc.rx, arc.ry); + const nx = getOutwardNormalX(arcX, dotY, arc.cx, arc.cy, arc.rx, arc.ry); + // ストロークの曲率によりバンドの視覚的中心がアーク中心線より外側にずれるため補正 + const ny2 = 1 - nx * nx; + const bandCenterOffset = (STROKE_WIDTH / 2) * ny2; + return arcX + bandCenterOffset - DOT_RADIUS; }, - [windowWidth] + [windowHeight, arc] ); const getStationNameLeft = useCallback( (i: number): number => { - switch (i) { - case 0: - return windowWidth / 2.2; - case 1: - return windowWidth / 1.925; - case 2: - return windowWidth / 1.7; - case 3: - return windowWidth / 1.55; - case 4: - return windowWidth / 1.47; - default: - return 0; - } + const dotY = i === 0 ? windowHeight / 30 : (i * windowHeight) / 7; + const arcX = getArcXAtY(dotY, arc.cx, arc.cy, arc.rx, arc.ry); + const nx = getOutwardNormalX(arcX, dotY, arc.cx, arc.cy, arc.rx, arc.ry); + // ストローク幅の水平断面(64/nx)でバンド外縁を超えた位置にラベルを配置 + const safeNx = Math.max(nx, 0.3); + return arcX + STROKE_WIDTH / 2 / safeNx + 12; }, - [windowWidth] + [windowHeight, arc] ); const getStationNameTop = useCallback( (i: number): number => { - switch (i) { - case 0: - return -8; - case 1: - return windowHeight / 11.5; - case 2: - return windowHeight / 4.5; - case 3: - return windowHeight / 2.75; - case 4: - return windowHeight / 1.9; - default: - return 0; - } + const dotY = i === 0 ? windowHeight / 30 : (i * windowHeight) / 7; + return dotY - NAME_TOP_OFFSET; }, [windowHeight] ); @@ -563,77 +618,80 @@ const PadArch: React.FC = ({ windowHeight={windowHeight} /> - - - - + {/* 背景アークと色セグメントを同一コンテナに格納し座標系を統一 */} + + + + + - {/* 暗色層: 区間ごとにViewクリッピングで色分け */} - - {colorSegments.map((seg) => ( - - + {colorSegments.map((seg) => ( + - - - - ))} - - {/* 主色層: 区間ごとにViewクリッピングで色分け */} - - {colorSegments.map((seg) => ( - - + + + + ))} + + {/* 主色層: 区間ごとにViewクリッピングで色分け */} + + {colorSegments.map((seg) => ( + - - - - ))} - + + + + + ))} + + Date: Sat, 21 Feb 2026 05:57:56 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=E6=84=8F=E5=91=B3=E3=82=82=E3=81=AA?= =?UTF-8?q?=E3=81=8F=E3=83=98=E3=83=83=E3=83=80=E3=83=BC=E3=81=AE=E3=83=AC?= =?UTF-8?q?=E3=82=A4=E3=82=A2=E3=82=A6=E3=83=88=E3=81=8C=E6=A9=9F=E7=A8=AE?= =?UTF-8?q?=E4=BE=9D=E5=AD=98=E3=81=97=E3=81=A6=E3=81=84=E3=81=9F=20(#5384?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/HeaderE235.tsx | 4 ++-- src/components/HeaderJL.tsx | 4 ++-- src/components/HeaderJRWest.tsx | 6 ++---- src/components/HeaderSaikyo.tsx | 2 +- src/components/HeaderTY.tsx | 10 ++-------- src/components/NumberingIconSquare.tsx | 6 +++--- 6 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/components/HeaderE235.tsx b/src/components/HeaderE235.tsx index c664efb45..4a9bd58e2 100644 --- a/src/components/HeaderE235.tsx +++ b/src/components/HeaderE235.tsx @@ -1,6 +1,6 @@ import { LinearGradient } from 'expo-linear-gradient'; import React, { useMemo } from 'react'; -import { Platform, StyleSheet, View } from 'react-native'; +import { StyleSheet, View } from 'react-native'; import { STATION_NAME_FONT_SIZE } from '../constants'; import { useLoopLine } from '../hooks'; import isTablet from '../utils/isTablet'; @@ -220,7 +220,7 @@ const HeaderE235: React.FC = (props) => { threeLetterCode={threeLetterCode} withDarkTheme allowScaling - transformOrigin={Platform.OS === 'android' ? 'bottom' : undefined} + transformOrigin="bottom" /> ) : null} = (props) => { threeLetterCode={threeLetterCode} withDarkTheme allowScaling - transformOrigin={Platform.OS === 'android' ? 'bottom' : undefined} + transformOrigin="bottom" /> ) : null} = (props) => { threeLetterCode={threeLetterCode} withDarkTheme allowScaling - transformOrigin={ - Platform.OS === 'android' ? 'bottom' : undefined - } + transformOrigin="bottom" /> ) : null} diff --git a/src/components/HeaderSaikyo.tsx b/src/components/HeaderSaikyo.tsx index 502c0934a..dd3e36c7b 100644 --- a/src/components/HeaderSaikyo.tsx +++ b/src/components/HeaderSaikyo.tsx @@ -225,7 +225,7 @@ const HeaderSaikyo: React.FC = (props) => { stationNumber={currentStationNumber.stationNumber || ''} threeLetterCode={threeLetterCode} allowScaling - transformOrigin={Platform.OS === 'android' ? 'bottom' : undefined} + transformOrigin="bottom" /> ) : null} diff --git a/src/components/HeaderTY.tsx b/src/components/HeaderTY.tsx index e2740e8f6..54f0d057a 100644 --- a/src/components/HeaderTY.tsx +++ b/src/components/HeaderTY.tsx @@ -1,12 +1,6 @@ import { LinearGradient } from 'expo-linear-gradient'; import React from 'react'; -import { - Platform, - StyleSheet, - Text, - useWindowDimensions, - View, -} from 'react-native'; +import { StyleSheet, Text, useWindowDimensions, View } from 'react-native'; import Animated from 'react-native-reanimated'; import { STATION_NAME_FONT_SIZE } from '../constants'; import { useHeaderAnimation } from '../hooks'; @@ -225,7 +219,7 @@ const HeaderTY: React.FC = (props) => { stationNumber={currentStationNumber.stationNumber || ''} threeLetterCode={threeLetterCode} allowScaling - transformOrigin={Platform.OS === 'android' ? 'bottom' : undefined} + transformOrigin="bottom" withDarkTheme /> ) : null} diff --git a/src/components/NumberingIconSquare.tsx b/src/components/NumberingIconSquare.tsx index bfb1c1369..431c4483a 100644 --- a/src/components/NumberingIconSquare.tsx +++ b/src/components/NumberingIconSquare.tsx @@ -131,7 +131,7 @@ const NumberingIconSquare: React.FC = ({ threeLetterCode, allowScaling, size, - transformOrigin = Platform.OS === 'android' ? 'center' : 'bottom', + transformOrigin = 'center', withOutline, }: Props) => { const [lineSymbol, ...stationNumberRest] = stationNumberRaw.split('-'); @@ -143,7 +143,7 @@ const NumberingIconSquare: React.FC = ({ style={[ styles.tlcRoot, { - transformOrigin: transformOrigin, + transformOrigin, }, ]} > @@ -178,7 +178,7 @@ const NumberingIconSquare: React.FC = ({ style={ allowScaling && { transform: [{ scale: 0.8 }], - transformOrigin: 'bottom', + transformOrigin, paddingVertical: isTablet ? 8 : 4, paddingHorizontal: isTablet ? 8 : 4, } From a4cf29ecf7c2f1f171eebaaf236ac373ef36d346 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 05:59:09 +0900 Subject: [PATCH 5/5] Bump version for canary release (#5386) Co-authored-by: TinyKitten <32848922+TinyKitten@users.noreply.github.com> --- android/app/build.gradle | 4 +-- app.config.ts | 5 ++-- ios/TrainLCD.xcodeproj/project.pbxproj | 36 +++++++++++++------------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 6db64c6dc..57871caf9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -142,12 +142,12 @@ android { dimension "environment" applicationId "me.tinykitten.trainlcd.dev" versionNameSuffix "-dev" - versionCode 100000260 + versionCode 100000261 versionName "10.1.2" } prod { dimension "environment" - versionCode 100000260 + versionCode 100000261 versionName "10.1.2" } } diff --git a/app.config.ts b/app.config.ts index ddf1ca1ce..d6244880a 100644 --- a/app.config.ts +++ b/app.config.ts @@ -43,7 +43,7 @@ export default ({ config }: ConfigContext) => ({ }, }, ios: { - buildNumber: '2473', + buildNumber: '2474', bundleIdentifier: process.env.EAS_BUILD_PROFILE === 'production' ? 'me.tinykitten.trainlcd' @@ -60,7 +60,7 @@ export default ({ config }: ConfigContext) => ({ ? 'me.tinykitten.trainlcd' : 'me.tinykitten.trainlcd.dev', permissions: [], - versionCode: 100000260, + versionCode: 100000261, }, owner: 'trainlcd', }); @@ -89,5 +89,6 @@ export default ({ config }: ConfigContext) => ({ + diff --git a/ios/TrainLCD.xcodeproj/project.pbxproj b/ios/TrainLCD.xcodeproj/project.pbxproj index 9e81b4170..e938e16de 100644 --- a/ios/TrainLCD.xcodeproj/project.pbxproj +++ b/ios/TrainLCD.xcodeproj/project.pbxproj @@ -2435,7 +2435,7 @@ CODE_SIGN_ENTITLEMENTS = ProdTrainLCD.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = E6R2G33Z36; INFOPLIST_FILE = TrainLCD/Schemes/Prod/Info.plist; @@ -2474,7 +2474,7 @@ CODE_SIGN_ENTITLEMENTS = ProdTrainLCD.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEVELOPMENT_TEAM = E6R2G33Z36; INFOPLIST_FILE = TrainLCD/Schemes/Prod/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = TrainLCD; @@ -2533,7 +2533,7 @@ CODE_SIGN_ENTITLEMENTS = TrainLCD/trainlcd.entitlements; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; CXX = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -2639,7 +2639,7 @@ CODE_SIGN_ENTITLEMENTS = TrainLCD/trainlcd.entitlements; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; CXX = ""; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -2718,7 +2718,7 @@ CODE_SIGN_ENTITLEMENTS = CanaryTrainLCD.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = E6R2G33Z36; INFOPLIST_FILE = TrainLCD/Schemes/Dev/Info.plist; @@ -2757,7 +2757,7 @@ CODE_SIGN_ENTITLEMENTS = CanaryTrainLCD.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; INFOPLIST_FILE = TrainLCD/Schemes/Dev/Info.plist; @@ -2968,7 +2968,7 @@ CODE_SIGN_ENTITLEMENTS = RideSessionActivity/CanaryRideSessionActivity.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -3019,7 +3019,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -3070,7 +3070,7 @@ CODE_SIGN_ENTITLEMENTS = WatchWidget/ProdWatchWidget.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -3128,7 +3128,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -3179,7 +3179,7 @@ CODE_SIGN_ENTITLEMENTS = WatchWidget/CanaryWatchWidget.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -3236,7 +3236,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -3284,7 +3284,7 @@ CODE_SIGN_ENTITLEMENTS = RideSessionActivity/ProdRideSessionActivity.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -3335,7 +3335,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -3554,7 +3554,7 @@ CODE_SIGN_ENTITLEMENTS = ProdAppClip/ProdAppClip.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = NO; @@ -3610,7 +3610,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = NO; @@ -3660,7 +3660,7 @@ CODE_SIGN_ENTITLEMENTS = CanaryAppClip/CanaryAppClip.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = NO; @@ -3718,7 +3718,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2473; + CURRENT_PROJECT_VERSION = 2474; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = E6R2G33Z36; ENABLE_USER_SCRIPT_SANDBOXING = NO;