diff --git a/.changeset/config.json b/.changeset/config.json index c82a161a..dc48bdd3 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -24,6 +24,8 @@ "@callstack/brownfield-example-rn-app", "@callstack/brownfield-example-expo-app-54", "@callstack/brownfield-example-expo-app-55", + "@callstack/brownfield-example-expo-app-56", + "@callstack/brownfield-example-expo-app-57", "@callstack/brownfield-gradle-plugin-react" ], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { diff --git a/apps/AndroidApp/app/build.gradle.kts b/apps/AndroidApp/app/build.gradle.kts index d6f7866c..e0793cc5 100644 --- a/apps/AndroidApp/app/build.gradle.kts +++ b/apps/AndroidApp/app/build.gradle.kts @@ -36,6 +36,9 @@ android { create("expo55") { dimension = "app" } + create("expo57") { + dimension = "app" + } create("expo56") { dimension = "app" } @@ -78,6 +81,7 @@ dependencies { implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) implementation(libs.androidx.appcompat) + add("expo57Implementation", libs.brownfieldlib.expo57) add("expo55Implementation", libs.brownfieldlib.expo55) add("expo56Implementation", libs.brownfieldlib.expo56) add("expo54Implementation", libs.brownfieldlib.expo54) diff --git a/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/BrownfieldStore.kt b/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/BrownfieldStore.kt new file mode 100644 index 00000000..69c7f5c0 --- /dev/null +++ b/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/BrownfieldStore.kt @@ -0,0 +1,4 @@ +package com.callstack.brownfield.android.example + +typealias BrownfieldStore = com.callstack.rnbrownfield.demo.expoapp57.BrownfieldStore +typealias User = com.callstack.rnbrownfield.demo.expoapp57.User diff --git a/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/ReactNativeConstants.kt b/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/ReactNativeConstants.kt new file mode 100644 index 00000000..45f2d46d --- /dev/null +++ b/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/ReactNativeConstants.kt @@ -0,0 +1,6 @@ +package com.callstack.brownfield.android.example + +object ReactNativeConstants { + const val MAIN_MODULE_NAME = "main" + const val APP_NAME = "Android (Expo 57)" +} diff --git a/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/ReactNativeHostManager.kt b/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/ReactNativeHostManager.kt new file mode 100644 index 00000000..97088718 --- /dev/null +++ b/apps/AndroidApp/app/src/expo57/java/com/callstack/brownfield/android/expo/ReactNativeHostManager.kt @@ -0,0 +1,3 @@ +package com.callstack.brownfield.android.example + +typealias ReactNativeHostManager = com.callstack.rnbrownfield.demo.expoapp57.ReactNativeHostManager diff --git a/apps/AndroidApp/gradle/libs.versions.toml b/apps/AndroidApp/gradle/libs.versions.toml index b72dcfc6..61f54d31 100644 --- a/apps/AndroidApp/gradle/libs.versions.toml +++ b/apps/AndroidApp/gradle/libs.versions.toml @@ -16,6 +16,7 @@ gson = "2.13.2" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +brownfieldlib-expo57 = { module = "com.callstack.rnbrownfield.demo.expoapp57:brownfieldlib", version.ref = "brownfieldlib" } 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" } diff --git a/apps/AndroidApp/package.json b/apps/AndroidApp/package.json index af635291..01f7d35e 100644 --- a/apps/AndroidApp/package.json +++ b/apps/AndroidApp/package.json @@ -3,7 +3,8 @@ "version": "0.0.1", "private": true, "scripts": { - "build:example:android-consumer:expo": "./gradlew assembleExpo56Release", + "build:example:android-consumer:expo": "./gradlew assembleExpo57Release", + "build:example:android-consumer:expo57": "./gradlew assembleExpo57Release", "build:example:android-consumer:expo56": "./gradlew assembleExpo56Release", "build:example:android-consumer:expo55": "./gradlew assembleExpo55Release", "build:example:android-consumer:expobeta": "./gradlew assembleExpobetaRelease", diff --git a/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj b/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj index de638d37..bee22f02 100644 --- a/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj +++ b/apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj @@ -29,6 +29,42 @@ 61591FFA2FF3E41C00BEFE92 /* SDWebImageAVIFCoder.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FF42FF3E41C00BEFE92 /* SDWebImageAVIFCoder.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 61591FFC2FF3E43500BEFE92 /* libavif.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FFB2FF3E43500BEFE92 /* libavif.xcframework */; }; 61591FFD2FF3E43500BEFE92 /* libavif.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FFB2FF3E43500BEFE92 /* libavif.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DA02FF7C09F00A719EB /* BrownfieldLib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D9992FB4A61400A5F42B /* BrownfieldLib.xcframework */; }; + 618F4DA12FF7C09F00A719EB /* BrownfieldLib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D9992FB4A61400A5F42B /* BrownfieldLib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DA22FF7C09F00A719EB /* BrownfieldNavigation.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99A2FB4A61400A5F42B /* BrownfieldNavigation.xcframework */; }; + 618F4DA32FF7C09F00A719EB /* BrownfieldNavigation.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99A2FB4A61400A5F42B /* BrownfieldNavigation.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DA42FF7C09F00A719EB /* Brownie.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99B2FB4A61400A5F42B /* Brownie.xcframework */; }; + 618F4DA52FF7C09F00A719EB /* Brownie.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99B2FB4A61400A5F42B /* Brownie.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DA62FF7C09F00A719EB /* ExpoFileSystem.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FDE2FF3D71E00BEFE92 /* ExpoFileSystem.xcframework */; }; + 618F4DA72FF7C09F00A719EB /* ExpoFileSystem.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FDE2FF3D71E00BEFE92 /* ExpoFileSystem.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DA82FF7C09F00A719EB /* ExpoFont.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FDD2FF3D71E00BEFE92 /* ExpoFont.xcframework */; }; + 618F4DA92FF7C09F00A719EB /* ExpoFont.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FDD2FF3D71E00BEFE92 /* ExpoFont.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DAA2FF7C09F00A719EB /* ExpoImage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FE62FF3DD6700BEFE92 /* ExpoImage.xcframework */; }; + 618F4DAB2FF7C09F00A719EB /* ExpoImage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FE62FF3DD6700BEFE92 /* ExpoImage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DAC2FF7C09F00A719EB /* ExpoModulesCore.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FE32FF3DC2100BEFE92 /* ExpoModulesCore.xcframework */; }; + 618F4DAD2FF7C09F00A719EB /* ExpoModulesCore.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FE32FF3DC2100BEFE92 /* ExpoModulesCore.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DAE2FF7C09F00A719EB /* ExpoModulesJSI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FDA2FF399EC00BEFE92 /* ExpoModulesJSI.xcframework */; }; + 618F4DAF2FF7C09F00A719EB /* ExpoModulesJSI.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FDA2FF399EC00BEFE92 /* ExpoModulesJSI.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DB02FF7C09F00A719EB /* ExpoModulesWorklets.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FE92FF3DEA600BEFE92 /* ExpoModulesWorklets.xcframework */; }; + 618F4DB12FF7C09F00A719EB /* ExpoModulesWorklets.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61591FE92FF3DEA600BEFE92 /* ExpoModulesWorklets.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DB22FF7C09F00A719EB /* hermesvm.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99C2FB4A61400A5F42B /* hermesvm.xcframework */; }; + 618F4DB32FF7C09F00A719EB /* hermesvm.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99C2FB4A61400A5F42B /* hermesvm.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DB42FF7C09F00A719EB /* React.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99D2FB4A61400A5F42B /* React.xcframework */; }; + 618F4DB52FF7C09F00A719EB /* React.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99D2FB4A61400A5F42B /* React.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DB62FF7C09F00A719EB /* ReactBrownfield.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99E2FB4A61400A5F42B /* ReactBrownfield.xcframework */; }; + 618F4DB72FF7C09F00A719EB /* ReactBrownfield.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99E2FB4A61400A5F42B /* ReactBrownfield.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DB82FF7C09F00A719EB /* ReactNativeDependencies.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99F2FB4A61400A5F42B /* ReactNativeDependencies.xcframework */; }; + 618F4DB92FF7C09F00A719EB /* ReactNativeDependencies.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99F2FB4A61400A5F42B /* ReactNativeDependencies.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DC02FF7C09F00A719EB /* libavif.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBB2FF7C09F00A719EB /* libavif.xcframework */; }; + 618F4DC12FF7C09F00A719EB /* libavif.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBB2FF7C09F00A719EB /* libavif.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DC22FF7C09F00A719EB /* SDWebImageSVGCoder.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBC2FF7C09F00A719EB /* SDWebImageSVGCoder.xcframework */; }; + 618F4DC32FF7C09F00A719EB /* SDWebImageSVGCoder.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBC2FF7C09F00A719EB /* SDWebImageSVGCoder.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DC42FF7C09F00A719EB /* SDWebImage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBD2FF7C09F00A719EB /* SDWebImage.xcframework */; }; + 618F4DC52FF7C09F00A719EB /* SDWebImage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBD2FF7C09F00A719EB /* SDWebImage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DC62FF7C09F00A719EB /* SDWebImageWebPCoder.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBE2FF7C09F00A719EB /* SDWebImageWebPCoder.xcframework */; }; + 618F4DC72FF7C09F00A719EB /* SDWebImageWebPCoder.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBE2FF7C09F00A719EB /* SDWebImageWebPCoder.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 618F4DC82FF7C09F00A719EB /* SDWebImageAVIFCoder.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBF2FF7C09F00A719EB /* SDWebImageAVIFCoder.xcframework */; }; + 618F4DC92FF7C09F00A719EB /* SDWebImageAVIFCoder.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 618F4DBF2FF7C09F00A719EB /* SDWebImageAVIFCoder.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 795327712FB4A902008398F3 /* BrownfieldLib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D9992FB4A61400A5F42B /* BrownfieldLib.xcframework */; }; 795327722FB4A902008398F3 /* BrownfieldLib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D9992FB4A61400A5F42B /* BrownfieldLib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 795327732FB4A904008398F3 /* BrownfieldNavigation.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79B1D99A2FB4A61400A5F42B /* BrownfieldNavigation.xcframework */; }; @@ -98,6 +134,34 @@ /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ + 618F4DBA2FF7C09F00A719EB /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 618F4DA52FF7C09F00A719EB /* Brownie.xcframework in Embed Frameworks */, + 618F4DB72FF7C09F00A719EB /* ReactBrownfield.xcframework in Embed Frameworks */, + 618F4DA32FF7C09F00A719EB /* BrownfieldNavigation.xcframework in Embed Frameworks */, + 618F4DA92FF7C09F00A719EB /* ExpoFont.xcframework in Embed Frameworks */, + 618F4DC32FF7C09F00A719EB /* SDWebImageSVGCoder.xcframework in Embed Frameworks */, + 618F4DC52FF7C09F00A719EB /* SDWebImage.xcframework in Embed Frameworks */, + 618F4DAD2FF7C09F00A719EB /* ExpoModulesCore.xcframework in Embed Frameworks */, + 618F4DC92FF7C09F00A719EB /* SDWebImageAVIFCoder.xcframework in Embed Frameworks */, + 618F4DB32FF7C09F00A719EB /* hermesvm.xcframework in Embed Frameworks */, + 618F4DB12FF7C09F00A719EB /* ExpoModulesWorklets.xcframework in Embed Frameworks */, + 618F4DAF2FF7C09F00A719EB /* ExpoModulesJSI.xcframework in Embed Frameworks */, + 618F4DB52FF7C09F00A719EB /* React.xcframework in Embed Frameworks */, + 618F4DC12FF7C09F00A719EB /* libavif.xcframework in Embed Frameworks */, + 618F4DB92FF7C09F00A719EB /* ReactNativeDependencies.xcframework in Embed Frameworks */, + 618F4DC72FF7C09F00A719EB /* SDWebImageWebPCoder.xcframework in Embed Frameworks */, + 618F4DAB2FF7C09F00A719EB /* ExpoImage.xcframework in Embed Frameworks */, + 618F4DA72FF7C09F00A719EB /* ExpoFileSystem.xcframework in Embed Frameworks */, + 618F4DA12FF7C09F00A719EB /* BrownfieldLib.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; 79688AB82FB3EA8400D728BD /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -206,6 +270,12 @@ 61591FF32FF3E41C00BEFE92 /* SDWebImageWebPCoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SDWebImageWebPCoder.xcframework; path = "../ExpoApp56/node_modules/expo-image/prebuilds/spm-deps/SDWebImageWebPCoder/debug/SDWebImageWebPCoder.xcframework"; sourceTree = ""; }; 61591FF42FF3E41C00BEFE92 /* SDWebImageAVIFCoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SDWebImageAVIFCoder.xcframework; path = "../ExpoApp56/node_modules/expo-image/prebuilds/spm-deps/SDWebImageAVIFCoder/debug/SDWebImageAVIFCoder.xcframework"; sourceTree = ""; }; 61591FFB2FF3E43500BEFE92 /* libavif.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libavif.xcframework; path = "../ExpoApp56/node_modules/expo-image/prebuilds/spm-deps/libavif/debug/libavif.xcframework"; sourceTree = ""; }; + 617FBE3E2FF7AA9D00348DD8 /* Brownfield Apple App (ExpoApp57).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Brownfield Apple App (ExpoApp57).app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 618F4DBB2FF7C09F00A719EB /* libavif.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libavif.xcframework; path = "../ExpoApp57/node_modules/expo-image/prebuilds/spm-deps/libavif/release/libavif.xcframework"; sourceTree = ""; }; + 618F4DBC2FF7C09F00A719EB /* SDWebImageSVGCoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SDWebImageSVGCoder.xcframework; path = "../ExpoApp57/node_modules/expo-image/prebuilds/spm-deps/SDWebImageSVGCoder/release/SDWebImageSVGCoder.xcframework"; sourceTree = ""; }; + 618F4DBD2FF7C09F00A719EB /* SDWebImage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SDWebImage.xcframework; path = "../ExpoApp57/node_modules/expo-image/prebuilds/spm-deps/SDWebImage/release/SDWebImage.xcframework"; sourceTree = ""; }; + 618F4DBE2FF7C09F00A719EB /* SDWebImageWebPCoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SDWebImageWebPCoder.xcframework; path = "../ExpoApp57/node_modules/expo-image/prebuilds/spm-deps/SDWebImageWebPCoder/release/SDWebImageWebPCoder.xcframework"; sourceTree = ""; }; + 618F4DBF2FF7C09F00A719EB /* SDWebImageAVIFCoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SDWebImageAVIFCoder.xcframework; path = "../ExpoApp57/node_modules/expo-image/prebuilds/spm-deps/SDWebImageAVIFCoder/release/SDWebImageAVIFCoder.xcframework"; sourceTree = ""; }; 793C76A72EEBF938008A2A34 /* Brownfield Apple App (RNApp).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Brownfield Apple App (RNApp).app"; sourceTree = BUILT_PRODUCTS_DIR; }; 79B1D9992FB4A61400A5F42B /* BrownfieldLib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = BrownfieldLib.xcframework; path = package/BrownfieldLib.xcframework; sourceTree = ""; }; 79B1D99A2FB4A61400A5F42B /* BrownfieldNavigation.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = BrownfieldNavigation.xcframework; path = package/BrownfieldNavigation.xcframework; sourceTree = ""; }; @@ -266,6 +336,31 @@ /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ + 617FBE122FF7AA9D00348DD8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 618F4DA42FF7C09F00A719EB /* Brownie.xcframework in Frameworks */, + 618F4DB62FF7C09F00A719EB /* ReactBrownfield.xcframework in Frameworks */, + 618F4DA22FF7C09F00A719EB /* BrownfieldNavigation.xcframework in Frameworks */, + 618F4DA82FF7C09F00A719EB /* ExpoFont.xcframework in Frameworks */, + 618F4DC22FF7C09F00A719EB /* SDWebImageSVGCoder.xcframework in Frameworks */, + 618F4DC42FF7C09F00A719EB /* SDWebImage.xcframework in Frameworks */, + 618F4DAC2FF7C09F00A719EB /* ExpoModulesCore.xcframework in Frameworks */, + 618F4DC82FF7C09F00A719EB /* SDWebImageAVIFCoder.xcframework in Frameworks */, + 618F4DB22FF7C09F00A719EB /* hermesvm.xcframework in Frameworks */, + 618F4DB02FF7C09F00A719EB /* ExpoModulesWorklets.xcframework in Frameworks */, + 618F4DAE2FF7C09F00A719EB /* ExpoModulesJSI.xcframework in Frameworks */, + 618F4DB42FF7C09F00A719EB /* React.xcframework in Frameworks */, + 618F4DC02FF7C09F00A719EB /* libavif.xcframework in Frameworks */, + 618F4DB82FF7C09F00A719EB /* ReactNativeDependencies.xcframework in Frameworks */, + 618F4DC62FF7C09F00A719EB /* SDWebImageWebPCoder.xcframework in Frameworks */, + 618F4DAA2FF7C09F00A719EB /* ExpoImage.xcframework in Frameworks */, + 618F4DA62FF7C09F00A719EB /* ExpoFileSystem.xcframework in Frameworks */, + 618F4DA02FF7C09F00A719EB /* BrownfieldLib.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 793C76A42EEBF938008A2A34 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -353,9 +448,14 @@ children = ( 61591FFB2FF3E43500BEFE92 /* libavif.xcframework */, 61591FF42FF3E41C00BEFE92 /* SDWebImageAVIFCoder.xcframework */, + 618F4DBD2FF7C09F00A719EB /* SDWebImage.xcframework */, + 618F4DBF2FF7C09F00A719EB /* SDWebImageAVIFCoder.xcframework */, 61591FF22FF3E41C00BEFE92 /* SDWebImageSVGCoder.xcframework */, 61591FF32FF3E41C00BEFE92 /* SDWebImageWebPCoder.xcframework */, 61591FEF2FF3E3E200BEFE92 /* SDWebImage.xcframework */, + 618F4DBB2FF7C09F00A719EB /* libavif.xcframework */, + 618F4DBC2FF7C09F00A719EB /* SDWebImageSVGCoder.xcframework */, + 618F4DBE2FF7C09F00A719EB /* SDWebImageWebPCoder.xcframework */, 61591FE92FF3DEA600BEFE92 /* ExpoModulesWorklets.xcframework */, 61591FE62FF3DD6700BEFE92 /* ExpoImage.xcframework */, 61591FE32FF3DC2100BEFE92 /* ExpoModulesCore.xcframework */, @@ -390,6 +490,7 @@ 79B8BE9B2FB7273600B94C6F /* Brownfield Apple App (ExpoApp55).app */, 79B8BEB22FB8000000B94C6F /* Brownfield Apple App (ExpoApp56).app */, 7A1B2C3D4E5F60718293A202 /* Brownfield Apple App (ExpoAppBeta).app */, + 617FBE3E2FF7AA9D00348DD8 /* Brownfield Apple App (ExpoApp57).app */, ); name = Products; sourceTree = ""; @@ -397,6 +498,29 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ + 617FBE102FF7AA9D00348DD8 /* Brownfield Apple App (ExpoApp57) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 617FBE392FF7AA9D00348DD8 /* Build configuration list for PBXNativeTarget "Brownfield Apple App (ExpoApp57)" */; + buildPhases = ( + 617FBE112FF7AA9D00348DD8 /* Sources */, + 617FBE122FF7AA9D00348DD8 /* Frameworks */, + 617FBE252FF7AA9D00348DD8 /* Resources */, + 618F4DBA2FF7C09F00A719EB /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + 793C76A92EEBF938008A2A34 /* Brownfield Apple App */, + ); + name = "Brownfield Apple App (ExpoApp57)"; + packageProductDependencies = ( + ); + productName = "Brownfield Apple App"; + productReference = 617FBE3E2FF7AA9D00348DD8 /* Brownfield Apple App (ExpoApp57).app */; + productType = "com.apple.product-type.application"; + }; 793C76A62EEBF938008A2A34 /* Brownfield Apple App (RNApp) */ = { isa = PBXNativeTarget; buildConfigurationList = 793C76B22EEBF939008A2A34 /* Build configuration list for PBXNativeTarget "Brownfield Apple App (RNApp)" */; @@ -553,12 +677,20 @@ 79B8BE682FB7270E00B94C6F /* Brownfield Apple App (ExpoApp54) */, 79B8BE832FB7273600B94C6F /* Brownfield Apple App (ExpoApp55) */, 79B8BEB42FB8000000B94C6F /* Brownfield Apple App (ExpoApp56) */, + 617FBE102FF7AA9D00348DD8 /* Brownfield Apple App (ExpoApp57) */, 7A1B2C3D4E5F60718293A301 /* Brownfield Apple App (ExpoAppBeta) */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 617FBE252FF7AA9D00348DD8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 793C76A52EEBF938008A2A34 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -597,6 +729,13 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 617FBE112FF7AA9D00348DD8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 793C76A32EEBF938008A2A34 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -635,6 +774,194 @@ /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ + 617FBE3A2FF7AA9D00348DD8 /* 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 = 16.4; + 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"; + }; + 617FBE3B2FF7AA9D00348DD8 /* 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 = 16.4; + 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"; + }; + 617FBE3C2FF7AA9D00348DD8 /* 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 = 16.4; + 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"; + }; + 617FBE3D2FF7AA9D00348DD8 /* 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 = 16.4; + 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"; + }; 793C76B02EEBF939008A2A34 /* Debug Expo */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1814,6 +2141,17 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 617FBE392FF7AA9D00348DD8 /* Build configuration list for PBXNativeTarget "Brownfield Apple App (ExpoApp57)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 617FBE3A2FF7AA9D00348DD8 /* Debug Expo */, + 617FBE3B2FF7AA9D00348DD8 /* Release Expo */, + 617FBE3C2FF7AA9D00348DD8 /* Debug Vanilla */, + 617FBE3D2FF7AA9D00348DD8 /* Release Vanilla */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Release Expo"; + }; 793C76A22EEBF938008A2A34 /* Build configuration list for PBXProject "Brownfield Apple App" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo 57.xcscheme b/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo 57.xcscheme new file mode 100644 index 00000000..6f29d1a1 --- /dev/null +++ b/apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo 57.xcscheme @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/AppleApp/package.json b/apps/AppleApp/package.json index 2f5968e2..f1aa02ba 100644 --- a/apps/AppleApp/package.json +++ b/apps/AppleApp/package.json @@ -4,7 +4,8 @@ "private": true, "type": "module", "scripts": { - "build:example:ios-consumer:expo": "yarn build:example:ios-consumer:expo56", + "build:example:ios-consumer:expo": "yarn build:example:ios-consumer:expo57", + "build:example:ios-consumer:expo57": "node prepareXCFrameworks.js --appName ExpoApp57 && yarn internal::build::common -scheme \"Brownfield Apple App Expo 57\" -configuration Release", "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", diff --git a/apps/ExpoApp56/package.json b/apps/ExpoApp56/package.json index 834b77ba..318c0abd 100644 --- a/apps/ExpoApp56/package.json +++ b/apps/ExpoApp56/package.json @@ -21,7 +21,6 @@ "@callstack/brownie": "workspace:^", "@callstack/react-native-brownfield": "workspace:^", "expo": "~56.0.8", - "expo-build-properties": "~56.0.19", "expo-constants": "~56.0.16", "expo-device": "~56.0.4", "expo-font": "~56.0.5", diff --git a/apps/ExpoApp57/.claude/settings.json b/apps/ExpoApp57/.claude/settings.json new file mode 100644 index 00000000..176e6a5a --- /dev/null +++ b/apps/ExpoApp57/.claude/settings.json @@ -0,0 +1,5 @@ +{ + "enabledPlugins": { + "expo@claude-plugins-official": true + } +} diff --git a/apps/ExpoApp57/.gitignore b/apps/ExpoApp57/.gitignore new file mode 100644 index 00000000..4b00baf3 --- /dev/null +++ b/apps/ExpoApp57/.gitignore @@ -0,0 +1,43 @@ +# 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 + +example + +# generated native folders +/ios +/android diff --git a/apps/ExpoApp57/.vscode/extensions.json b/apps/ExpoApp57/.vscode/extensions.json new file mode 100644 index 00000000..b7ed8377 --- /dev/null +++ b/apps/ExpoApp57/.vscode/extensions.json @@ -0,0 +1 @@ +{ "recommendations": ["expo.vscode-expo-tools"] } diff --git a/apps/ExpoApp57/.vscode/settings.json b/apps/ExpoApp57/.vscode/settings.json new file mode 100644 index 00000000..e2798e42 --- /dev/null +++ b/apps/ExpoApp57/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "editor.codeActionsOnSave": { + "source.fixAll": "explicit", + "source.organizeImports": "explicit", + "source.sortMembers": "explicit" + } +} diff --git a/apps/ExpoApp57/AGENTS.md b/apps/ExpoApp57/AGENTS.md new file mode 100644 index 00000000..0e6bc801 --- /dev/null +++ b/apps/ExpoApp57/AGENTS.md @@ -0,0 +1,3 @@ +# Expo HAS CHANGED + +Read the exact versioned docs at https://docs.expo.dev/versions/v57.0.0/ before writing any code. diff --git a/apps/ExpoApp57/BrownfieldStore.brownie.ts b/apps/ExpoApp57/BrownfieldStore.brownie.ts new file mode 100644 index 00000000..94e22c72 --- /dev/null +++ b/apps/ExpoApp57/BrownfieldStore.brownie.ts @@ -0,0 +1,21 @@ +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/ExpoApp57/CLAUDE.md b/apps/ExpoApp57/CLAUDE.md new file mode 100644 index 00000000..43c994c2 --- /dev/null +++ b/apps/ExpoApp57/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/apps/ExpoApp57/LICENSE b/apps/ExpoApp57/LICENSE new file mode 100644 index 00000000..30b20e3b --- /dev/null +++ b/apps/ExpoApp57/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present 650 Industries, Inc. (aka Expo) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/apps/ExpoApp57/README.md b/apps/ExpoApp57/README.md new file mode 100644 index 00000000..4d67aec2 --- /dev/null +++ b/apps/ExpoApp57/README.md @@ -0,0 +1,56 @@ +# 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. + +### Other setup steps + +- To set up ESLint for linting, run `npx expo lint`, or follow our guide on ["Using ESLint and Prettier"](https://docs.expo.dev/guides/using-eslint/) +- If you'd like to set up unit testing, follow our guide on ["Unit Testing with Jest"](https://docs.expo.dev/develop/unit-testing/) +- Learn more about the TypeScript setup in this template in our guide on ["Using TypeScript"](https://docs.expo.dev/guides/typescript/) + +## 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/ExpoApp57/RNApp.tsx b/apps/ExpoApp57/RNApp.tsx new file mode 100644 index 00000000..5e06ccc1 --- /dev/null +++ b/apps/ExpoApp57/RNApp.tsx @@ -0,0 +1,77 @@ +import { SafeAreaView } from 'react-native-safe-area-context'; +import { Button, StyleSheet, Text, View } from 'react-native'; +import BrownfieldNavigation from '@callstack/brownfield-navigation'; +import { checkAndFetchUpdate } from './src/utils/expo-rn-updates'; + +import Counter from './src/components/counter'; + +type RNAppProps = { + nativeOsVersionLabel?: string; +}; + +export default function RNApp({ nativeOsVersionLabel }: RNAppProps) { + return ( + + Expo React Native Brownfield + + {nativeOsVersionLabel ? ( + + {nativeOsVersionLabel} + + ) : null} + + + + +