From 5ae2e3f41e5c379866ba76275f1a19715fbd2b90 Mon Sep 17 00:00:00 2001 From: Hur Ali Date: Thu, 2 Jul 2026 14:59:21 +0500 Subject: [PATCH 1/6] refactor: drop support for expo 54 --- .github/actions/prepare-android/action.yml | 2 +- .github/workflows/ci.yml | 9 - CONTRIBUTING.md | 22 +- apps/AndroidApp/app/build.gradle.kts | 4 - .../android/expo/BrownfieldStore.kt | 4 - .../android/expo/ReactNativeConstants.kt | 6 - .../android/expo/ReactNativeHostManager.kt | 3 - apps/AndroidApp/gradle/libs.versions.toml | 1 - apps/AndroidApp/package.json | 1 - .../project.pbxproj | 276 --- .../Brownfield Apple App Expo 54.xcscheme | 52 - .../xcschemes/xcschememanagement.plist | 5 - apps/AppleApp/package.json | 1 - apps/ExpoApp54/.detoxrc.cjs | 13 - apps/ExpoApp54/.gitignore | 46 - apps/ExpoApp54/BrownfieldStore.brownie.ts | 21 - apps/ExpoApp54/README.md | 50 - apps/ExpoApp54/RNApp.tsx | 82 - .../__tests__/brownfield.example.test.tsx | 12 - apps/ExpoApp54/app.json | 67 - apps/ExpoApp54/app/(tabs)/_layout.tsx | 49 - apps/ExpoApp54/app/(tabs)/explore.tsx | 126 -- apps/ExpoApp54/app/(tabs)/index.tsx | 107 -- apps/ExpoApp54/app/(tabs)/postMessage.tsx | 107 -- apps/ExpoApp54/app/_layout.tsx | 31 - apps/ExpoApp54/app/modal.tsx | 29 - .../assets/images/android-icon-background.png | Bin 17549 -> 0 bytes .../assets/images/android-icon-foreground.png | Bin 78796 -> 0 bytes .../assets/images/android-icon-monochrome.png | Bin 4140 -> 0 bytes apps/ExpoApp54/assets/images/favicon.png | Bin 1129 -> 0 bytes apps/ExpoApp54/assets/images/icon.png | Bin 393493 -> 0 bytes .../assets/images/partial-react-logo.png | Bin 5075 -> 0 bytes apps/ExpoApp54/assets/images/react-logo.png | Bin 6341 -> 0 bytes .../ExpoApp54/assets/images/react-logo@2x.png | Bin 14225 -> 0 bytes .../ExpoApp54/assets/images/react-logo@3x.png | Bin 21252 -> 0 bytes apps/ExpoApp54/assets/images/splash-icon.png | Bin 17547 -> 0 bytes apps/ExpoApp54/brownfield.config.json | 14 - apps/ExpoApp54/brownfield.navigation.ts | 25 - apps/ExpoApp54/components/counter/index.tsx | 27 - apps/ExpoApp54/components/external-link.tsx | 30 - apps/ExpoApp54/components/haptic-tab.tsx | 18 - apps/ExpoApp54/components/hello-wave.tsx | 20 - .../components/parallax-scroll-view.tsx | 85 - .../components/postMessage/Message.ts | 6 - .../components/postMessage/MessageBubble.tsx | 82 - apps/ExpoApp54/components/themed-text.tsx | 60 - apps/ExpoApp54/components/themed-view.tsx | 22 - apps/ExpoApp54/components/ui/collapsible.tsx | 49 - .../components/ui/icon-symbol.ios.tsx | 32 - apps/ExpoApp54/components/ui/icon-symbol.tsx | 56 - apps/ExpoApp54/constants/theme.ts | 54 - apps/ExpoApp54/e2e/jest.config.cjs | 14 - apps/ExpoApp54/entry.tsx | 21 - apps/ExpoApp54/eslint.config.mjs | 13 - apps/ExpoApp54/hooks/use-color-scheme.ts | 1 - apps/ExpoApp54/hooks/use-color-scheme.web.ts | 21 - apps/ExpoApp54/hooks/use-theme-color.ts | 21 - apps/ExpoApp54/jest.config.js | 10 - apps/ExpoApp54/jest.setup.js | 1 - apps/ExpoApp54/package.json | 62 - apps/ExpoApp54/tsconfig.json | 10 - apps/ExpoApp54/utils/expo-rn-updates.ts | 25 - apps/README.md | 8 +- .../detox-appleapp-variants.cjs | 4 +- .../e2e/createDetoxJestConfig.cjs | 2 +- docs/docs/docs/getting-started/examples.mdx | 8 +- docs/docs/docs/guides/expo-updates/_meta.json | 1 - .../docs/docs/guides/expo-updates/expo-54.mdx | 241 --- docs/docs/docs/guides/expo-updates/how-to.mdx | 26 +- package.json | 1 - .../__tests__/supportsPrebuiltRNCore.test.ts | 39 - .../utils/supportsPrebuiltRNCore.ts | 21 - .../__tests__/withAndroidModuleFiles.test.ts | 3 - .../android/withAndroidModuleFiles.ts | 40 +- .../src/expo-config-plugin/expoUtils.ts | 13 - .../ios/__tests__/withFmtFix.test.ts | 2 +- .../expo-config-plugin/ios/podfileHelpers.ts | 60 +- .../ios/withBrownfieldIos.ts | 31 +- .../expo-config-plugin/ios/xcodeHelpers.ts | 163 +- .../android/ReactNativeHostManager.pre55.kt | 52 - .../template/ios/patchExpoPre55.sh | 22 - scripts/ci-local-expo54-ios-e2e.sh | 77 - yarn.lock | 1642 +---------------- 83 files changed, 76 insertions(+), 4285 deletions(-) delete mode 100644 apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/BrownfieldStore.kt delete mode 100644 apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeConstants.kt delete mode 100644 apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeHostManager.kt delete mode 100644 apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo 54.xcscheme delete mode 100644 apps/ExpoApp54/.detoxrc.cjs delete mode 100644 apps/ExpoApp54/.gitignore delete mode 100644 apps/ExpoApp54/BrownfieldStore.brownie.ts delete mode 100644 apps/ExpoApp54/README.md delete mode 100644 apps/ExpoApp54/RNApp.tsx delete mode 100644 apps/ExpoApp54/__tests__/brownfield.example.test.tsx delete mode 100644 apps/ExpoApp54/app.json delete mode 100644 apps/ExpoApp54/app/(tabs)/_layout.tsx delete mode 100644 apps/ExpoApp54/app/(tabs)/explore.tsx delete mode 100644 apps/ExpoApp54/app/(tabs)/index.tsx delete mode 100644 apps/ExpoApp54/app/(tabs)/postMessage.tsx delete mode 100644 apps/ExpoApp54/app/_layout.tsx delete mode 100644 apps/ExpoApp54/app/modal.tsx delete mode 100644 apps/ExpoApp54/assets/images/android-icon-background.png delete mode 100644 apps/ExpoApp54/assets/images/android-icon-foreground.png delete mode 100644 apps/ExpoApp54/assets/images/android-icon-monochrome.png delete mode 100644 apps/ExpoApp54/assets/images/favicon.png delete mode 100644 apps/ExpoApp54/assets/images/icon.png delete mode 100644 apps/ExpoApp54/assets/images/partial-react-logo.png delete mode 100644 apps/ExpoApp54/assets/images/react-logo.png delete mode 100644 apps/ExpoApp54/assets/images/react-logo@2x.png delete mode 100644 apps/ExpoApp54/assets/images/react-logo@3x.png delete mode 100644 apps/ExpoApp54/assets/images/splash-icon.png delete mode 100644 apps/ExpoApp54/brownfield.config.json delete mode 100644 apps/ExpoApp54/brownfield.navigation.ts delete mode 100644 apps/ExpoApp54/components/counter/index.tsx delete mode 100644 apps/ExpoApp54/components/external-link.tsx delete mode 100644 apps/ExpoApp54/components/haptic-tab.tsx delete mode 100644 apps/ExpoApp54/components/hello-wave.tsx delete mode 100644 apps/ExpoApp54/components/parallax-scroll-view.tsx delete mode 100644 apps/ExpoApp54/components/postMessage/Message.ts delete mode 100644 apps/ExpoApp54/components/postMessage/MessageBubble.tsx delete mode 100644 apps/ExpoApp54/components/themed-text.tsx delete mode 100644 apps/ExpoApp54/components/themed-view.tsx delete mode 100644 apps/ExpoApp54/components/ui/collapsible.tsx delete mode 100644 apps/ExpoApp54/components/ui/icon-symbol.ios.tsx delete mode 100644 apps/ExpoApp54/components/ui/icon-symbol.tsx delete mode 100644 apps/ExpoApp54/constants/theme.ts delete mode 100644 apps/ExpoApp54/e2e/jest.config.cjs delete mode 100644 apps/ExpoApp54/entry.tsx delete mode 100644 apps/ExpoApp54/eslint.config.mjs delete mode 100644 apps/ExpoApp54/hooks/use-color-scheme.ts delete mode 100644 apps/ExpoApp54/hooks/use-color-scheme.web.ts delete mode 100644 apps/ExpoApp54/hooks/use-theme-color.ts delete mode 100644 apps/ExpoApp54/jest.config.js delete mode 100644 apps/ExpoApp54/jest.setup.js delete mode 100644 apps/ExpoApp54/package.json delete mode 100644 apps/ExpoApp54/tsconfig.json delete mode 100644 apps/ExpoApp54/utils/expo-rn-updates.ts delete mode 100644 docs/docs/docs/guides/expo-updates/expo-54.mdx delete mode 100644 packages/react-native-brownfield/src/expo-config-plugin/template/android/ReactNativeHostManager.pre55.kt delete mode 100644 packages/react-native-brownfield/src/expo-config-plugin/template/ios/patchExpoPre55.sh delete mode 100755 scripts/ci-local-expo54-ios-e2e.sh diff --git a/.github/actions/prepare-android/action.yml b/.github/actions/prepare-android/action.yml index fa99af8f..ab9af4a4 100644 --- a/.github/actions/prepare-android/action.yml +++ b/.github/actions/prepare-android/action.yml @@ -23,7 +23,7 @@ inputs: default: 'false' gradle-workflow-job-context: - description: 'Segment Gradle cache per app/project (e.g. vanilla, expo54). Falls back to github.job when empty.' + description: 'Segment Gradle cache per app/project (e.g. vanilla, expo55). Falls back to github.job when empty.' required: false default: '' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c1cc8dc6..69f1b2f6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,6 @@ jobs: outputs: packages: ${{ steps.filter.outputs.packages }} rnapp: ${{ steps.filter.outputs.rnapp }} - expo54: ${{ steps.filter.outputs.expo54 }} expo55: ${{ steps.filter.outputs.expo55 }} androidapp: ${{ steps.filter.outputs.androidapp }} appleapp: ${{ steps.filter.outputs.appleapp }} @@ -41,9 +40,6 @@ jobs: rnapp: - 'apps/RNApp/**' - 'apps/brownfield-example-shared-tests/**' - expo54: - - 'apps/ExpoApp54/**' - - 'apps/brownfield-example-shared-tests/**' expo55: - 'apps/ExpoApp55/**' - 'apps/brownfield-example-shared-tests/**' @@ -135,7 +131,6 @@ jobs: if: | always() && ( - needs.filter.outputs.expo54 == 'true' || needs.filter.outputs.expo55 == 'true' || needs.filter.outputs.androidapp == 'true' || needs.filter.outputs.packages == 'true' || @@ -145,7 +140,6 @@ jobs: strategy: matrix: include: - - version: '54' - version: '55' steps: @@ -219,7 +213,6 @@ jobs: if: | always() && ( - needs.filter.outputs.expo54 == 'true' || needs.filter.outputs.expo55 == 'true' || needs.filter.outputs.appleapp == 'true' || needs.filter.outputs.packages == 'true' || @@ -229,8 +222,6 @@ jobs: strategy: matrix: include: - - version: '54' - run-e2e: 'false' - version: '55' run-e2e: 'true' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 216d4e3f..f4ef036f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,7 +29,7 @@ We use [changesets](https://github.com/changesets/changesets) to make it easier - `lint` - runs linting on all JS/TS source files in the monorepo _[Turbo]_ - `gradle-plugin:lint` - runs linting on the Brownfield Gradle plugin source code - `typecheck` - runs TypeScript type checking on all TS source files in the monorepo _[Turbo]_ -- `test:apps` - runs Jest for the React Native example apps under `apps/` (Expo 54, Expo 55, plain RN) _[Turbo]_ +- `test:apps` - runs Jest for the React Native example apps under `apps/` (Expo 55, plain RN) _[Turbo]_ - `build` - runs all `build*` tasks in the Turbo repo - see below for more details _[Turbo]_ - `dev` - runs all `dev` tasks in all workspaces - `brownfield:plugin:publish:local` - publishes the Brownfield Gradle plugin to your local Maven repository for testing purposes @@ -38,11 +38,9 @@ We use [changesets](https://github.com/changesets/changesets) to make it easier - `build:example:android-rn` - builds the example React Native app for Android (`apps/RNApp/android`) - `build:example:ios-rn` - builds the example React Native app for iOS (`apps/RNApp/ios`) - `build:example:android-consumer:expo55` - builds the example native Android consumer (`apps/AndroidApp`) app's flavor consuming the Expo 55 RN app (`apps/ExpoApp55`) artifact -- `build:example:android-consumer:expo54` - builds the example native Android consumer (`apps/AndroidApp`) app's flavor consuming the Expo 54 RN app (`apps/ExpoApp54`) artifact - `build:example:android-consumer:vanilla` - builds the example native Android consumer (`apps/AndroidApp`) app's flavor consuming the vanilla RN app (`apps/RNApp`) artifact - `build:example:ios-consumer:expo` - alias for `build:example:ios-consumer:expo55` - `build:example:ios-consumer:expo55` - builds the `Brownfield Apple App (ExpoApp55)` target via scheme **Brownfield Apple App Expo 55** (`Release`) -- `build:example:ios-consumer:expo54` - builds the `Brownfield Apple App (ExpoApp54)` target via scheme **Brownfield Apple App Expo 54** (`Release`) - `build:example:ios-consumer:vanilla` - builds the `Brownfield Apple App (RNApp)` target via scheme **Brownfield Apple App Vanilla** (`Release Vanilla`) ## Running demo apps @@ -65,20 +63,17 @@ There are 2 brownfield host apps. > Each of the scripts below requires you to **first** package the consumed RN application with `yarn brownfield:package:ios`, e.g. `cd apps/ExpoApp55 && yarn brownfield:package:ios`. - `apps/AndroidApp` - for Android - - `build:example:android-consumer:expo54` - consumes Expo 54 - `build:example:android-consumer:expo55` - consumes Expo 55 - `build:example:android-consumer:vanilla` - consumes the vanilla `RNApp` -- `apps/AppleApp` - for Apple (three Xcode targets, each with its own shared scheme) - - `build:example:ios-consumer:expo54` — target `Brownfield Apple App (ExpoApp54)`, scheme **Brownfield Apple App Expo 54** +- `apps/AppleApp` - for Apple (two Xcode targets, each with its own shared scheme) - `build:example:ios-consumer:expo55` (or `expo`) — target `Brownfield Apple App (ExpoApp55)`, scheme **Brownfield Apple App Expo 55** - `build:example:ios-consumer:vanilla` — target `Brownfield Apple App (RNApp)`, scheme **Brownfield Apple App Vanilla** -For iOS, these scripts validate the legacy direct-XCFramework integration path. Each script uses the previously packaged artifacts from the respective directory (`apps/RNApp`, `apps/ExpoApp54`, or `apps/ExpoApp55`), invokes `prepareXCFrameworks.js` to copy XCFrameworks into `apps/AppleApp/package`, then runs `xcodebuild` against the matching scheme. The Xcode project reads fixed paths under `package/` (for example `package/BrownfieldLib.xcframework`). +For iOS, these scripts validate the legacy direct-XCFramework integration path. Each script uses the previously packaged artifacts from the respective directory (`apps/RNApp` or `apps/ExpoApp55`), invokes `prepareXCFrameworks.js` to copy XCFrameworks into `apps/AppleApp/package`, then runs `xcodebuild` against the matching scheme. The Xcode project reads fixed paths under `package/` (for example `package/BrownfieldLib.xcframework`). | Yarn script | RN app | Xcode target | Scheme | Configuration | | ------------------------------------ | ----------- | ---------------------------------- | ---------------------------- | ----------------- | | `build:example:ios-consumer:vanilla` | `RNApp` | `Brownfield Apple App (RNApp)` | Brownfield Apple App Vanilla | `Release Vanilla` | -| `build:example:ios-consumer:expo54` | `ExpoApp54` | `Brownfield Apple App (ExpoApp54)` | Brownfield Apple App Expo 54 | `Release` | | `build:example:ios-consumer:expo55` | `ExpoApp55` | `Brownfield Apple App (ExpoApp55)` | Brownfield Apple App Expo 55 | `Release` | > [!IMPORTANT] @@ -94,11 +89,9 @@ The local Swift Package Manager flow is separate from `prepareXCFrameworks.js`. 2. Open `apps/AppleApp/Brownfield Apple App.xcodeproj`. 3. Select the host scheme you want to validate: - `Brownfield Apple App Vanilla` - - `Brownfield Apple App Expo 54` - `Brownfield Apple App Expo 55` 4. In Xcode, go to `Package Dependencies`, click `+`, choose `Add Local...`, and select the generated package folder: - `apps/RNApp/ios/.brownfield/package/build` - - `apps/ExpoApp54/ios/.brownfield/package/build` - `apps/ExpoApp55/ios/.brownfield/package/build` 5. Add the `BrownfieldLib` product to the matching AppleApp target. 6. Remove old direct `package/*.xcframework` references from that target if you are switching from the legacy direct-XCFramework path. @@ -120,10 +113,9 @@ Per example app (run from the repo root): | Command | App | | --------------------------------------------------------------- | --------------------------------- | | `yarn workspace @callstack/brownfield-example-rn-app test` | Plain React Native (`apps/RNApp`) | -| `yarn workspace @callstack/brownfield-example-expo-app-54 test` | Expo SDK 54 (`apps/ExpoApp54`) | | `yarn workspace @callstack/brownfield-example-expo-app-55 test` | Expo SDK 55 (`apps/ExpoApp55`) | -Package-level scripts (`yarn test` inside `apps/RNApp`, `apps/ExpoApp54`, or `apps/ExpoApp55`) invoke Jest with each app’s `jest.config.js`. +Package-level scripts (`yarn test` inside `apps/RNApp` or `apps/ExpoApp55`) invoke Jest with each app’s `jest.config.js`. The native-only sample apps (`apps/AppleApp`, `apps/AndroidApp`) use their platform test runners (Xcode / Gradle), not Jest. @@ -137,7 +129,7 @@ E2E runs without Metro: the Debug simulator build embeds `main.jsbundle` (`FORCE | Path | What it exercises | Typical flow | | ----------------------------------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| RN host app (`RNApp`, `ExpoApp54`, `ExpoApp55`) | Brownfield RN app running as the simulator target | `expo prebuild` / pods → Detox build → Detox test | +| RN host app (`RNApp`, `ExpoApp55`) | Brownfield RN app running as the simulator target | `expo prebuild` / pods → Detox build → Detox test | | native host app (`AppleApp`) | Native host app consuming a packaged `BrownfieldLib` XCFramework | `brownfield:package:ios` → copy XCFrameworks into `AppleApp/package` → Detox build → Detox test | Per-app Detox scripts (run from the app directory): @@ -145,7 +137,7 @@ Per-app Detox scripts (run from the app directory): | App | Build | Test | Shared spec | | ------------------------- | --------------------------- | -------------------------- | ---------------------------------- | | `RNApp` | `yarn e2e:build:ios` | `yarn e2e:test:ios` | `rnAppBrownfield.e2e.js` | -| `ExpoApp54` / `ExpoApp55` | `yarn e2e:build:ios` | `yarn e2e:test:ios` | `expoPostMessageBrownfield.e2e.js` | +| `ExpoApp55` | `yarn e2e:build:ios` | `yarn e2e:test:ios` | `expoPostMessageBrownfield.e2e.js` | | `AppleApp` (vanilla) | `yarn e2e:build:ios` | `yarn e2e:test:ios` | `appleAppBrownfield.e2e.js` | | `AppleApp` (Expo 55) | `yarn e2e:build:ios:expo55` | `yarn e2e:test:ios:expo55` | `appleAppExpoBrownfield.e2e.js` | @@ -156,7 +148,6 @@ iOS Detox E2E runs in [`.github/workflows/ci.yml`](.github/workflows/ci.yml) via | Job | E2E | Notes | | ----------------------------- | --- | ---------------------------------------- | | `ios-appleapp-vanilla` | Yes | `RNApp` → package → `AppleApp` Detox | -| `ios-appleapp-expo` (Expo 54) | No | Road test only (Release build) | | `ios-appleapp-expo` (Expo 55) | Yes | `ExpoApp55` → package → `AppleApp` Detox | On failure, CI uploads `apps/AppleApp/e2e-artifacts/` as a workflow artifact (`detox-appleapp-*-ios-recordings`). @@ -170,7 +161,6 @@ From the repo root (macOS + Xcode + Simulator required). All wrap `scripts/ci-lo | Command | Mirrors | | --------------------------------------- | -------------------------------- | | `yarn ci:local:rnapp:e2e:ios` | RN host app E2E (`apps/RNApp`) | -| `yarn ci:local:expo54:e2e:ios` | Expo 54 host app E2E | | `yarn ci:local:expo55:e2e:ios` | Expo 55 host app E2E | | `yarn ci:local:appleapp:e2e:ios` | CI `ios-appleapp-vanilla` | | `yarn ci:local:appleapp:e2e:ios:expo55` | CI `ios-appleapp-expo` (Expo 55) | diff --git a/apps/AndroidApp/app/build.gradle.kts b/apps/AndroidApp/app/build.gradle.kts index ce3fd9b8..3497afc4 100644 --- a/apps/AndroidApp/app/build.gradle.kts +++ b/apps/AndroidApp/app/build.gradle.kts @@ -30,9 +30,6 @@ android { flavorDimensions += "app" productFlavors { - create("expo54") { - dimension = "app" - } create("expo55") { dimension = "app" } @@ -77,7 +74,6 @@ dependencies { implementation(libs.androidx.appcompat) add("expo55Implementation", libs.brownfieldlib.expo55) add("expobetaImplementation", libs.brownfieldlib.expobeta) - add("expo54Implementation", libs.brownfieldlib.expo54) add("vanillaImplementation", libs.brownfieldlib.vanilla) implementation(libs.androidx.fragment.compose) diff --git a/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/BrownfieldStore.kt b/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/BrownfieldStore.kt deleted file mode 100644 index d54e8c19..00000000 --- a/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/BrownfieldStore.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.callstack.brownfield.android.example - -typealias BrownfieldStore = com.callstack.rnbrownfield.demo.expoapp54.BrownfieldStore -typealias User = com.callstack.rnbrownfield.demo.expoapp54.User diff --git a/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeConstants.kt b/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeConstants.kt deleted file mode 100644 index ef91af22..00000000 --- a/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeConstants.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.callstack.brownfield.android.example - -object ReactNativeConstants { - const val MAIN_MODULE_NAME = "main" - const val APP_NAME = "Android (Expo 54)" -} diff --git a/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeHostManager.kt b/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeHostManager.kt deleted file mode 100644 index 4fb0f2c0..00000000 --- a/apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeHostManager.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.callstack.brownfield.android.example - -typealias ReactNativeHostManager = com.callstack.rnbrownfield.demo.expoapp54.ReactNativeHostManager diff --git a/apps/AndroidApp/gradle/libs.versions.toml b/apps/AndroidApp/gradle/libs.versions.toml index f52bd562..a012e4b2 100644 --- a/apps/AndroidApp/gradle/libs.versions.toml +++ b/apps/AndroidApp/gradle/libs.versions.toml @@ -18,7 +18,6 @@ gson = "2.13.2" androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } brownfieldlib-expo55 = { module = "com.callstack.rnbrownfield.demo.expoapp55:brownfieldlib", version.ref = "brownfieldlib" } brownfieldlib-expobeta = { module = "com.callstack.rnbrownfield.demo.expobeta:brownfieldlib", version.ref = "brownfieldlib" } -brownfieldlib-expo54 = { module = "com.callstack.rnbrownfield.demo.expoapp54:brownfieldlib", version.ref = "brownfieldlib" } brownfieldlib-vanilla = { module = "com.rnapp:brownfieldlib", version.ref = "brownfieldlib" } junit = { group = "junit", name = "junit", version.ref = "junit" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } diff --git a/apps/AndroidApp/package.json b/apps/AndroidApp/package.json index 8ee08845..2705d81d 100644 --- a/apps/AndroidApp/package.json +++ b/apps/AndroidApp/package.json @@ -6,7 +6,6 @@ "build:example:android-consumer:expo": "./gradlew assembleExpo55Release", "build:example:android-consumer:expo55": "./gradlew assembleExpo55Release", "build:example:android-consumer:expobeta": "./gradlew assembleExpobetaRelease", - "build:example:android-consumer:expo54": "./gradlew assembleExpo54Release", "build:example:android-consumer:vanilla": "./gradlew assembleVanillaRelease" } } diff --git a/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj b/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj index a8cc22ca..b9f8aa64 100644 --- a/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj +++ b/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj @@ -21,16 +21,6 @@ 7953277C2FB4A909008398F3 /* ReactBrownfield.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99E2FB4A61400A5F42B /* ReactBrownfield.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 7953277D2FB4A90A008398F3 /* ReactNativeDependencies.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99F2FB4A61400A5F42B /* ReactNativeDependencies.xcframework */; }; 7953277E2FB4A90A008398F3 /* ReactNativeDependencies.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99F2FB4A61400A5F42B /* ReactNativeDependencies.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 79B8BE6B2FB7270E00B94C6F /* Brownie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99B2FB4A61400A5F42B /* Brownie.xcframework */; }; - 79B8BE6C2FB7270E00B94C6F /* BrownfieldNavigation.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99A2FB4A61400A5F42B /* BrownfieldNavigation.xcframework */; }; - 79B8BE6E2FB7270E00B94C6F /* hermesvm.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99C2FB4A61400A5F42B /* hermesvm.xcframework */; }; - 79B8BE6F2FB7270E00B94C6F /* ReactBrownfield.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99E2FB4A61400A5F42B /* ReactBrownfield.xcframework */; }; - 79B8BE702FB7270E00B94C6F /* BrownfieldLib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D9992FB4A61400A5F42B /* BrownfieldLib.xcframework */; }; - 79B8BE742FB7270E00B94C6F /* Brownie.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99B2FB4A61400A5F42B /* Brownie.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 79B8BE752FB7270E00B94C6F /* ReactBrownfield.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99E2FB4A61400A5F42B /* ReactBrownfield.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 79B8BE772FB7270E00B94C6F /* BrownfieldNavigation.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99A2FB4A61400A5F42B /* BrownfieldNavigation.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 79B8BE782FB7270E00B94C6F /* hermesvm.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99C2FB4A61400A5F42B /* hermesvm.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 79B8BE792FB7270E00B94C6F /* BrownfieldLib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D9992FB4A61400A5F42B /* BrownfieldLib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 79B8BE862FB7273600B94C6F /* Brownie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99B2FB4A61400A5F42B /* Brownie.xcframework */; }; 79B8BE872FB7273600B94C6F /* BrownfieldNavigation.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99A2FB4A61400A5F42B /* BrownfieldNavigation.xcframework */; }; 79B8BE882FB7273600B94C6F /* ReactNativeDependencies.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99F2FB4A61400A5F42B /* ReactNativeDependencies.xcframework */; }; @@ -79,21 +69,6 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 79B8BE732FB7270E00B94C6F /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 79B8BE742FB7270E00B94C6F /* Brownie.xcframework in Embed Frameworks */, - 79B8BE752FB7270E00B94C6F /* ReactBrownfield.xcframework in Embed Frameworks */, - 79B8BE772FB7270E00B94C6F /* BrownfieldNavigation.xcframework in Embed Frameworks */, - 79B8BE782FB7270E00B94C6F /* hermesvm.xcframework in Embed Frameworks */, - 79B8BE792FB7270E00B94C6F /* BrownfieldLib.xcframework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; 79B8BE8E2FB7273600B94C6F /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -139,7 +114,6 @@ 79B1D99D2FB4A61400A5F42B /* React.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = React.xcframework; path = package/React.xcframework; sourceTree = ""; }; 79B1D99E2FB4A61400A5F42B /* ReactBrownfield.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = ReactBrownfield.xcframework; path = package/ReactBrownfield.xcframework; sourceTree = ""; }; 79B1D99F2FB4A61400A5F42B /* ReactNativeDependencies.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = ReactNativeDependencies.xcframework; path = package/ReactNativeDependencies.xcframework; sourceTree = ""; }; - 79B8BE802FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Brownfield Apple App (ExpoApp54).app"; sourceTree = BUILT_PRODUCTS_DIR; }; 79B8BE9B2FB7273600B94C6F /* Brownfield Apple App (ExpoApp55).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Brownfield Apple App (ExpoApp55).app"; sourceTree = BUILT_PRODUCTS_DIR; }; 7A1B2C3D4E5F60718293A202 /* Brownfield Apple App (ExpoAppBeta).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Brownfield Apple App (ExpoAppBeta).app"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -167,18 +141,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79B8BE6A2FB7270E00B94C6F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 79B8BE6B2FB7270E00B94C6F /* Brownie.xcframework in Frameworks */, - 79B8BE6C2FB7270E00B94C6F /* BrownfieldNavigation.xcframework in Frameworks */, - 79B8BE6E2FB7270E00B94C6F /* hermesvm.xcframework in Frameworks */, - 79B8BE6F2FB7270E00B94C6F /* ReactBrownfield.xcframework in Frameworks */, - 79B8BE702FB7270E00B94C6F /* BrownfieldLib.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79B8BE852FB7273600B94C6F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -237,7 +199,6 @@ isa = PBXGroup; children = ( 793C76A72EEBF938008A2A34 /* Brownfield Apple App (RNApp).app */, - 79B8BE802FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54).app */, 79B8BE9B2FB7273600B94C6F /* Brownfield Apple App (ExpoApp55).app */, 7A1B2C3D4E5F60718293A202 /* Brownfield Apple App (ExpoAppBeta).app */, ); @@ -270,29 +231,6 @@ productReference = 793C76A72EEBF938008A2A34 /* Brownfield Apple App (RNApp).app */; productType = "com.apple.product-type.application"; }; - 79B8BE682FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79B8BE7B2FB7270E00B94C6F /* Build configuration list for PBXNativeTarget "Brownfield Apple App (ExpoApp54)" */; - buildPhases = ( - 79B8BE692FB7270E00B94C6F /* Sources */, - 79B8BE6A2FB7270E00B94C6F /* Frameworks */, - 79B8BE722FB7270E00B94C6F /* Resources */, - 79B8BE732FB7270E00B94C6F /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - fileSystemSynchronizedGroups = ( - 793C76A92EEBF938008A2A34 /* Brownfield Apple App */, - ); - name = "Brownfield Apple App (ExpoApp54)"; - packageProductDependencies = ( - ); - productName = "Brownfield Apple App"; - productReference = 79B8BE802FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54).app */; - productType = "com.apple.product-type.application"; - }; 79B8BE832FB7273600B94C6F /* Brownfield Apple App (ExpoApp55) */ = { isa = PBXNativeTarget; buildConfigurationList = 79B8BE962FB7273600B94C6F /* Build configuration list for PBXNativeTarget "Brownfield Apple App (ExpoApp55)" */; @@ -369,7 +307,6 @@ projectRoot = ""; targets = ( 793C76A62EEBF938008A2A34 /* Brownfield Apple App (RNApp) */, - 79B8BE682FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54) */, 79B8BE832FB7273600B94C6F /* Brownfield Apple App (ExpoApp55) */, 7A1B2C3D4E5F60718293A301 /* Brownfield Apple App (ExpoAppBeta) */, ); @@ -385,13 +322,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79B8BE722FB7270E00B94C6F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79B8BE8D2FB7273600B94C6F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -416,13 +346,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79B8BE692FB7270E00B94C6F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79B8BE842FB7273600B94C6F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -652,194 +575,6 @@ }; name = "Release Expo"; }; - 79B8BE7C2FB7270E00B94C6F /* Debug Expo */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - ENABLE_APP_SANDBOX = YES; - ENABLE_PREVIEWS = YES; - ENABLE_USER_SELECTED_FILES = readonly; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Brownfield-Apple-App-Info.plist"; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UIViewControllerBasedStatusBarAppearance = "$(USE_EXPO_HOST_STATUS_BAR_APPEARANCE)"; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.callstack.brownfield.ios.example.Brownfield-iOS-App"; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - SDKROOT = auto; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) USE_EXPO_HOST"; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,7"; - USE_EXPO_HOST_STATUS_BAR_APPEARANCE = NO; - XROS_DEPLOYMENT_TARGET = 2.0; - }; - name = "Debug Expo"; - }; - 79B8BE7D2FB7270E00B94C6F /* Release Expo */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - ENABLE_APP_SANDBOX = YES; - ENABLE_PREVIEWS = YES; - ENABLE_USER_SELECTED_FILES = readonly; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Brownfield-Apple-App-Info.plist"; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UIViewControllerBasedStatusBarAppearance = "$(USE_EXPO_HOST_STATUS_BAR_APPEARANCE)"; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.callstack.brownfield.ios.example.Brownfield-iOS-App"; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - SDKROOT = auto; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) USE_EXPO_HOST"; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,7"; - USE_EXPO_HOST_STATUS_BAR_APPEARANCE = NO; - XROS_DEPLOYMENT_TARGET = 2.0; - }; - name = "Release Expo"; - }; - 79B8BE7E2FB7270E00B94C6F /* Debug Vanilla */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - ENABLE_APP_SANDBOX = YES; - ENABLE_PREVIEWS = YES; - ENABLE_USER_SELECTED_FILES = readonly; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Brownfield-Apple-App-Info.plist"; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UIViewControllerBasedStatusBarAppearance = "$(USE_EXPO_HOST_STATUS_BAR_APPEARANCE)"; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.callstack.brownfield.ios.example.Brownfield-iOS-App"; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - SDKROOT = auto; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,7"; - USE_EXPO_HOST_STATUS_BAR_APPEARANCE = YES; - XROS_DEPLOYMENT_TARGET = 2.0; - }; - name = "Debug Vanilla"; - }; - 79B8BE7F2FB7270E00B94C6F /* Release Vanilla */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - ENABLE_APP_SANDBOX = YES; - ENABLE_PREVIEWS = YES; - ENABLE_USER_SELECTED_FILES = readonly; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Brownfield-Apple-App-Info.plist"; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UIViewControllerBasedStatusBarAppearance = "$(USE_EXPO_HOST_STATUS_BAR_APPEARANCE)"; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.callstack.brownfield.ios.example.Brownfield-iOS-App"; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - SDKROOT = auto; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2,7"; - USE_EXPO_HOST_STATUS_BAR_APPEARANCE = YES; - XROS_DEPLOYMENT_TARGET = 2.0; - }; - name = "Release Vanilla"; - }; 79B8BE972FB7273600B94C6F /* Debug Expo */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1453,17 +1188,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "Release Expo"; }; - 79B8BE7B2FB7270E00B94C6F /* Build configuration list for PBXNativeTarget "Brownfield Apple App (ExpoApp54)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79B8BE7C2FB7270E00B94C6F /* Debug Expo */, - 79B8BE7D2FB7270E00B94C6F /* Release Expo */, - 79B8BE7E2FB7270E00B94C6F /* Debug Vanilla */, - 79B8BE7F2FB7270E00B94C6F /* Release Vanilla */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Release Expo"; - }; 79B8BE962FB7273600B94C6F /* Build configuration list for PBXNativeTarget "Brownfield Apple App (ExpoApp55)" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo 54.xcscheme b/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo 54.xcscheme deleted file mode 100644 index 1e7d933a..00000000 --- a/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo 54.xcscheme +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/xcschememanagement.plist b/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/xcschememanagement.plist index 87fb27c8..3a787fe0 100644 --- a/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/xcschememanagement.plist +++ b/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/xcschememanagement.plist @@ -4,11 +4,6 @@ SchemeUserState - Brownfield Apple App Expo 54.xcscheme - - orderHint - 2 - Brownfield Apple App Expo 55.xcscheme orderHint diff --git a/apps/AppleApp/package.json b/apps/AppleApp/package.json index 4f732cb0..e3da7eb3 100644 --- a/apps/AppleApp/package.json +++ b/apps/AppleApp/package.json @@ -5,7 +5,6 @@ "type": "module", "scripts": { "build:example:ios-consumer:expo": "yarn build:example:ios-consumer:expo55", - "build:example:ios-consumer:expo54": "node prepareXCFrameworks.js --appName ExpoApp54 && yarn internal::build::common -scheme \"Brownfield Apple App Expo 54\" -configuration Release", "build:example:ios-consumer:expo55": "node prepareXCFrameworks.js --appName ExpoApp55 && yarn internal::build::common -scheme \"Brownfield Apple App Expo 55\" -configuration Release", "build:example:ios-consumer:expobeta": "node prepareXCFrameworks.js --appName ExpoAppBeta && yarn internal::build::common -scheme \"Brownfield Apple App Expo Beta\" -configuration Release", "build:example:ios-consumer:vanilla": "node prepareXCFrameworks.js --appName RNApp && yarn internal::build::common -scheme \"Brownfield Apple App Vanilla\" -configuration \"Release Vanilla\"", diff --git a/apps/ExpoApp54/.detoxrc.cjs b/apps/ExpoApp54/.detoxrc.cjs deleted file mode 100644 index ff9deffb..00000000 --- a/apps/ExpoApp54/.detoxrc.cjs +++ /dev/null @@ -1,13 +0,0 @@ -const { - createIosSimDebugDetoxConfig, -} = require('../brownfield-example-shared-tests/detox-rc-ios-sim-debug.cjs'); - -/** - * Requires a native tree from `expo prebuild` / `expo run:ios` (ios/ + Pods). - * @type {import('detox').DetoxConfig} - */ -module.exports = createIosSimDebugDetoxConfig({ - workspace: 'ExpoApp54', - scheme: 'ExpoApp54', - appBinaryName: 'ExpoApp54', -}); diff --git a/apps/ExpoApp54/.gitignore b/apps/ExpoApp54/.gitignore deleted file mode 100644 index 17f9a695..00000000 --- a/apps/ExpoApp54/.gitignore +++ /dev/null @@ -1,46 +0,0 @@ -# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files - -# dependencies -node_modules/ - -# Expo -.expo/ -dist/ -web-build/ -expo-env.d.ts - -# Native -.kotlin/ -*.orig.* -*.jks -*.p8 -*.p12 -*.key -*.mobileprovision - -# Metro -.metro-health-check* - -# debug -npm-debug.* -yarn-debug.* -yarn-error.* - -# macOS -.DS_Store -*.pem - -# local env files -.env*.local - -# typescript -*.tsbuildinfo - -app-example - -# Detox -e2e-artifacts/ - -# generated native folders -/ios -/android diff --git a/apps/ExpoApp54/BrownfieldStore.brownie.ts b/apps/ExpoApp54/BrownfieldStore.brownie.ts deleted file mode 100644 index 94e22c72..00000000 --- a/apps/ExpoApp54/BrownfieldStore.brownie.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { BrownieStore } from '@callstack/brownie'; - -export interface BrownfieldStore extends BrownieStore { - counter: number; - user: { - name: string; - }; -} - -export interface SettingsStore extends BrownieStore { - theme: 'light' | 'dark'; - notificationsEnabled: boolean; - privacyMode: boolean; -} - -declare module '@callstack/brownie' { - interface BrownieStores { - BrownfieldStore: BrownfieldStore; - SettingsStore: SettingsStore; - } -} diff --git a/apps/ExpoApp54/README.md b/apps/ExpoApp54/README.md deleted file mode 100644 index 48dd63ff..00000000 --- a/apps/ExpoApp54/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Welcome to your Expo app 👋 - -This is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app). - -## Get started - -1. Install dependencies - - ```bash - npm install - ``` - -2. Start the app - - ```bash - npx expo start - ``` - -In the output, you'll find options to open the app in a - -- [development build](https://docs.expo.dev/develop/development-builds/introduction/) -- [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/) -- [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/) -- [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo - -You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction). - -## Get a fresh project - -When you're ready, run: - -```bash -npm run reset-project -``` - -This command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing. - -## Learn more - -To learn more about developing your project with Expo, look at the following resources: - -- [Expo documentation](https://docs.expo.dev/): Learn fundamentals, or go into advanced topics with our [guides](https://docs.expo.dev/guides). -- [Learn Expo tutorial](https://docs.expo.dev/tutorial/introduction/): Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web. - -## Join the community - -Join our community of developers creating universal apps. - -- [Expo on GitHub](https://github.com/expo/expo): View our open source platform and contribute. -- [Discord community](https://chat.expo.dev): Chat with Expo users and ask questions. diff --git a/apps/ExpoApp54/RNApp.tsx b/apps/ExpoApp54/RNApp.tsx deleted file mode 100644 index c10c9f85..00000000 --- a/apps/ExpoApp54/RNApp.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { SafeAreaView } from 'react-native-safe-area-context'; -import { Button, StyleSheet, Text, View } from 'react-native'; -import { useEffect } from 'react'; -import BrownfieldNavigation from '@callstack/brownfield-navigation'; -import { - syncBrownfieldE2EModeFromRootProps, - type BrownfieldRootProps, -} from '@callstack/brownfield-example-shared-tests/runtime'; - -import Counter from './components/counter'; - -import { checkAndFetchUpdate } from './utils/expo-rn-updates'; - -type RNAppProps = BrownfieldRootProps; - -export default function RNApp({ - nativeOsVersionLabel, - brownfieldE2E, -}: RNAppProps) { - useEffect(() => { - syncBrownfieldE2EModeFromRootProps(brownfieldE2E); - return () => syncBrownfieldE2EModeFromRootProps(undefined); - }, [brownfieldE2E]); - - return ( - - Expo React Native Brownfield - - {nativeOsVersionLabel ? ( - - {nativeOsVersionLabel} - - ) : null} - - - - -