diff --git a/.changeset/config.json b/.changeset/config.json index c82a161a..2be75579 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -22,9 +22,10 @@ "@callstack/brownfield-example-android-app", "@callstack/brownfield-example-ios-app", "@callstack/brownfield-example-rn-app", - "@callstack/brownfield-example-expo-app-54", "@callstack/brownfield-example-expo-app-55", - "@callstack/brownfield-gradle-plugin-react" + "@callstack/brownfield-example-expo-app-56", + "@callstack/brownfield-gradle-plugin-react", + "@callstack/brownfield-example-shared-tests" ], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { "onlyUpdatePeerDependentsWhenOutOfRange": true, diff --git a/.changeset/good-ravens-rule.md b/.changeset/good-ravens-rule.md new file mode 100644 index 00000000..4d4997a2 --- /dev/null +++ b/.changeset/good-ravens-rule.md @@ -0,0 +1,6 @@ +--- +'@callstack/react-native-brownfield': major +'@callstack/brownfield-cli': major +--- + +feat: drop support for expo sdk 54 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/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 d6f7866c..d497e675 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" } @@ -80,7 +77,6 @@ dependencies { implementation(libs.androidx.appcompat) add("expo55Implementation", libs.brownfieldlib.expo55) add("expo56Implementation", libs.brownfieldlib.expo56) - add("expo54Implementation", libs.brownfieldlib.expo54) add("expobetaImplementation", libs.brownfieldlib.expobeta) add("vanillaImplementation", libs.brownfieldlib.vanilla) 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 b72dcfc6..3dabc0e7 100644 --- a/apps/AndroidApp/gradle/libs.versions.toml +++ b/apps/AndroidApp/gradle/libs.versions.toml @@ -19,7 +19,6 @@ androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = brownfieldlib-expo56 = { module = "com.callstack.rnbrownfield.demo.expoapp56:brownfieldlib", version.ref = "brownfieldlib" } 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 af635291..d1872e93 100644 --- a/apps/AndroidApp/package.json +++ b/apps/AndroidApp/package.json @@ -7,7 +7,6 @@ "build:example:android-consumer:expo56": "./gradlew assembleExpo56Release", "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 de638d37..f59c4104 100644 --- a/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj +++ b/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj @@ -43,16 +43,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 */; }; @@ -115,21 +105,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; @@ -214,28 +189,12 @@ 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; }; 79B8BEB22FB8000000B94C6F /* Brownfield Apple App (ExpoApp56).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Brownfield Apple App (ExpoApp56).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 */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 79B8BE822FB7270F00B94C6F /* Exceptions for "Brownfield Apple App" folder in "Brownfield Apple App (ExpoApp54)" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Assets.xcassets, - BrownfieldAppleApp.swift, - components/ContentView.swift, - components/GreetingCard.swift, - components/MaterialCard.swift, - components/MessagesView.swift, - components/ReferralsScreen.swift, - components/SettingsScreen.swift, - components/Toast.swift, - ); - target = 79B8BE682FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54) */; - }; 7A1B2C3D4E5F60718293A203 /* Exceptions for "Brownfield Apple App" folder in "Brownfield Apple App (ExpoAppBeta)" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( @@ -257,7 +216,6 @@ 793C76A92EEBF938008A2A34 /* Brownfield Apple App */ = { isa = PBXFileSystemSynchronizedRootGroup; exceptions = ( - 79B8BE822FB7270F00B94C6F /* Exceptions for "Brownfield Apple App" folder in "Brownfield Apple App (ExpoApp54)" target */, 7A1B2C3D4E5F60718293A203 /* Exceptions for "Brownfield Apple App" folder in "Brownfield Apple App (ExpoAppBeta)" target */, ); path = "Brownfield Apple App"; @@ -280,18 +238,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; @@ -386,7 +332,6 @@ isa = PBXGroup; children = ( 793C76A72EEBF938008A2A34 /* Brownfield Apple App (RNApp).app */, - 79B8BE802FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54).app */, 79B8BE9B2FB7273600B94C6F /* Brownfield Apple App (ExpoApp55).app */, 79B8BEB22FB8000000B94C6F /* Brownfield Apple App (ExpoApp56).app */, 7A1B2C3D4E5F60718293A202 /* Brownfield Apple App (ExpoAppBeta).app */, @@ -420,29 +365,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)" */; @@ -550,7 +472,6 @@ projectRoot = ""; targets = ( 793C76A62EEBF938008A2A34 /* Brownfield Apple App (RNApp) */, - 79B8BE682FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54) */, 79B8BE832FB7273600B94C6F /* Brownfield Apple App (ExpoApp55) */, 79B8BEB42FB8000000B94C6F /* Brownfield Apple App (ExpoApp56) */, 7A1B2C3D4E5F60718293A301 /* Brownfield Apple App (ExpoAppBeta) */, @@ -566,13 +487,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79B8BE722FB7270E00B94C6F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79B8BE8D2FB7273600B94C6F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -604,13 +518,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79B8BE692FB7270E00B94C6F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79B8BE842FB7273600B94C6F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -847,194 +754,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 = { @@ -1836,17 +1555,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 7c4a606b..a2ffa45e 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 2f5968e2..10250490 100644 --- a/apps/AppleApp/package.json +++ b/apps/AppleApp/package.json @@ -6,7 +6,6 @@ "scripts": { "build:example:ios-consumer:expo": "yarn build:example:ios-consumer:expo56", "build:example:ios-consumer:expo56": "node prepareXCFrameworks.js --appName ExpoApp56 && yarn internal::build::common -scheme \"Brownfield Apple App Expo 56\" -configuration Release", - "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} - - - - -