diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000..7ce10f0 Binary files /dev/null and b/.yarn/install-state.gz differ diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 0000000..3186f3f --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/RNAmazonPublisherServices.podspec b/RNAmazonPublisherServices.podspec index 608b443..ec2c46f 100644 --- a/RNAmazonPublisherServices.podspec +++ b/RNAmazonPublisherServices.podspec @@ -1,7 +1,5 @@ require "json" -new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] - package = JSON.parse(File.read(File.join(__dir__, "package.json"))) Pod::Spec.new do |s| @@ -12,34 +10,12 @@ Pod::Spec.new do |s| s.license = package["license"] s.authors = package["author"] + s.platforms = { :ios => "13.0" } s.source = { :git => "https://github.com/wjaykim/react-native-aps.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,m,mm,swift}" - if new_arch_enabled - s.platforms = { :ios => "11.0" } - - # folly_version must match the version used in React Native - # See folly_version in react-native/React/FBReactNativeSpec/FBReactNativeSpec.podspec - folly_config = get_folly_config() - folly_version = folly_config[:version] - folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' - - s.compiler_flags = folly_compiler_flags - - s.pod_target_xcconfig = { - "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"" - } - - s.dependency "React-Codegen" - s.dependency "RCT-Folly", folly_version - s.dependency "RCTRequired" - s.dependency "RCTTypeSafety" - s.dependency "ReactCommon/turbomodule/core" - else - s.platforms = { :ios => "10.0" } - end + install_modules_dependencies(s) - s.dependency "React-Core" - s.dependency "AmazonPublisherServicesSDK" + s.dependency "AmazonPublisherServicesSDK", "5.3.1" end diff --git a/android/build.gradle b/android/build.gradle index eb17dc7..c94ba12 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,24 +1,26 @@ -ext.safeExtGet = {prop, fallback -> +def safeExtGet(prop, fallback) { rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback } +def isNewArchitectureEnabled() { + return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" +} + if (isNewArchitectureEnabled()) { apply plugin: "com.facebook.react" } apply plugin: 'com.android.library' android { - compileSdkVersion safeExtGet('compileSdkVersion', 31) + compileSdkVersion safeExtGet('compileSdkVersion', 35) defaultConfig { - minSdkVersion safeExtGet('minSdkVersion', 21) - targetSdkVersion safeExtGet('targetSdkVersion', 31) + minSdkVersion safeExtGet('minSdkVersion', 24) + targetSdkVersion safeExtGet('targetSdkVersion', 34) versionCode 1 versionName "1.0" buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() - } - buildTypes { release { @@ -26,6 +28,10 @@ android { consumerProguardFiles 'proguard-rules.pro' } } + + buildFeatures { + buildConfig true + } } repositories { @@ -39,7 +45,7 @@ dependencies { } else { implementation 'com.facebook.react:react-native:+' } - implementation ("com.amazon.android:aps-sdk:9.4.2") + implementation("com.amazon.android:aps-sdk:11.1.1") } if (isNewArchitectureEnabled()) { @@ -48,19 +54,5 @@ if (isNewArchitectureEnabled()) { codegenJavaPackageName = "com.adversport.rnaps" root = rootProject.file("..") jsRootDir = file("../src/turbomodules") - reactNativeDir = rootProject.file("../node_modules/react-native/") - codegenDir = rootProject.file("../node_modules/react-native-codegen/") } } - -def safeExtGet(prop, fallback) { - rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback -} - -def isNewArchitectureEnabled() { - // To opt-in for the New Architecture, you can either: - // - Set `newArchEnabled` to true inside the `gradle.properties` file - // - Invoke gradle with `-newArchEnabled=true` - // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` - return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" -} diff --git a/android/src/main/java/com/adversport/rnaps/RNAPSAdLoaderModule.java b/android/src/main/java/com/adversport/rnaps/RNAPSAdLoaderModule.java index d0aa416..cf903b1 100644 --- a/android/src/main/java/com/adversport/rnaps/RNAPSAdLoaderModule.java +++ b/android/src/main/java/com/adversport/rnaps/RNAPSAdLoaderModule.java @@ -168,7 +168,11 @@ public void onSuccess(DTBAdResponse response) { public void loadAd(int loaderId, String adType, ReadableMap options, Promise promise) { stopAutoRefresh(loaderId); - DTBAdRequest adLoader = new DTBAdRequest(); + DTBAdNetworkInfo adNetworkInfo = RNAPSAdsModule.getCachedAdNetworkInfo(); + if (adNetworkInfo == null) { + adNetworkInfo = new DTBAdNetworkInfo(DTBAdNetwork.OTHER); + } + DTBAdRequest adLoader = new DTBAdRequest(adNetworkInfo); String slotUUID = options.getString("slotUUID"); if (slotUUID == null) { diff --git a/android/src/main/java/com/adversport/rnaps/RNAPSAdsModule.java b/android/src/main/java/com/adversport/rnaps/RNAPSAdsModule.java index 6aa68d7..e14ee68 100644 --- a/android/src/main/java/com/adversport/rnaps/RNAPSAdsModule.java +++ b/android/src/main/java/com/adversport/rnaps/RNAPSAdsModule.java @@ -31,6 +31,12 @@ public class RNAPSAdsModule extends ReactContextBaseJavaModule { public static final String MODULE_NAME = "RNAPSAdsModule"; + private static DTBAdNetworkInfo cachedAdNetworkInfo = null; + + public static DTBAdNetworkInfo getCachedAdNetworkInfo() { + return cachedAdNetworkInfo; + } + public RNAPSAdsModule(ReactApplicationContext reactContext) { super(reactContext); } @@ -62,7 +68,14 @@ public void setAdNetworkInfo(ReadableMap adNetworkInfoMap) { adNetwork = DTBAdNetwork.AD_GENERATION; break; case "IRON_SOURCE": - adNetwork = DTBAdNetwork.IRON_SOURCE; + case "UNITY_LEVELPLAY": + adNetwork = DTBAdNetwork.UNITY_LEVELPLAY; + break; + case "UNKNOWN": + adNetwork = DTBAdNetwork.UNKNOWN; + break; + case "CUSTOM_MEDIATION": + adNetwork = DTBAdNetwork.CUSTOM_MEDIATION; break; case "MAX": adNetwork = DTBAdNetwork.MAX; @@ -91,7 +104,7 @@ public void setAdNetworkInfo(ReadableMap adNetworkInfoMap) { } } - AdRegistration.setAdNetworkInfo(adNetworkInfo); + cachedAdNetworkInfo = adNetworkInfo; } @ReactMethod diff --git a/example/.yarn/install-state.gz b/example/.yarn/install-state.gz new file mode 100644 index 0000000..9fdc4df Binary files /dev/null and b/example/.yarn/install-state.gz differ diff --git a/example/.yarnrc.yml b/example/.yarnrc.yml new file mode 100644 index 0000000..3186f3f --- /dev/null +++ b/example/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index b677f3c..889a299 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,217 +1,27 @@ apply plugin: "com.android.application" +apply plugin: "org.jetbrains.kotlin.android" +apply plugin: "com.facebook.react" -import com.android.build.OutputFile - -/** - * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets - * and bundleReleaseJsAndAssets). - * These basically call `react-native bundle` with the correct arguments during the Android build - * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the - * bundle directly from the development server. Below you can see all the possible configurations - * and their defaults. If you decide to add a configuration block, make sure to add it before the - * `apply from: "../../node_modules/react-native/react.gradle"` line. - * - * project.ext.react = [ - * // the name of the generated asset file containing your JS bundle - * bundleAssetName: "index.android.bundle", - * - * // the entry file for bundle generation - * entryFile: "index.android.js", - * - * // https://reactnative.dev/docs/performance#enable-the-ram-format - * bundleCommand: "ram-bundle", - * - * // whether to bundle JS and assets in debug mode - * bundleInDebug: false, - * - * // whether to bundle JS and assets in release mode - * bundleInRelease: true, - * - * // whether to bundle JS and assets in another build variant (if configured). - * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants - * // The configuration property can be in the following formats - * // 'bundleIn${productFlavor}${buildType}' - * // 'bundleIn${buildType}' - * // bundleInFreeDebug: true, - * // bundleInPaidRelease: true, - * // bundleInBeta: true, - * - * // whether to disable dev mode in custom build variants (by default only disabled in release) - * // for ApsExample: to disable dev mode in the staging build type (if configured) - * devDisabledInStaging: true, - * // The configuration property can be in the following formats - * // 'devDisabledIn${productFlavor}${buildType}' - * // 'devDisabledIn${buildType}' - * - * // the root of your project, i.e. where "package.json" lives - * root: "../../", - * - * // where to put the JS bundle asset in debug mode - * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", - * - * // where to put the JS bundle asset in release mode - * jsBundleDirRelease: "$buildDir/intermediates/assets/release", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in debug mode - * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in release mode - * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", - * - * // by default the gradle tasks are skipped if none of the JS files or assets change; this means - * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to - * // date; if you have any other folders that you want to ignore for performance reasons (gradle - * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ - * // for ApsExample, you might want to remove it from here. - * inputExcludes: ["android/**", "ios/**"], - * - * // override which node gets called and with what additional arguments - * nodeExecutableAndArgs: ["node"], - * - * // supply additional arguments to the packager - * extraPackagerArgs: [] - * ] - */ - -project.ext.react = [ - enableHermes: true, // clean and rebuild if changing - entryFile: "index.js", -] - -apply from: "../../node_modules/react-native/react.gradle" - -/** - * Set this to true to create two separate APKs instead of one: - * - An APK that only works on ARM devices - * - An APK that only works on x86 devices - * The advantage is the size of the APK is reduced by about 4MB. - * Upload all the APKs to the Play Store and people will download - * the correct one based on the CPU architecture of their device. - */ -def enableSeparateBuildPerCPUArchitecture = false +react { + autolinkLibrariesWithApp() +} -/** - * Run Proguard to shrink the Java bytecode in release builds. - */ -def enableProguardInReleaseBuilds = true +def enableProguardInReleaseBuilds = false -/** - * The preferred build flavor of JavaScriptCore. - * - * For ApsExample, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ def jscFlavor = 'org.webkit:android-jsc:+' -/** - * Whether to enable the Hermes VM. - * - * This should be set on project.ext.react and that value will be read here. If it is not set - * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode - * and the benefits of using Hermes will therefore be sharply reduced. - */ -def enableHermes = project.ext.react.get("enableHermes", false); - -/** - * Architectures to build native code for. - */ -def reactNativeArchitectures() { - def value = project.getProperties().get("reactNativeArchitectures") - return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] -} - android { ndkVersion rootProject.ext.ndkVersion + buildToolsVersion rootProject.ext.buildToolsVersion + compileSdk rootProject.ext.compileSdkVersion - compileSdkVersion rootProject.ext.compileSdkVersion - + namespace "com.adversport.rnaps.example" defaultConfig { applicationId "com.adversport.rnaps.example" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" - buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() - - if (isNewArchitectureEnabled()) { - // We configure the NDK build only if you decide to opt-in for the New Architecture. - externalNativeBuild { - ndkBuild { - arguments "APP_PLATFORM=android-21", - "APP_STL=c++_shared", - "NDK_TOOLCHAIN_VERSION=clang", - "GENERATED_SRC_DIR=$buildDir/generated/source", - "PROJECT_BUILD_DIR=$buildDir", - "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", - "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build" - cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1" - cppFlags "-std=c++17" - // Make sure this target name is the same you specify inside the - // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable. - targets "rnapsexample_appmodules" - } - } - } - - testBuildType System.getProperty('testBuildType', 'debug') - testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' - missingDimensionStrategy 'detox', 'full' - } - - if (isNewArchitectureEnabled()) { - // We configure the NDK build only if you decide to opt-in for the New Architecture. - externalNativeBuild { - ndkBuild { - path "$projectDir/src/main/jni/Android.mk" - } - } - def reactAndroidProjectDir = project(':ReactAndroid').projectDir - def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) { - dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") - from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") - into("$buildDir/react-ndk/exported") - } - def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) { - dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") - from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") - into("$buildDir/react-ndk/exported") - } - afterEvaluate { - // If you wish to add a custom TurboModule or component locally, - // you should uncomment this line. - // preBuild.dependsOn("generateCodegenArtifactsFromSchema") - preDebugBuild.dependsOn(packageReactNdkDebugLibs) - preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) - // Due to a bug inside AGP, we have to explicitly set a dependency - // between configureNdkBuild* tasks and the preBuild tasks. - // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 - configureNdkBuildRelease.dependsOn(preReleaseBuild) - configureNdkBuildDebug.dependsOn(preDebugBuild) - reactNativeArchitectures().each { architecture -> - tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure { - dependsOn("preDebugBuild") - } - tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure { - dependsOn("preReleaseBuild") - } - } - } - } - - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include (*reactNativeArchitectures()) - } } signingConfigs { debug { @@ -226,87 +36,19 @@ android { signingConfig signingConfigs.debug } release { - // Caution! In production, you need to generate your own keystore file. - // see https://reactnative.dev/docs/signed-apk-android. signingConfig signingConfigs.debug minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro", - "${rootProject.projectDir}/../../node_modules/detox/android/detox/proguard-rules-app.pro" - } - } - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // https://developer.android.com/studio/build/configure-apk-splits.html - def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - defaultConfig.versionCode * 1000 + versionCodes.get(abi) - } - + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } } dependencies { - implementation fileTree(dir: "libs", include: ["*.jar"]) - - //noinspection GradleDynamicVersion - implementation "com.facebook.react:react-native:+" // From node_modules - - implementation "androidx.appcompat:appcompat:1.4.1" - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" + implementation("com.facebook.react:react-android") - debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { - exclude group:'com.facebook.fbjni' - } - debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { - exclude group:'com.facebook.flipper' - exclude group:'com.squareup.okhttp3', module:'okhttp' - } - debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { - exclude group:'com.facebook.flipper' - } - - if (enableHermes) { - def hermesPath = "../../node_modules/hermes-engine/android/"; - debugImplementation files(hermesPath + "hermes-debug.aar") - releaseImplementation files(hermesPath + "hermes-release.aar") + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") } else { implementation jscFlavor } - - androidTestImplementation(project(path: ":detox")) -} - - -if (isNewArchitectureEnabled()) { - // If new architecture is enabled, we let you build RN from source - // Otherwise we fallback to a prebuilt .aar bundled in the NPM package. - // This will be applied to all the imported transtitive dependency. - configurations.all { - resolutionStrategy.dependencySubstitution { - substitute(module("com.facebook.react:react-native")) - .using(project(":ReactAndroid")).because("On New Architecture we're building React Native from source") - } - } -} - -// Run this once to be able to run the application with BUCK -// puts all compile dependencies into folder libs for BUCK to use -task copyDownloadableDepsToLibs(type: Copy) { - from configurations.implementation - into 'libs' -} - -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) - -def isNewArchitectureEnabled() { - // To opt-in for the New Architecture, you can either: - // - Set `newArchEnabled` to true inside the `gradle.properties` file - // - Invoke gradle with `-newArchEnabled=true` - // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` - return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" } diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 4b185bc..0000000 --- a/example/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - diff --git a/example/android/app/src/debug/java/com/adversport/rnaps/example/ReactNativeFlipper.java b/example/android/app/src/debug/java/com/adversport/rnaps/example/ReactNativeFlipper.java deleted file mode 100644 index 4217b7e..0000000 --- a/example/android/app/src/debug/java/com/adversport/rnaps/example/ReactNativeFlipper.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - *

This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package com.adversport.rnaps.example; - -import android.content.Context; -import com.facebook.flipper.android.AndroidFlipperClient; -import com.facebook.flipper.android.utils.FlipperUtils; -import com.facebook.flipper.core.FlipperClient; -import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; -import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; -import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; -import com.facebook.flipper.plugins.inspector.DescriptorMapping; -import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; -import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; -import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; -import com.facebook.flipper.plugins.react.ReactFlipperPlugin; -import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; -import com.facebook.react.ReactInstanceEventListener; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.bridge.ReactContext; -import com.facebook.react.modules.network.NetworkingModule; -import okhttp3.OkHttpClient; - -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - if (FlipperUtils.shouldEnableFlipper(context)) { - final FlipperClient client = AndroidFlipperClient.getInstance(context); - - client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); - client.addPlugin(new ReactFlipperPlugin()); - client.addPlugin(new DatabasesFlipperPlugin(context)); - client.addPlugin(new SharedPreferencesFlipperPlugin(context)); - client.addPlugin(CrashReporterPlugin.getInstance()); - - NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); - NetworkingModule.setCustomClientBuilder( - new NetworkingModule.CustomClientBuilder() { - @Override - public void apply(OkHttpClient.Builder builder) { - builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); - } - }); - client.addPlugin(networkFlipperPlugin); - client.start(); - - // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized - // Hence we run if after all native modules have been initialized - ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); - if (reactContext == null) { - reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceEventListener() { - @Override - public void onReactContextInitialized(ReactContext reactContext) { - reactInstanceManager.removeReactInstanceEventListener(this); - reactContext.runOnNativeModulesQueueThread( - new Runnable() { - @Override - public void run() { - client.addPlugin(new FrescoFlipperPlugin()); - } - }); - } - }); - } else { - client.addPlugin(new FrescoFlipperPlugin()); - } - } - } -} diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index ce5acbf..7dc42da 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,19 +1,16 @@ - + + android:networkSecurityConfig="@xml/network_security_config"> getPackages() { - @SuppressWarnings("UnnecessaryLocalVariable") - List packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - }; - - private final ReactNativeHost mNewArchitectureNativeHost = - new MainApplicationReactNativeHost(this); - - @Override - public ReactNativeHost getReactNativeHost() { - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - return mNewArchitectureNativeHost; - } else { - return mReactNativeHost; - } - } - - @Override - public void onCreate() { - super.onCreate(); - // If you opted-in for the New Architecture, we enable the TurboModule system - ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; - SoLoader.init(this, /* native exopackage */ false); - initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); // Remove this line if you don't want Flipper enabled - } - - /** - * Loads Flipper in React Native templates. - * - * @param context - */ - private static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - if (BuildConfig.DEBUG) { - try { - /* - We use reflection here to pick up the class that initializes Flipper, - since Flipper library is not available in release mode - */ - Class aClass = Class.forName("com.adversport.rnaps.example.ReactNativeFlipper"); - aClass - .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) - .invoke(null, context, reactInstanceManager); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } - } - } -} diff --git a/example/android/app/src/main/java/com/adversport/rnaps/example/MainApplication.kt b/example/android/app/src/main/java/com/adversport/rnaps/example/MainApplication.kt new file mode 100644 index 0000000..9bb9525 --- /dev/null +++ b/example/android/app/src/main/java/com/adversport/rnaps/example/MainApplication.kt @@ -0,0 +1,42 @@ +package com.adversport.rnaps.example + +import android.app.Application +import com.facebook.react.PackageList +import com.facebook.react.ReactApplication +import com.facebook.react.ReactHost +import com.facebook.react.ReactNativeHost +import com.facebook.react.ReactPackage +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load +import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost +import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.react.soloader.OpenSourceMergedSoMapping +import com.facebook.soloader.SoLoader + +class MainApplication : Application(), ReactApplication { + + override val reactNativeHost: ReactNativeHost = + object : DefaultReactNativeHost(this) { + override fun getPackages(): List = + PackageList(this).packages.apply { + // Packages that cannot be autolinked yet can be added manually here + } + + override fun getJSMainModuleName(): String = "index" + + override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG + + override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED + override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED + } + + override val reactHost: ReactHost + get() = getDefaultReactHost(applicationContext, reactNativeHost) + + override fun onCreate() { + super.onCreate() + SoLoader.init(this, OpenSourceMergedSoMapping) + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + load() + } + } +} diff --git a/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/MainApplicationReactNativeHost.java b/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/MainApplicationReactNativeHost.java deleted file mode 100644 index bee206b..0000000 --- a/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/MainApplicationReactNativeHost.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.adversport.rnaps.example.newarchitecture; - -import android.app.Application; -import androidx.annotation.NonNull; - -import com.adversport.rnaps.example.BuildConfig; -import com.adversport.rnaps.example.newarchitecture.components.MainComponentsRegistry; -import com.facebook.react.PackageList; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.ReactPackageTurboModuleManagerDelegate; -import com.facebook.react.bridge.JSIModulePackage; -import com.facebook.react.bridge.JSIModuleProvider; -import com.facebook.react.bridge.JSIModuleSpec; -import com.facebook.react.bridge.JSIModuleType; -import com.facebook.react.bridge.JavaScriptContextHolder; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.UIManager; -import com.facebook.react.fabric.ComponentFactory; -import com.facebook.react.fabric.CoreComponentsRegistry; -import com.facebook.react.fabric.EmptyReactNativeConfig; -import com.facebook.react.fabric.FabricJSIModuleProvider; -import com.facebook.react.uimanager.ViewManagerRegistry; -import com.adversport.rnaps.example.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; -import java.util.ArrayList; -import java.util.List; - -/** - * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both - * TurboModule delegates and the Fabric Renderer. - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -public class MainApplicationReactNativeHost extends ReactNativeHost { - public MainApplicationReactNativeHost(Application application) { - super(application); - } - - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - List packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - // TurboModules must also be loaded here providing a valid TurboReactPackage implementation: - // packages.add(new TurboReactPackage() { ... }); - // If you have custom Fabric Components, their ViewManagers should also be loaded here - // inside a ReactPackage. - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - - @NonNull - @Override - protected ReactPackageTurboModuleManagerDelegate.Builder - getReactPackageTurboModuleManagerDelegateBuilder() { - // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary - // for the new architecture and to use TurboModules correctly. - return new MainApplicationTurboModuleManagerDelegate.Builder(); - } - - @Override - protected JSIModulePackage getJSIModulePackage() { - return new JSIModulePackage() { - @Override - public List getJSIModules( - final ReactApplicationContext reactApplicationContext, - final JavaScriptContextHolder jsContext) { - final List specs = new ArrayList<>(); - - // Here we provide a new JSIModuleSpec that will be responsible of providing the - // custom Fabric Components. - specs.add( - new JSIModuleSpec() { - @Override - public JSIModuleType getJSIModuleType() { - return JSIModuleType.UIManager; - } - - @Override - public JSIModuleProvider getJSIModuleProvider() { - final ComponentFactory componentFactory = new ComponentFactory(); - CoreComponentsRegistry.register(componentFactory); - - // Here we register a Components Registry. - // The one that is generated with the template contains no components - // and just provides you the one from React Native core. - MainComponentsRegistry.register(componentFactory); - - final ReactInstanceManager reactInstanceManager = getReactInstanceManager(); - - ViewManagerRegistry viewManagerRegistry = - new ViewManagerRegistry( - reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)); - - return new FabricJSIModuleProvider( - reactApplicationContext, - componentFactory, - new EmptyReactNativeConfig(), - viewManagerRegistry); - } - }); - return specs; - } - }; - } -} diff --git a/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/components/MainComponentsRegistry.java b/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/components/MainComponentsRegistry.java deleted file mode 100644 index 1be3f32..0000000 --- a/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/components/MainComponentsRegistry.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.adversport.rnaps.example.newarchitecture.components; - -import com.facebook.jni.HybridData; -import com.facebook.proguard.annotations.DoNotStrip; -import com.facebook.react.fabric.ComponentFactory; -import com.facebook.soloader.SoLoader; - -/** - * Class responsible to load the custom Fabric Components. This class has native methods and needs a - * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ - * folder for you). - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -@DoNotStrip -public class MainComponentsRegistry { - static { - SoLoader.loadLibrary("fabricjni"); - } - - @DoNotStrip private final HybridData mHybridData; - - @DoNotStrip - private native HybridData initHybrid(ComponentFactory componentFactory); - - @DoNotStrip - private MainComponentsRegistry(ComponentFactory componentFactory) { - mHybridData = initHybrid(componentFactory); - } - - @DoNotStrip - public static MainComponentsRegistry register(ComponentFactory componentFactory) { - return new MainComponentsRegistry(componentFactory); - } -} diff --git a/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java deleted file mode 100644 index a8d5d01..0000000 --- a/example/android/app/src/main/java/com/adversport/rnaps/example/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.adversport.rnaps.example.newarchitecture.modules; - -import com.facebook.jni.HybridData; -import com.facebook.react.ReactPackage; -import com.facebook.react.ReactPackageTurboModuleManagerDelegate; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.soloader.SoLoader; -import java.util.List; - -/** - * Class responsible to load the TurboModules. This class has native methods and needs a - * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ - * folder for you). - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -public class MainApplicationTurboModuleManagerDelegate - extends ReactPackageTurboModuleManagerDelegate { - - private static volatile boolean sIsSoLibraryLoaded; - - protected MainApplicationTurboModuleManagerDelegate( - ReactApplicationContext reactApplicationContext, List packages) { - super(reactApplicationContext, packages); - } - - protected native HybridData initHybrid(); - - native boolean canCreateTurboModule(String moduleName); - - public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder { - protected MainApplicationTurboModuleManagerDelegate build( - ReactApplicationContext context, List packages) { - return new MainApplicationTurboModuleManagerDelegate(context, packages); - } - } - - @Override - protected synchronized void maybeLoadOtherSoLibraries() { - if (!sIsSoLibraryLoaded) { - // If you change the name of your application .so file in the Android.mk file, - // make sure you update the name here as well. - SoLoader.loadLibrary("rnapsexample_appmodules"); - sIsSoLibraryLoaded = true; - } - } -} diff --git a/example/android/app/src/main/jni/Android.mk b/example/android/app/src/main/jni/Android.mk deleted file mode 100644 index f06ac6d..0000000 --- a/example/android/app/src/main/jni/Android.mk +++ /dev/null @@ -1,49 +0,0 @@ -THIS_DIR := $(call my-dir) - -include $(REACT_ANDROID_DIR)/Android-prebuilt.mk - -# If you wish to add a custom TurboModule or Fabric component in your app you -# will have to include the following autogenerated makefile. -# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk -include $(CLEAR_VARS) - -LOCAL_PATH := $(THIS_DIR) - -# You can customize the name of your application .so file here. -LOCAL_MODULE := rnapsexample_appmodules - -LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) - -# If you wish to add a custom TurboModule or Fabric component in your app you -# will have to uncomment those lines to include the generated source -# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni) -# -# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni -# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp) -# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni - -# Here you should add any native library you wish to depend on. -LOCAL_SHARED_LIBRARIES := \ - libfabricjni \ - libfbjni \ - libfolly_futures \ - libfolly_json \ - libglog \ - libjsi \ - libreact_codegen_rncore \ - libreact_debug \ - libreact_nativemodule_core \ - libreact_render_componentregistry \ - libreact_render_core \ - libreact_render_debug \ - libreact_render_graphics \ - librrc_view \ - libruntimeexecutor \ - libturbomodulejsijni \ - libyoga - -LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall - -include $(BUILD_SHARED_LIBRARY) diff --git a/example/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/example/android/app/src/main/jni/MainApplicationModuleProvider.cpp deleted file mode 100644 index 0ac23cc..0000000 --- a/example/android/app/src/main/jni/MainApplicationModuleProvider.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "MainApplicationModuleProvider.h" - -#include - -namespace facebook { -namespace react { - -std::shared_ptr MainApplicationModuleProvider( - const std::string moduleName, - const JavaTurboModule::InitParams ¶ms) { - // Here you can provide your own module provider for TurboModules coming from - // either your application or from external libraries. The approach to follow - // is similar to the following (for a library called `samplelibrary`: - // - // auto module = samplelibrary_ModuleProvider(moduleName, params); - // if (module != nullptr) { - // return module; - // } - // return rncore_ModuleProvider(moduleName, params); - return rncore_ModuleProvider(moduleName, params); -} - -} // namespace react -} // namespace facebook diff --git a/example/android/app/src/main/jni/MainApplicationModuleProvider.h b/example/android/app/src/main/jni/MainApplicationModuleProvider.h deleted file mode 100644 index 0fa43fa..0000000 --- a/example/android/app/src/main/jni/MainApplicationModuleProvider.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include -#include - -#include - -namespace facebook { -namespace react { - -std::shared_ptr MainApplicationModuleProvider( - const std::string moduleName, - const JavaTurboModule::InitParams ¶ms); - -} // namespace react -} // namespace facebook diff --git a/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp deleted file mode 100644 index dbbdc3d..0000000 --- a/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "MainApplicationTurboModuleManagerDelegate.h" -#include "MainApplicationModuleProvider.h" - -namespace facebook { -namespace react { - -jni::local_ref -MainApplicationTurboModuleManagerDelegate::initHybrid( - jni::alias_ref) { - return makeCxxInstance(); -} - -void MainApplicationTurboModuleManagerDelegate::registerNatives() { - registerHybrid({ - makeNativeMethod( - "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid), - makeNativeMethod( - "canCreateTurboModule", - MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), - }); -} - -std::shared_ptr -MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string name, - const std::shared_ptr jsInvoker) { - // Not implemented yet: provide pure-C++ NativeModules here. - return nullptr; -} - -std::shared_ptr -MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string name, - const JavaTurboModule::InitParams ¶ms) { - return MainApplicationModuleProvider(name, params); -} - -bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( - std::string name) { - return getTurboModule(name, nullptr) != nullptr || - getTurboModule(name, {.moduleName = name}) != nullptr; -} - -} // namespace react -} // namespace facebook diff --git a/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h deleted file mode 100644 index 863f8fd..0000000 --- a/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -#include -#include - -namespace facebook { -namespace react { - -class MainApplicationTurboModuleManagerDelegate - : public jni::HybridClass< - MainApplicationTurboModuleManagerDelegate, - TurboModuleManagerDelegate> { - public: - // Adapt it to the package you used for your Java class. - static constexpr auto kJavaDescriptor = - "Lcom/example/reactnativeaps/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; - - static jni::local_ref initHybrid(jni::alias_ref); - - static void registerNatives(); - - std::shared_ptr getTurboModule( - const std::string name, - const std::shared_ptr jsInvoker) override; - std::shared_ptr getTurboModule( - const std::string name, - const JavaTurboModule::InitParams ¶ms) override; - - /** - * Test-only method. Allows user to verify whether a TurboModule can be - * created by instances of this class. - */ - bool canCreateTurboModule(std::string name); -}; - -} // namespace react -} // namespace facebook diff --git a/example/android/app/src/main/jni/MainComponentsRegistry.cpp b/example/android/app/src/main/jni/MainComponentsRegistry.cpp deleted file mode 100644 index 8f7edff..0000000 --- a/example/android/app/src/main/jni/MainComponentsRegistry.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "MainComponentsRegistry.h" - -#include -#include -#include -#include - -namespace facebook { -namespace react { - -MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} - -std::shared_ptr -MainComponentsRegistry::sharedProviderRegistry() { - auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); - - // Custom Fabric Components go here. You can register custom - // components coming from your App or from 3rd party libraries here. - // - // providerRegistry->add(concreteComponentDescriptorProvider< - // AocViewerComponentDescriptor>()); - return providerRegistry; -} - -jni::local_ref -MainComponentsRegistry::initHybrid( - jni::alias_ref, - ComponentFactory *delegate) { - auto instance = makeCxxInstance(delegate); - - auto buildRegistryFunction = - [](EventDispatcher::Weak const &eventDispatcher, - ContextContainer::Shared const &contextContainer) - -> ComponentDescriptorRegistry::Shared { - auto registry = MainComponentsRegistry::sharedProviderRegistry() - ->createComponentDescriptorRegistry( - {eventDispatcher, contextContainer}); - - auto mutableRegistry = - std::const_pointer_cast(registry); - - mutableRegistry->setFallbackComponentDescriptor( - std::make_shared( - ComponentDescriptorParameters{ - eventDispatcher, contextContainer, nullptr})); - - return registry; - }; - - delegate->buildRegistryFunction = buildRegistryFunction; - return instance; -} - -void MainComponentsRegistry::registerNatives() { - registerHybrid({ - makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), - }); -} - -} // namespace react -} // namespace facebook diff --git a/example/android/app/src/main/jni/MainComponentsRegistry.h b/example/android/app/src/main/jni/MainComponentsRegistry.h deleted file mode 100644 index bd8a08b..0000000 --- a/example/android/app/src/main/jni/MainComponentsRegistry.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -namespace facebook { -namespace react { - -class MainComponentsRegistry - : public facebook::jni::HybridClass { - public: - // Adapt it to the package you used for your Java class. - constexpr static auto kJavaDescriptor = - "Lcom/example/reactnativeaps/newarchitecture/components/MainComponentsRegistry;"; - - static void registerNatives(); - - MainComponentsRegistry(ComponentFactory *delegate); - - private: - static std::shared_ptr - sharedProviderRegistry(); - - static jni::local_ref initHybrid( - jni::alias_ref, - ComponentFactory *delegate); -}; - -} // namespace react -} // namespace facebook diff --git a/example/android/app/src/main/jni/OnLoad.cpp b/example/android/app/src/main/jni/OnLoad.cpp deleted file mode 100644 index c569b6e..0000000 --- a/example/android/app/src/main/jni/OnLoad.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include "MainApplicationTurboModuleManagerDelegate.h" -#include "MainComponentsRegistry.h" - -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { - return facebook::jni::initialize(vm, [] { - facebook::react::MainApplicationTurboModuleManagerDelegate:: - registerNatives(); - facebook::react::MainComponentsRegistry::registerNatives(); - }); -} diff --git a/example/android/build.gradle b/example/android/build.gradle index a932c85..7a01913 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,46 +1,21 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - buildscript { ext { - buildToolsVersion = "31.0.0" - minSdkVersion = 21 - compileSdkVersion = 31 - targetSdkVersion = 31 - ndkVersion = "21.4.7075529" - kotlinVersion = "1.6.10" + buildToolsVersion = "35.0.0" + minSdkVersion = 24 + compileSdkVersion = 35 + targetSdkVersion = 34 + ndkVersion = "26.1.10909125" + kotlinVersion = "1.9.25" } repositories { google() mavenCentral() } dependencies { - classpath('com.android.tools.build:gradle:7.0.4') + classpath("com.android.tools.build:gradle") classpath("com.facebook.react:react-native-gradle-plugin") - classpath("de.undercouch:gradle-download-task:4.1.2") - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") } } -allprojects { - repositories { - maven { - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url("$rootDir/../node_modules/react-native/android") - } - maven { - // Android JSC is installed from npm - url("$rootDir/../node_modules/jsc-android/dist") - } - mavenCentral { - // We don't want to fetch react-native from Maven Central as there are - // older versions over there. - content { - excludeGroup "com.facebook.react" - } - } - google() - maven { url 'https://www.jitpack.io' } - } -} +apply plugin: "com.facebook.react.rootproject" diff --git a/example/android/gradle.properties b/example/android/gradle.properties index fa4feae..34b53de 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -21,15 +21,10 @@ org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -# Version of flipper SDK to use with React Native -FLIPPER_VERSION=0.125.0 # Use this property to specify which architecture you want to build. # You can also override it from the CLI using -# ./gradlew -PreactNativeArchitectures=x86_64 +# ./gradlew -PreactNativeArchitectures=x86_64 reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 # Use this property to enable support to the new architecture. @@ -37,4 +32,8 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 # your application. You should enable this flag either if you want # to write custom TurboModules/Fabric components OR use libraries that # are providing them. -newArchEnabled=false +newArchEnabled=true + +# Use this property to enable or disable the Hermes JS engine. +# If set to false, you will be using JSC instead. +hermesEnabled=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 669386b..79eb9d0 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/example/android/settings.gradle b/example/android/settings.gradle index 1d8c653..b855d4d 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -1,10 +1,6 @@ +pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } +plugins { id("com.facebook.react.settings") } +extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } rootProject.name = 'RNAPSExample' -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' -includeBuild('../node_modules/react-native-gradle-plugin') -if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") { - include(":ReactAndroid") - project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid') -} -include ':detox' -project(':detox').projectDir = new File(rootProject.projectDir, '../../node_modules/detox/android/detox') +includeBuild('../node_modules/@react-native/gradle-plugin') diff --git a/example/babel.config.js b/example/babel.config.js index adea77b..d9addbb 100644 --- a/example/babel.config.js +++ b/example/babel.config.js @@ -2,7 +2,7 @@ const path = require('path'); const pak = require('../package.json'); module.exports = { - presets: ['module:metro-react-native-babel-preset'], + presets: ['module:@react-native/babel-preset'], plugins: [ [ 'module-resolver', diff --git a/example/ios/.xcode.env b/example/ios/.xcode.env new file mode 100644 index 0000000..772b339 --- /dev/null +++ b/example/ios/.xcode.env @@ -0,0 +1 @@ +export NODE_BINARY=$(command -v node) diff --git a/example/ios/.xcode.env.local b/example/ios/.xcode.env.local new file mode 100644 index 0000000..c2030e5 --- /dev/null +++ b/example/ios/.xcode.env.local @@ -0,0 +1 @@ +export NODE_BINARY=/Users/jerome/.nvm/versions/node/v20.19.5/bin/node diff --git a/example/ios/Podfile b/example/ios/Podfile index d82031d..ec531d9 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,31 +1,31 @@ -require_relative '../node_modules/react-native/scripts/react_native_pods' -require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' +require Pod::Executable.execute_command('node', ['-p', + 'require.resolve( + "react-native/scripts/react_native_pods.rb", + {paths: [process.argv[1]]}, + )', __dir__]).strip -platform :ios, '11.0' -install! 'cocoapods', :deterministic_uuids => false +platform :ios, min_ios_version_supported +prepare_react_native_project! + +linkage = ENV['USE_FRAMEWORKS'] +if linkage != nil + Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green + use_frameworks! :linkage => linkage.to_sym +end target 'RNAPSExample' do config = use_native_modules! - use_react_native!(:path => config["reactNativePath"])# Flags change depending on the env values. - flags = get_default_flags() use_react_native!( :path => config[:reactNativePath], - # to enable hermes on iOS, change `false` to `true` and then install pods - :hermes_enabled => flags[:hermes_enabled], - :fabric_enabled => flags[:fabric_enabled], - # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/.." ) - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - use_flipper!() - post_install do |installer| - react_native_post_install(installer) - __apply_Xcode_12_5_M1_post_install_workaround(installer) + react_native_post_install( + installer, + config[:reactNativePath], + :mac_catalyst_enabled => false, + ) end end diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 052e8b0..6b28924 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,541 +1,1729 @@ PODS: - - AmazonPublisherServicesSDK (4.4.3) - - boost (1.76.0) - - CocoaAsyncSocket (7.6.5) + - AmazonPublisherServicesSDK (5.3.1) + - boost (1.84.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.68.2) - - FBReactNativeSpec (0.68.2): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTRequired (= 0.68.2) - - RCTTypeSafety (= 0.68.2) - - React-Core (= 0.68.2) - - React-jsi (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - Flipper (0.125.0): - - Flipper-Folly (~> 2.6) - - Flipper-RSocket (~> 1.4) - - Flipper-Boost-iOSX (1.76.0.1.11) - - Flipper-DoubleConversion (3.2.0) - - Flipper-Fmt (7.1.7) - - Flipper-Folly (2.6.10): - - Flipper-Boost-iOSX - - Flipper-DoubleConversion - - Flipper-Fmt (= 7.1.7) - - Flipper-Glog - - libevent (~> 2.1.12) - - OpenSSL-Universal (= 1.1.1100) - - Flipper-Glog (0.5.0.4) - - Flipper-PeerTalk (0.0.4) - - Flipper-RSocket (1.4.3): - - Flipper-Folly (~> 2.6) - - FlipperKit (0.125.0): - - FlipperKit/Core (= 0.125.0) - - FlipperKit/Core (0.125.0): - - Flipper (~> 0.125.0) - - FlipperKit/CppBridge - - FlipperKit/FBCxxFollyDynamicConvert - - FlipperKit/FBDefines - - FlipperKit/FKPortForwarding - - SocketRocket (~> 0.6.0) - - FlipperKit/CppBridge (0.125.0): - - Flipper (~> 0.125.0) - - FlipperKit/FBCxxFollyDynamicConvert (0.125.0): - - Flipper-Folly (~> 2.6) - - FlipperKit/FBDefines (0.125.0) - - FlipperKit/FKPortForwarding (0.125.0): - - CocoaAsyncSocket (~> 7.6) - - Flipper-PeerTalk (~> 0.0.4) - - FlipperKit/FlipperKitHighlightOverlay (0.125.0) - - FlipperKit/FlipperKitLayoutHelpers (0.125.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutTextSearchable - - FlipperKit/FlipperKitLayoutIOSDescriptors (0.125.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutHelpers - - YogaKit (~> 1.18) - - FlipperKit/FlipperKitLayoutPlugin (0.125.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutHelpers - - FlipperKit/FlipperKitLayoutIOSDescriptors - - FlipperKit/FlipperKitLayoutTextSearchable - - YogaKit (~> 1.18) - - FlipperKit/FlipperKitLayoutTextSearchable (0.125.0) - - FlipperKit/FlipperKitNetworkPlugin (0.125.0): - - FlipperKit/Core - - FlipperKit/FlipperKitReactPlugin (0.125.0): - - FlipperKit/Core - - FlipperKit/FlipperKitUserDefaultsPlugin (0.125.0): - - FlipperKit/Core - - FlipperKit/SKIOSNetworkPlugin (0.125.0): - - FlipperKit/Core - - FlipperKit/FlipperKitNetworkPlugin - - fmt (6.2.1) + - fast_float (6.1.4) + - FBLazyVector (0.77.3) + - fmt (12.1.0) - glog (0.3.5) - - Google-Mobile-Ads-SDK (9.3.0): - - GoogleAppMeasurement (< 9.0, >= 7.0) + - Google-Mobile-Ads-SDK (12.2.0): - GoogleUserMessagingPlatform (>= 1.1) - - GoogleAppMeasurement (8.15.0): - - GoogleAppMeasurement/AdIdSupport (= 8.15.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - - GoogleUtilities/MethodSwizzler (~> 7.7) - - GoogleUtilities/Network (~> 7.7) - - "GoogleUtilities/NSData+zlib (~> 7.7)" - - nanopb (~> 2.30908.0) - - GoogleAppMeasurement/AdIdSupport (8.15.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 8.15.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - - GoogleUtilities/MethodSwizzler (~> 7.7) - - GoogleUtilities/Network (~> 7.7) - - "GoogleUtilities/NSData+zlib (~> 7.7)" - - nanopb (~> 2.30908.0) - - GoogleAppMeasurement/WithoutAdIdSupport (8.15.0): - - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - - GoogleUtilities/MethodSwizzler (~> 7.7) - - GoogleUtilities/Network (~> 7.7) - - "GoogleUtilities/NSData+zlib (~> 7.7)" - - nanopb (~> 2.30908.0) - - GoogleUserMessagingPlatform (2.0.0) - - GoogleUtilities/AppDelegateSwizzler (7.7.0): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network - - GoogleUtilities/Environment (7.7.0): - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.7.0): - - GoogleUtilities/Environment - - GoogleUtilities/MethodSwizzler (7.7.0): - - GoogleUtilities/Logger - - GoogleUtilities/Network (7.7.0): - - GoogleUtilities/Logger - - "GoogleUtilities/NSData+zlib" - - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.7.0)" - - GoogleUtilities/Reachability (7.7.0): - - GoogleUtilities/Logger - - libevent (2.1.12) - - nanopb (2.30908.0): - - nanopb/decode (= 2.30908.0) - - nanopb/encode (= 2.30908.0) - - nanopb/decode (2.30908.0) - - nanopb/encode (2.30908.0) - - OpenSSL-Universal (1.1.1100) - - PromisesObjC (2.1.0) - - RCT-Folly (2021.06.28.00-v2): + - GoogleUserMessagingPlatform (2.7.0) + - hermes-engine (0.77.3): + - hermes-engine/Pre-built (= 0.77.3) + - hermes-engine/Pre-built (0.77.3) + - RCT-Folly (2024.11.18.00): - boost - DoubleConversion - - fmt (~> 6.2.1) + - fast_float (= 6.1.4) + - fmt (= 12.1.0) - glog - - RCT-Folly/Default (= 2021.06.28.00-v2) - - RCT-Folly/Default (2021.06.28.00-v2): + - RCT-Folly/Default (= 2024.11.18.00) + - RCT-Folly/Default (2024.11.18.00): - boost - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCTRequired (0.68.2) - - RCTTypeSafety (0.68.2): - - FBLazyVector (= 0.68.2) - - RCT-Folly (= 2021.06.28.00-v2) - - RCTRequired (= 0.68.2) - - React-Core (= 0.68.2) - - React (0.68.2): - - React-Core (= 0.68.2) - - React-Core/DevSupport (= 0.68.2) - - React-Core/RCTWebSocket (= 0.68.2) - - React-RCTActionSheet (= 0.68.2) - - React-RCTAnimation (= 0.68.2) - - React-RCTBlob (= 0.68.2) - - React-RCTImage (= 0.68.2) - - React-RCTLinking (= 0.68.2) - - React-RCTNetwork (= 0.68.2) - - React-RCTSettings (= 0.68.2) - - React-RCTText (= 0.68.2) - - React-RCTVibration (= 0.68.2) - - React-callinvoker (0.68.2) - - React-Codegen (0.68.2): - - FBReactNativeSpec (= 0.68.2) - - RCT-Folly (= 2021.06.28.00-v2) - - RCTRequired (= 0.68.2) - - RCTTypeSafety (= 0.68.2) - - React-Core (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-Core (0.68.2): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.68.2) - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) - - Yoga - - React-Core/CoreModulesHeaders (0.68.2): - - glog - - RCT-Folly (= 2021.06.28.00-v2) + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - RCT-Folly/Fabric (2024.11.18.00): + - boost + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - RCTDeprecation (0.77.3) + - RCTRequired (0.77.3) + - RCTTypeSafety (0.77.3): + - FBLazyVector (= 0.77.3) + - RCTRequired (= 0.77.3) + - React-Core (= 0.77.3) + - React (0.77.3): + - React-Core (= 0.77.3) + - React-Core/DevSupport (= 0.77.3) + - React-Core/RCTWebSocket (= 0.77.3) + - React-RCTActionSheet (= 0.77.3) + - React-RCTAnimation (= 0.77.3) + - React-RCTBlob (= 0.77.3) + - React-RCTImage (= 0.77.3) + - React-RCTLinking (= 0.77.3) + - React-RCTNetwork (= 0.77.3) + - React-RCTSettings (= 0.77.3) + - React-RCTText (= 0.77.3) + - React-RCTVibration (= 0.77.3) + - React-callinvoker (0.77.3) + - React-Core (0.77.3): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default (= 0.77.3) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/CoreModulesHeaders (0.77.3): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/Default (0.68.2): + - React-Core/Default (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/DevSupport (0.68.2): + - React-Core/DevSupport (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.68.2) - - React-Core/RCTWebSocket (= 0.68.2) - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-jsinspector (= 0.68.2) - - React-perflogger (= 0.68.2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default (= 0.77.3) + - React-Core/RCTWebSocket (= 0.77.3) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.68.2): + - React-Core/RCTActionSheetHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTAnimationHeaders (0.68.2): + - React-Core/RCTAnimationHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTBlobHeaders (0.68.2): + - React-Core/RCTBlobHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTImageHeaders (0.68.2): + - React-Core/RCTImageHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTLinkingHeaders (0.68.2): + - React-Core/RCTLinkingHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTNetworkHeaders (0.68.2): + - React-Core/RCTNetworkHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTSettingsHeaders (0.68.2): + - React-Core/RCTSettingsHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTTextHeaders (0.68.2): + - React-Core/RCTTextHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTVibrationHeaders (0.68.2): + - React-Core/RCTVibrationHeaders (0.77.3): - glog - - RCT-Folly (= 2021.06.28.00-v2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation - React-Core/Default - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) - - Yoga - - React-Core/RCTWebSocket (0.68.2): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.68.2) - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsiexecutor (= 0.68.2) - - React-perflogger (= 0.68.2) - - Yoga - - React-CoreModules (0.68.2): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.68.2) - - React-Codegen (= 0.68.2) - - React-Core/CoreModulesHeaders (= 0.68.2) - - React-jsi (= 0.68.2) - - React-RCTImage (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-cxxreact (0.68.2): - - boost (= 1.76.0) - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-callinvoker (= 0.68.2) - - React-jsi (= 0.68.2) - - React-jsinspector (= 0.68.2) - - React-logger (= 0.68.2) - - React-perflogger (= 0.68.2) - - React-runtimeexecutor (= 0.68.2) - - React-jsi (0.68.2): - - boost (= 1.76.0) - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-jsi/Default (= 0.68.2) - - React-jsi/Default (0.68.2): - - boost (= 1.76.0) - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-jsiexecutor (0.68.2): - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-perflogger (= 0.68.2) - - React-jsinspector (0.68.2) - - React-logger (0.68.2): - - glog - - React-perflogger (0.68.2) - - React-RCTActionSheet (0.68.2): - - React-Core/RCTActionSheetHeaders (= 0.68.2) - - React-RCTAnimation (0.68.2): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.68.2) - - React-Codegen (= 0.68.2) - - React-Core/RCTAnimationHeaders (= 0.68.2) - - React-jsi (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-RCTBlob (0.68.2): - - RCT-Folly (= 2021.06.28.00-v2) - - React-Codegen (= 0.68.2) - - React-Core/RCTBlobHeaders (= 0.68.2) - - React-Core/RCTWebSocket (= 0.68.2) - - React-jsi (= 0.68.2) - - React-RCTNetwork (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-RCTImage (0.68.2): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.68.2) - - React-Codegen (= 0.68.2) - - React-Core/RCTImageHeaders (= 0.68.2) - - React-jsi (= 0.68.2) - - React-RCTNetwork (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-RCTLinking (0.68.2): - - React-Codegen (= 0.68.2) - - React-Core/RCTLinkingHeaders (= 0.68.2) - - React-jsi (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-RCTNetwork (0.68.2): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.68.2) - - React-Codegen (= 0.68.2) - - React-Core/RCTNetworkHeaders (= 0.68.2) - - React-jsi (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-RCTSettings (0.68.2): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.68.2) - - React-Codegen (= 0.68.2) - - React-Core/RCTSettingsHeaders (= 0.68.2) - - React-jsi (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-RCTText (0.68.2): - - React-Core/RCTTextHeaders (= 0.68.2) - - React-RCTVibration (0.68.2): - - RCT-Folly (= 2021.06.28.00-v2) - - React-Codegen (= 0.68.2) - - React-Core/RCTVibrationHeaders (= 0.68.2) - - React-jsi (= 0.68.2) - - ReactCommon/turbomodule/core (= 0.68.2) - - React-runtimeexecutor (0.68.2): - - React-jsi (= 0.68.2) - - ReactCommon/turbomodule/core (0.68.2): - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-callinvoker (= 0.68.2) - - React-Core (= 0.68.2) - - React-cxxreact (= 0.68.2) - - React-jsi (= 0.68.2) - - React-logger (= 0.68.2) - - React-perflogger (= 0.68.2) - - RNAmazonPublisherServices (1.0.2): - - AmazonPublisherServicesSDK + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTWebSocket (0.77.3): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default (= 0.77.3) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-CoreModules (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety (= 0.77.3) + - React-Core/CoreModulesHeaders (= 0.77.3) + - React-jsi (= 0.77.3) + - React-jsinspector + - React-NativeModulesApple + - React-RCTBlob + - React-RCTFBReactNativeSpec + - React-RCTImage (= 0.77.3) + - ReactCommon + - SocketRocket (= 0.7.1) + - React-cxxreact (0.77.3): + - boost + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-callinvoker (= 0.77.3) + - React-debug (= 0.77.3) + - React-jsi (= 0.77.3) + - React-jsinspector + - React-logger (= 0.77.3) + - React-perflogger (= 0.77.3) + - React-runtimeexecutor (= 0.77.3) + - React-timing (= 0.77.3) + - React-debug (0.77.3) + - React-defaultsnativemodule (0.77.3): + - hermes-engine + - RCT-Folly + - React-domnativemodule + - React-featureflagsnativemodule + - React-idlecallbacksnativemodule + - React-jsi + - React-jsiexecutor + - React-microtasksnativemodule + - React-RCTFBReactNativeSpec + - React-domnativemodule (0.77.3): + - hermes-engine + - RCT-Folly + - React-Fabric + - React-FabricComponents + - React-graphics + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/animations (= 0.77.3) + - React-Fabric/attributedstring (= 0.77.3) + - React-Fabric/componentregistry (= 0.77.3) + - React-Fabric/componentregistrynative (= 0.77.3) + - React-Fabric/components (= 0.77.3) + - React-Fabric/core (= 0.77.3) + - React-Fabric/dom (= 0.77.3) + - React-Fabric/imagemanager (= 0.77.3) + - React-Fabric/leakchecker (= 0.77.3) + - React-Fabric/mounting (= 0.77.3) + - React-Fabric/observers (= 0.77.3) + - React-Fabric/scheduler (= 0.77.3) + - React-Fabric/telemetry (= 0.77.3) + - React-Fabric/templateprocessor (= 0.77.3) + - React-Fabric/uimanager (= 0.77.3) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/animations (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/attributedstring (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistry (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistrynative (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/components/legacyviewmanagerinterop (= 0.77.3) + - React-Fabric/components/root (= 0.77.3) + - React-Fabric/components/view (= 0.77.3) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/legacyviewmanagerinterop (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/root (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/view (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric/core (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/dom (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/imagemanager (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/leakchecker (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/mounting (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/observers (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/observers/events (= 0.77.3) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/observers/events (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/scheduler (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/observers/events + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-performancetimeline + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/telemetry (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/templateprocessor (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/uimanager/consistency (= 0.77.3) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager/consistency (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-FabricComponents (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-FabricComponents/components (= 0.77.3) + - React-FabricComponents/textlayoutmanager (= 0.77.3) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-FabricComponents/components/inputaccessory (= 0.77.3) + - React-FabricComponents/components/iostextinput (= 0.77.3) + - React-FabricComponents/components/modal (= 0.77.3) + - React-FabricComponents/components/rncore (= 0.77.3) + - React-FabricComponents/components/safeareaview (= 0.77.3) + - React-FabricComponents/components/scrollview (= 0.77.3) + - React-FabricComponents/components/text (= 0.77.3) + - React-FabricComponents/components/textinput (= 0.77.3) + - React-FabricComponents/components/unimplementedview (= 0.77.3) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/inputaccessory (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/iostextinput (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/modal (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/rncore (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/safeareaview (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/scrollview (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/text (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety - React-Core - - RNGoogleMobileAds (6.2.5): - - Google-Mobile-Ads-SDK (= 9.3.0) - - GoogleUserMessagingPlatform (= 2.0.0) + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/textinput (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety - React-Core - - SocketRocket (0.6.0) - - Yoga (1.14.0) - - YogaKit (1.18.1): - - Yoga (~> 1.14) + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/unimplementedview (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/textlayoutmanager (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricImage (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired (= 0.77.3) + - RCTTypeSafety (= 0.77.3) + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-jsiexecutor (= 0.77.3) + - React-logger + - React-rendererdebug + - React-utils + - ReactCommon + - Yoga + - React-featureflags (0.77.3) + - React-featureflagsnativemodule (0.77.3): + - hermes-engine + - RCT-Folly + - React-featureflags + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - ReactCommon/turbomodule/core + - React-graphics (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-jsi + - React-jsiexecutor + - React-utils + - React-hermes (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-cxxreact (= 0.77.3) + - React-jsi + - React-jsiexecutor (= 0.77.3) + - React-jsinspector + - React-perflogger (= 0.77.3) + - React-runtimeexecutor + - React-idlecallbacksnativemodule (0.77.3): + - hermes-engine + - RCT-Folly + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - React-runtimescheduler + - ReactCommon/turbomodule/core + - React-ImageManager (0.77.3): + - glog + - RCT-Folly/Fabric + - React-Core/Default + - React-debug + - React-Fabric + - React-graphics + - React-rendererdebug + - React-utils + - React-jserrorhandler (0.77.3): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-cxxreact + - React-debug + - React-featureflags + - React-jsi + - ReactCommon/turbomodule/bridging + - React-jsi (0.77.3): + - boost + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-jsiexecutor (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-cxxreact (= 0.77.3) + - React-jsi (= 0.77.3) + - React-jsinspector + - React-perflogger (= 0.77.3) + - React-jsinspector (0.77.3): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-featureflags + - React-jsi + - React-perflogger (= 0.77.3) + - React-runtimeexecutor (= 0.77.3) + - React-jsitracing (0.77.3): + - React-jsi + - React-logger (0.77.3): + - glog + - React-Mapbuffer (0.77.3): + - glog + - React-debug + - React-microtasksnativemodule (0.77.3): + - hermes-engine + - RCT-Folly + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - ReactCommon/turbomodule/core + - React-nativeconfig (0.77.3) + - React-NativeModulesApple (0.77.3): + - glog + - hermes-engine + - React-callinvoker + - React-Core + - React-cxxreact + - React-jsi + - React-jsinspector + - React-runtimeexecutor + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-perflogger (0.77.3): + - DoubleConversion + - RCT-Folly (= 2024.11.18.00) + - React-performancetimeline (0.77.3): + - RCT-Folly (= 2024.11.18.00) + - React-cxxreact + - React-featureflags + - React-timing + - React-RCTActionSheet (0.77.3): + - React-Core/RCTActionSheetHeaders (= 0.77.3) + - React-RCTAnimation (0.77.3): + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety + - React-Core/RCTAnimationHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - React-RCTAppDelegate (0.77.3): + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-CoreModules + - React-debug + - React-defaultsnativemodule + - React-Fabric + - React-featureflags + - React-graphics + - React-hermes + - React-nativeconfig + - React-NativeModulesApple + - React-RCTFabric + - React-RCTFBReactNativeSpec + - React-RCTImage + - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - ReactCommon + - React-RCTBlob (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-Core/RCTBlobHeaders + - React-Core/RCTWebSocket + - React-jsi + - React-jsinspector + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - React-RCTNetwork + - ReactCommon + - React-RCTFabric (0.77.3): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-Core + - React-debug + - React-Fabric + - React-FabricComponents + - React-FabricImage + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-jsinspector + - React-nativeconfig + - React-performancetimeline + - React-RCTImage + - React-RCTText + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTFBReactNativeSpec (0.77.3): + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - ReactCommon + - React-RCTImage (0.77.3): + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety + - React-Core/RCTImageHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - React-RCTNetwork + - ReactCommon + - React-RCTLinking (0.77.3): + - React-Core/RCTLinkingHeaders (= 0.77.3) + - React-jsi (= 0.77.3) + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - ReactCommon/turbomodule/core (= 0.77.3) + - React-RCTNetwork (0.77.3): + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety + - React-Core/RCTNetworkHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - React-RCTSettings (0.77.3): + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety + - React-Core/RCTSettingsHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - React-RCTText (0.77.3): + - React-Core/RCTTextHeaders (= 0.77.3) + - Yoga + - React-RCTVibration (0.77.3): + - RCT-Folly (= 2024.11.18.00) + - React-Core/RCTVibrationHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - React-rendererconsistency (0.77.3) + - React-rendererdebug (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - RCT-Folly (= 2024.11.18.00) + - React-debug + - React-rncore (0.77.3) + - React-RuntimeApple (0.77.3): + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RCTFBReactNativeSpec + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - React-RuntimeCore (0.77.3): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-cxxreact + - React-Fabric + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-performancetimeline + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - React-runtimeexecutor (0.77.3): + - React-jsi (= 0.77.3) + - React-RuntimeHermes (0.77.3): + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-featureflags + - React-hermes + - React-jsi + - React-jsinspector + - React-jsitracing + - React-nativeconfig + - React-RuntimeCore + - React-utils + - React-runtimescheduler (0.77.3): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-callinvoker + - React-cxxreact + - React-debug + - React-featureflags + - React-jsi + - React-performancetimeline + - React-rendererconsistency + - React-rendererdebug + - React-runtimeexecutor + - React-timing + - React-utils + - React-timing (0.77.3) + - React-utils (0.77.3): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-debug + - React-jsi (= 0.77.3) + - ReactAppDependencyProvider (0.77.3): + - ReactCodegen + - ReactCodegen (0.77.3): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - React-RCTAppDelegate + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactCommon (0.77.3): + - ReactCommon/turbomodule (= 0.77.3) + - ReactCommon/turbomodule (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-callinvoker (= 0.77.3) + - React-cxxreact (= 0.77.3) + - React-jsi (= 0.77.3) + - React-logger (= 0.77.3) + - React-perflogger (= 0.77.3) + - ReactCommon/turbomodule/bridging (= 0.77.3) + - ReactCommon/turbomodule/core (= 0.77.3) + - ReactCommon/turbomodule/bridging (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-callinvoker (= 0.77.3) + - React-cxxreact (= 0.77.3) + - React-jsi (= 0.77.3) + - React-logger (= 0.77.3) + - React-perflogger (= 0.77.3) + - ReactCommon/turbomodule/core (0.77.3): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 12.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-callinvoker (= 0.77.3) + - React-cxxreact (= 0.77.3) + - React-debug (= 0.77.3) + - React-featureflags (= 0.77.3) + - React-jsi (= 0.77.3) + - React-logger (= 0.77.3) + - React-perflogger (= 0.77.3) + - React-utils (= 0.77.3) + - RNAmazonPublisherServices (2.1.0): + - AmazonPublisherServicesSDK (= 5.3.1) + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNGoogleMobileAds (14.11.0): + - DoubleConversion + - glog + - Google-Mobile-Ads-SDK (= 12.2.0) + - GoogleUserMessagingPlatform (= 2.7.0) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - SocketRocket (0.7.1) + - Yoga (0.0.0) DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - fast_float (from `../node_modules/react-native/third-party-podspecs/fast_float.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - - Flipper (= 0.125.0) - - Flipper-Boost-iOSX (= 1.76.0.1.11) - - Flipper-DoubleConversion (= 3.2.0) - - Flipper-Fmt (= 7.1.7) - - Flipper-Folly (= 2.6.10) - - Flipper-Glog (= 0.5.0.4) - - Flipper-PeerTalk (= 0.0.4) - - Flipper-RSocket (= 1.4.3) - - FlipperKit (= 0.125.0) - - FlipperKit/Core (= 0.125.0) - - FlipperKit/CppBridge (= 0.125.0) - - FlipperKit/FBCxxFollyDynamicConvert (= 0.125.0) - - FlipperKit/FBDefines (= 0.125.0) - - FlipperKit/FKPortForwarding (= 0.125.0) - - FlipperKit/FlipperKitHighlightOverlay (= 0.125.0) - - FlipperKit/FlipperKitLayoutPlugin (= 0.125.0) - - FlipperKit/FlipperKitLayoutTextSearchable (= 0.125.0) - - FlipperKit/FlipperKitNetworkPlugin (= 0.125.0) - - FlipperKit/FlipperKitReactPlugin (= 0.125.0) - - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0) - - FlipperKit/SKIOSNetworkPlugin (= 0.125.0) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - - OpenSSL-Universal (= 1.1.1100) + - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) + - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - - React-Codegen (from `build/generated/ios`) - React-Core (from `../node_modules/react-native/`) - - React-Core/DevSupport (from `../node_modules/react-native/`) - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) + - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-FabricComponents (from `../node_modules/react-native/ReactCommon`) + - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) + - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) + - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) + - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) + - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) + - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTFabric (from `../node_modules/react-native/React`) + - React-RCTFBReactNativeSpec (from `../node_modules/react-native/React`) - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) + - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) + - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) + - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`) + - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) + - ReactAppDependencyProvider (from `build/generated/ios`) + - ReactCodegen (from `build/generated/ios`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - - RNAmazonPublisherServices (from `../..`) + - RNAmazonPublisherServices (from `../node_modules/react-native-aps`) - RNGoogleMobileAds (from `../node_modules/react-native-google-mobile-ads`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: trunk: - AmazonPublisherServicesSDK - - CocoaAsyncSocket - - Flipper - - Flipper-Boost-iOSX - - Flipper-DoubleConversion - - Flipper-Fmt - - Flipper-Folly - - Flipper-Glog - - Flipper-PeerTalk - - Flipper-RSocket - - FlipperKit - - fmt - Google-Mobile-Ads-SDK - - GoogleAppMeasurement - GoogleUserMessagingPlatform - - GoogleUtilities - - libevent - - nanopb - - OpenSSL-Universal - - PromisesObjC - SocketRocket - - YogaKit EXTERNAL SOURCES: boost: :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + fast_float: + :podspec: "../node_modules/react-native/third-party-podspecs/fast_float.podspec" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" - FBReactNativeSpec: - :path: "../node_modules/react-native/React/FBReactNativeSpec" + fmt: + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + hermes-engine: + :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" + :tag: hermes-2024-11-25-RNv0.77.0-d4f25d534ab744866448b36ca3bf3d97c08e638c RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTDeprecation: + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" RCTRequired: - :path: "../node_modules/react-native/Libraries/RCTRequired" + :path: "../node_modules/react-native/Libraries/Required" RCTTypeSafety: :path: "../node_modules/react-native/Libraries/TypeSafety" React: :path: "../node_modules/react-native/" React-callinvoker: :path: "../node_modules/react-native/ReactCommon/callinvoker" - React-Codegen: - :path: build/generated/ios React-Core: :path: "../node_modules/react-native/" React-CoreModules: :path: "../node_modules/react-native/React/CoreModules" React-cxxreact: :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-debug: + :path: "../node_modules/react-native/ReactCommon/react/debug" + React-defaultsnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" + React-domnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" + React-Fabric: + :path: "../node_modules/react-native/ReactCommon" + React-FabricComponents: + :path: "../node_modules/react-native/ReactCommon" + React-FabricImage: + :path: "../node_modules/react-native/ReactCommon" + React-featureflags: + :path: "../node_modules/react-native/ReactCommon/react/featureflags" + React-featureflagsnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" + React-graphics: + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" + React-idlecallbacksnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" + React-ImageManager: + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jserrorhandler: + :path: "../node_modules/react-native/ReactCommon/jserrorhandler" React-jsi: :path: "../node_modules/react-native/ReactCommon/jsi" React-jsiexecutor: :path: "../node_modules/react-native/ReactCommon/jsiexecutor" React-jsinspector: - :path: "../node_modules/react-native/ReactCommon/jsinspector" + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" React-logger: :path: "../node_modules/react-native/ReactCommon/logger" + React-Mapbuffer: + :path: "../node_modules/react-native/ReactCommon" + React-microtasksnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" + React-nativeconfig: + :path: "../node_modules/react-native/ReactCommon" + React-NativeModulesApple: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" React-perflogger: :path: "../node_modules/react-native/ReactCommon/reactperflogger" + React-performancetimeline: + :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" React-RCTActionSheet: :path: "../node_modules/react-native/Libraries/ActionSheetIOS" React-RCTAnimation: :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTAppDelegate: + :path: "../node_modules/react-native/Libraries/AppDelegate" React-RCTBlob: :path: "../node_modules/react-native/Libraries/Blob" + React-RCTFabric: + :path: "../node_modules/react-native/React" + React-RCTFBReactNativeSpec: + :path: "../node_modules/react-native/React" React-RCTImage: :path: "../node_modules/react-native/Libraries/Image" React-RCTLinking: @@ -548,74 +1736,113 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/Text" React-RCTVibration: :path: "../node_modules/react-native/Libraries/Vibration" + React-rendererconsistency: + :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" + React-rendererdebug: + :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" + React-rncore: + :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimeexecutor: :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimescheduler: + :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-timing: + :path: "../node_modules/react-native/ReactCommon/react/timing" + React-utils: + :path: "../node_modules/react-native/ReactCommon/react/utils" + ReactAppDependencyProvider: + :path: build/generated/ios + ReactCodegen: + :path: build/generated/ios ReactCommon: :path: "../node_modules/react-native/ReactCommon" RNAmazonPublisherServices: - :path: "../.." + :path: "../node_modules/react-native-aps" RNGoogleMobileAds: :path: "../node_modules/react-native-google-mobile-ads" Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - AmazonPublisherServicesSDK: cd88ef55d5afaa6483bcb04b977e1585a95f9211 - boost: a7c83b31436843459a1961bfd74b96033dc77234 - CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 - DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662 - FBLazyVector: a7a655862f6b09625d11c772296b01cd5164b648 - FBReactNativeSpec: 81ce99032d5b586fddd6a38d450f8595f7e04be4 - Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 - Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c - Flipper-DoubleConversion: 3d3d04a078d4f3a1b6c6916587f159dc11f232c4 - Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b - Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 - Flipper-Glog: 87bc98ff48de90cb5b0b5114ed3da79d85ee2dd4 - Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 - Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541 - FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 - fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: 476ee3e89abb49e07f822b48323c51c57124b572 - Google-Mobile-Ads-SDK: 2c8ad48ccc3839a5927f7d7c51505a7cd4f0b672 - GoogleAppMeasurement: 4c19f031220c72464d460c9daa1fb5d1acce958e - GoogleUserMessagingPlatform: ab890ce5f6620f293a21b6bdd82e416a2c73aeca - GoogleUtilities: e0913149f6b0625b553d70dae12b49fc62914fd1 - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 - OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c - PromisesObjC: 99b6f43f9e1044bd87a95a60beff28c2c44ddb72 - RCT-Folly: 4d8508a426467c48885f1151029bc15fa5d7b3b8 - RCTRequired: 3e917ea5377751094f38145fdece525aa90545a0 - RCTTypeSafety: c43c072a4bd60feb49a9570b0517892b4305c45e - React: 176dd882de001854ced260fad41bb68a31aa4bd0 - React-callinvoker: c2864d1818d6e64928d2faf774a3800dfc38fe1f - React-Codegen: 98b6f97f0a7abf7d67e4ce435c77c05b7a95cf05 - React-Core: fdaa2916b1c893f39f02cff0476d1fb0cab1e352 - React-CoreModules: fd8705b80699ec36c2cdd635c2ce9d874b9cfdfc - React-cxxreact: 1832d971f7b0cb2c7b943dc0ec962762c90c906e - React-jsi: 72af715135abe8c3f0dcf3b2548b71d048b69a7e - React-jsiexecutor: b7b553412f2ec768fe6c8f27cd6bafdb9d8719e6 - React-jsinspector: c5989c77cb89ae6a69561095a61cce56a44ae8e8 - React-logger: a0833912d93b36b791b7a521672d8ee89107aff1 - React-perflogger: a18b4f0bd933b8b24ecf9f3c54f9bf65180f3fe6 - React-RCTActionSheet: 547fe42fdb4b6089598d79f8e1d855d7c23e2162 - React-RCTAnimation: bc9440a1c37b06ae9ebbb532d244f607805c6034 - React-RCTBlob: a1295c8e183756d7ef30ba6e8f8144dfe8a19215 - React-RCTImage: a30d1ee09b1334067fbb6f30789aae2d7ac150c9 - React-RCTLinking: ffc6d5b88d1cb9aca13c54c2ec6507fbf07f2ac4 - React-RCTNetwork: f807a2facab6cf5cf36d592e634611de9cf12d81 - React-RCTSettings: 861806819226ed8332e6a8f90df2951a34bb3e7f - React-RCTText: f3fb464cc41a50fc7a1aba4deeb76a9ad8282cb9 - React-RCTVibration: 79040b92bfa9c3c2d2cb4f57e981164ec7ab9374 - React-runtimeexecutor: b960b687d2dfef0d3761fbb187e01812ebab8b23 - ReactCommon: 095366164a276d91ea704ce53cb03825c487a3f2 - RNAmazonPublisherServices: b798cff7ca95f6479b4a5c805fca8cc1baf33f61 - RNGoogleMobileAds: 77377919b554017a68d228b8de43226107da90f9 - SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 - Yoga: 99652481fcd320aefa4a7ef90095b95acd181952 - YogaKit: f782866e155069a2cca2517aafea43200b01fd5a + AmazonPublisherServicesSDK: 6dbf6736815e2d70925a475bb1ed5a2c8b824599 + boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 + DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb + fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 + FBLazyVector: 23d8c5470c648a635893dc0956c6dbaead54b656 + fmt: 530618a01105dae0fa3a2f27c81ae11fa8f67eac + glog: eb93e2f488219332457c3c4eafd2738ddc7e80b8 + Google-Mobile-Ads-SDK: 1dfb0c3cb46c7e2b00b0f4de74a1e06d9ea25d67 + GoogleUserMessagingPlatform: a8b56893477f67212fbc8411c139e61d463349f5 + hermes-engine: b2187dbe13edb0db8fcb2a93a69c1987a30d98a4 + RCT-Folly: d533c1d21249a85e67a4be97f4d793665de0222e + RCTDeprecation: 6ee92578d332db1d4e03267d3ae98bcf8b780863 + RCTRequired: 5b3da0e0f91fddda935574b81748c3e3d3649ee7 + RCTTypeSafety: 870cb072be3d3f310ecec897c3d297a931f8f7e1 + React: 535fa5014fb1743f6654a980acb16dae339e1944 + React-callinvoker: dd1ecd51f8d3c76a551afdf6dab6d51c1ead5501 + React-Core: cd2530a1bcf14af3e34cd7561ee36916079a8e7f + React-CoreModules: 346b8c537e497f2b80d8abe820f639d0d760e849 + React-cxxreact: c4eff33a22e52d766bad826773a03ffdff0fc9e0 + React-debug: 41315631a01cf5cc3c9498482b97be21c49f8e8d + React-defaultsnativemodule: dcb237a582ed8d46e74e4c38c90f8e29895a0812 + React-domnativemodule: 4cc53a9f19dae2514b56357c8a148601b5376c13 + React-Fabric: ea0233d0a453372fdac2310aa2416953b4a40eba + React-FabricComponents: c9c1a17c533a0358d4e03b089c455add58a24ec1 + React-FabricImage: c12d507fea0862bceaf44a3ef3fb69097831975b + React-featureflags: 08f06c820a37b29ed3ef9dddc6763c086339bc28 + React-featureflagsnativemodule: e4c016c273fccd39e5c0425dbf552ae3ba6f557c + React-graphics: e14597767427cdf7495e9c892196cf6d200d0c59 + React-hermes: 8457e3443264112d80124df4994460e5300b7a57 + React-idlecallbacksnativemodule: ad58b5d392ca3257511ea81c496d068face8bcee + React-ImageManager: a9e52d60226e1994b432bf7cc9d58b36a935eeb6 + React-jserrorhandler: 1e06734dfb99a87b1d9db3954e2fb680e1483a77 + React-jsi: ac177e70811ea5107df3976c1abd61a3d521f809 + React-jsiexecutor: 684af7ec8823b7ca84636b7bdb9290dd8d299f66 + React-jsinspector: 75717c9002cb6b590692ebb237ad1fce5f600aba + React-jsitracing: 62b9f496758ea6aff6fb7021b4b8e05da7e460c5 + React-logger: 094beeb633228cb5d7a1b7235e21c77f901eb1a6 + React-Mapbuffer: ac43f5b92893ee6cba15a712b211191f9dfbf089 + React-microtasksnativemodule: c32cbd3d9c334a51311ab9d717e2c72c7032a256 + React-nativeconfig: f77b4627803bf7886a1f2e96b33b8af34e583cc4 + React-NativeModulesApple: 6bfb56c8a05c9181727a4375c6fce152171c038d + React-perflogger: 6820403fcb3daf843cb89772f2ba7b25cf7d5797 + React-performancetimeline: 7bcddde49ca791c27191250c4827ad1e94004b24 + React-RCTActionSheet: f8f5545f473a87a8ab124046fe58905b82c55322 + React-RCTAnimation: d00f43f3fb0be43b737eea902da35b60259ac581 + React-RCTAppDelegate: 9398d664922ed53a19ae35496298b7970631f6b7 + React-RCTBlob: 7a830c0fb32d80070d1c0214f8e5a12ef2847cac + React-RCTFabric: d39ea220f5aa7538b898e81ea217e973047fa7a4 + React-RCTFBReactNativeSpec: 824146f7b3964b44eb2e8c6735db456808070ccf + React-RCTImage: 29536152820fe9e8f6faeca4456593cbf8deef3f + React-RCTLinking: 95526e0b3561c5aa92f5cb6fb0260632aacae8b6 + React-RCTNetwork: b4d4f4e0df5ae22befbdc9803f2729586be15155 + React-RCTSettings: db763df8a5177dd99f0848abdefed604e423ee82 + React-RCTText: c9925bc59a549645fc34265631626701f208b31a + React-RCTVibration: 95fee529d0734f88d889fdb0926d8fdd2f14deb8 + React-rendererconsistency: 9f5292176e629370402cbfe4e88c19b3c68e79a3 + React-rendererdebug: f3e021c2941e3235287b3f4ca595262dd34581cd + React-rncore: 8a77fbb638aab2ef0a3e4e122ddc5310a8299699 + React-RuntimeApple: 6e622ffd3f434847f97fb39215130962f84e184c + React-RuntimeCore: 30fa3ab46a71c71220605b67e22e3930be1e69b7 + React-runtimeexecutor: 2dc71d251ce5630b11d384bc80d7fbb9d9d93623 + React-RuntimeHermes: bc562eeae932000894a072e9ab3ff5b24d04a87b + React-runtimescheduler: 1fc66730e3502512adb9ac24831938285a36f310 + React-timing: 7d80ad4297c57ec4cb49da4a5db1b82f93fedb2a + React-utils: 1dfda6bd64373a4bd19efa4d48ac0756a2bc8dff + ReactAppDependencyProvider: 9b3704075c2fe8fd7c739779655fb88700a1ca30 + ReactCodegen: c9645fb81bcaf5afebaebb25874bcd5224cd40f1 + ReactCommon: fea23933fb9fffdc48fcc208746839ec62d52571 + RNAmazonPublisherServices: 9710f127c0b005065da6c1724f6c03886e5d65e4 + RNGoogleMobileAds: 9942180fdf37e5e04f50b43d70c504d86729447d + SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 + Yoga: 92f3bb322c40a86b7233b815854730442e01b8c4 -PODFILE CHECKSUM: 6e844456fb3458d80b71539fce65521d39168ad3 +PODFILE CHECKSUM: 2833753f9d032bb0d3def2270f196b0dc00e377b -COCOAPODS: 1.11.3 +COCOAPODS: 1.16.2 diff --git a/example/ios/RNAPSExample.xcodeproj/project.pbxproj b/example/ios/RNAPSExample.xcodeproj/project.pbxproj index 40ef18a..a4c638c 100644 --- a/example/ios/RNAPSExample.xcodeproj/project.pbxproj +++ b/example/ios/RNAPSExample.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 136A1D9E897AB39FB7A83C1C /* libPods-RNAPSExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61FC4A99BB210A3C25CA8ECD /* libPods-RNAPSExample.a */; }; + 29364C3EA045B89C6886551F /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6EBDD178343696230C287FEE /* PrivacyInfo.xcprivacy */; }; 88DC82292844B1D600DA7762 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 88DC82232844B1D600DA7762 /* main.m */; }; 88DC822A2844B1D600DA7762 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 88DC82242844B1D600DA7762 /* Images.xcassets */; }; 88DC822B2844B1D600DA7762 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 88DC82252844B1D600DA7762 /* LaunchScreen.storyboard */; }; @@ -30,6 +31,7 @@ 13B07F961A680F5B00A75B9A /* RNAPSExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RNAPSExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1B212F46050D095F202E4953 /* Pods-RNAPSExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNAPSExample.release.xcconfig"; path = "Target Support Files/Pods-RNAPSExample/Pods-RNAPSExample.release.xcconfig"; sourceTree = ""; }; 61FC4A99BB210A3C25CA8ECD /* libPods-RNAPSExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNAPSExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6EBDD178343696230C287FEE /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = RNAPSExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; 88DC82222844B1D600DA7762 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = RNAPSExample/Info.plist; sourceTree = ""; }; 88DC82232844B1D600DA7762 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = RNAPSExample/main.m; sourceTree = ""; }; 88DC82242844B1D600DA7762 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RNAPSExample/Images.xcassets; sourceTree = ""; }; @@ -122,6 +124,7 @@ 88DC82232844B1D600DA7762 /* main.m */, 88DC822E2844B1F800DA7762 /* File.swift */, 88DC822D2844B1F800DA7762 /* RNAPSExample-Bridging-Header.h */, + 6EBDD178343696230C287FEE /* PrivacyInfo.xcprivacy */, ); name = RNAPSExample; sourceTree = ""; @@ -183,6 +186,7 @@ TestTargetID = 13B07F861A680F5B00A75B9A; }; 13B07F861A680F5B00A75B9A = { + DevelopmentTeam = BQ2JL39J6V; LastSwiftMigration = 1340; }; }; @@ -220,6 +224,7 @@ files = ( 88DC822B2844B1D600DA7762 /* LaunchScreen.storyboard in Resources */, 88DC822A2844B1D600DA7762 /* Images.xcassets in Resources */, + 29364C3EA045B89C6886551F /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -270,16 +275,12 @@ inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-RNAPSExample/Pods-RNAPSExample-frameworks.sh", "${PODS_XCFRAMEWORKS_BUILD_DIR}/AmazonPublisherServicesSDK/DTBiOSSDK.framework/DTBiOSSDK", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-DoubleConversion/double-conversion.framework/double-conversion", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-Glog/glog.framework/glog", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DTBiOSSDK.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/double-conversion.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/glog.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -297,7 +298,7 @@ name = "[CP-User] [RNGoogleMobileAds] Configuration"; runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_PROJECT_ABBREVIATION=\"RNGoogleMobileAds\"\n_JSON_ROOT=\"'react-native-google-mobile-ads'\"\n_JSON_FILE_NAME='app.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> ${_PROJECT_ABBREVIATION} build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, app.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"google_mobile_ads_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.delay_app_measurement_init\n _DELAY_APP_MEASUREMENT=$(getJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"delay_app_measurement_init\")\n if [[ $_DELAY_APP_MEASUREMENT == \"true\" ]]; then\n _PLIST_ENTRY_KEYS+=(\"GADDelayAppMeasurementInit\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"YES\")\n fi\n\n # config.ios_app_id\n _IOS_APP_ID=$(getJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"ios_app_id\")\n if [[ $_IOS_APP_ID ]]; then\n _PLIST_ENTRY_KEYS+=(\"GADApplicationIdentifier\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_IOS_APP_ID\")\n fi\n\n # config.user_tracking_usage_description\n _USER_TRACKING_USAGE_DESCRIPTION=$(getJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"user_tracking_usage_description\")\n if [[ $_USER_TRACKING_USAGE_DESCRIPTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"NSUserTrackingUsageDescription\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_USER_TRACKING_USAGE_DESCRIPTION\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"google_mobile_ads_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A ${_JSON_FILE_NAME} file was not found, whilst this file is optional it is recommended to include it to auto-configure services.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- ${_PROJECT_ABBREVIATION} build script finished\"\n"; + shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n\n##########################################################################\n##########################################################################\n#\n# NOTE THAT IF YOU CHANGE THIS FILE YOU MUST RUN pod install AFTERWARDS\n#\n# This file is installed as an Xcode build script in the project file\n# by cocoapods, and you will not see your changes until you pod install\n#\n##########################################################################\n##########################################################################\n\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_PROJECT_ABBREVIATION=\"RNGoogleMobileAds\"\n_JSON_ROOT=\"'react-native-google-mobile-ads'\"\n_JSON_FILE_NAME='app.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n_PACKAGE_JSON_NAME='package.json'\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -KU -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> ${_PROJECT_ABBREVIATION} build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -KU -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, app.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"google_mobile_ads_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.delay_app_measurement_init\n _DELAY_APP_MEASUREMENT=$(getJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"delay_app_measurement_init\")\n if [[ $_DELAY_APP_MEASUREMENT == \"true\" ]]; then\n _PLIST_ENTRY_KEYS+=(\"GADDelayAppMeasurementInit\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"YES\")\n fi\n\n # config.ios_app_id\n _IOS_APP_ID=$(getJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"ios_app_id\")\n if [[ $_IOS_APP_ID ]]; then\n _PLIST_ENTRY_KEYS+=(\"GADApplicationIdentifier\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_IOS_APP_ID\")\n fi\n\n # config.sk_ad_network_items\n _SK_AD_NETWORK_ITEMS=$(getJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"sk_ad_network_items\")\n if [[ $_SK_AD_NETWORK_ITEMS ]]; then\n _PLIST_ENTRY_KEYS+=(\"SKAdNetworkItems\")\n _PLIST_ENTRY_TYPES+=(\"array\")\n _PLIST_ENTRY_VALUES+=(\"\")\n\n oldifs=$IFS\n IFS=\"\n\"\n array=($(echo \"$_SK_AD_NETWORK_ITEMS\"))\n IFS=$oldifs\n for i in \"${!array[@]}\"; do\n _PLIST_ENTRY_KEYS+=(\"SKAdNetworkItems:$i:SKAdNetworkIdentifier\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"${array[i]}\") \n done\n fi\n\n # config.user_tracking_usage_description\n _USER_TRACKING_USAGE_DESCRIPTION=$(getJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"user_tracking_usage_description\")\n if [[ $_USER_TRACKING_USAGE_DESCRIPTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"NSUserTrackingUsageDescription\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_USER_TRACKING_USAGE_DESCRIPTION\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"google_mobile_ads_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A ${_JSON_FILE_NAME} file was not found, whilst this file is optional it is recommended to include it to auto-configure services.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nif ! [[ -f \"${_TARGET_PLIST}\" ]]; then\n echo \"error: unable to locate Info.plist to set properties. App will crash without GADApplicationIdentifier set.\"\n exit 1\nfi\n\nif ! [[ $_IOS_APP_ID ]]; then\n echo \"warning: ios_app_id key not found in react-native-google-mobile-ads key in app.json. App will crash without it.\"\n echo \" You can safely ignore this warning if you are using our Expo config plugin.\"\n exit 0\nfi\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- ${_PROJECT_ABBREVIATION} build script finished\"\n"; }; C1D60D28B925C94BD88E79D7 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; @@ -306,11 +307,23 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-RNAPSExample/Pods-RNAPSExample-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/Google-Mobile-Ads-SDK/GoogleMobileAdsResources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUserMessagingPlatform/UserMessagingPlatformResources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly/RCT-Folly_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/React-Core_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact/React-cxxreact_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/boost/boost_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/glog/glog_privacy.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleMobileAdsResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/UserMessagingPlatformResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCT-Folly_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-Core_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-cxxreact_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/boost_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/glog_privacy.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -417,6 +430,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = BQ2JL39J6V; ENABLE_BITCODE = NO; INFOPLIST_FILE = "$(SRCROOT)/RNAPSExample/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 11.0; @@ -442,6 +456,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = BQ2JL39J6V; INFOPLIST_FILE = "$(SRCROOT)/RNAPSExample/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -463,7 +478,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -515,7 +530,14 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + USE_HERMES = true; }; name = Debug; }; @@ -524,7 +546,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -568,7 +590,13 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; + USE_HERMES = true; VALIDATE_PRODUCT = YES; }; name = Release; diff --git a/example/ios/RNAPSExample/AppDelegate.h b/example/ios/RNAPSExample/AppDelegate.h index 2726d5e..5d28082 100644 --- a/example/ios/RNAPSExample/AppDelegate.h +++ b/example/ios/RNAPSExample/AppDelegate.h @@ -1,15 +1,6 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -#import +#import #import -@interface AppDelegate : UIResponder - -@property (nonatomic, strong) UIWindow *window; +@interface AppDelegate : RCTAppDelegate @end diff --git a/example/ios/RNAPSExample/AppDelegate.mm b/example/ios/RNAPSExample/AppDelegate.mm index 25419cb..37a3aa6 100644 --- a/example/ios/RNAPSExample/AppDelegate.mm +++ b/example/ios/RNAPSExample/AppDelegate.mm @@ -1,63 +1,23 @@ #import "AppDelegate.h" -#import #import -#import - -#import - -#if RCT_NEW_ARCH_ENABLED -#import -#import -#import -#import -#import -#import - -#import - -@interface AppDelegate () { - RCTTurboModuleManager *_turboModuleManager; - RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; - std::shared_ptr _reactNativeConfig; - facebook::react::ContextContainer::Shared _contextContainer; -} -@end -#endif @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - RCTAppSetupPrepareApp(application); - - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - -#if RCT_NEW_ARCH_ENABLED - _contextContainer = std::make_shared(); - _reactNativeConfig = std::make_shared(); - _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); - _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; - bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; -#endif - - UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"RNAPSExample", nil); - - if (@available(iOS 13.0, *)) { - rootView.backgroundColor = [UIColor systemBackgroundColor]; - } else { - rootView.backgroundColor = [UIColor whiteColor]; - } + self.moduleName = @"RNAPSExample"; + self.initialProps = @{}; - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; + return [super application:application didFinishLaunchingWithOptions:launchOptions]; } - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ + return [self bundleURL]; +} + +- (NSURL *)bundleURL { #if DEBUG return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; @@ -66,43 +26,4 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge #endif } -#if RCT_NEW_ARCH_ENABLED - -#pragma mark - RCTCxxBridgeDelegate - -- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge -{ - _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge - delegate:self - jsInvoker:bridge.jsCallInvoker]; - return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); -} - -#pragma mark RCTTurboModuleManagerDelegate - -- (Class)getModuleClassFromName:(const char *)name -{ - return RCTCoreModulesClassProvider(name); -} - -- (std::shared_ptr)getTurboModule:(const std::string &)name - jsInvoker:(std::shared_ptr)jsInvoker -{ - return nullptr; -} - -- (std::shared_ptr)getTurboModule:(const std::string &)name - initParams: - (const facebook::react::ObjCTurboModule::InitParams &)params -{ - return nullptr; -} - -- (id)getModuleInstanceFromClass:(Class)moduleClass -{ - return RCTAppSetupDefaultModuleFromClass(moduleClass); -} - -#endif - @end diff --git a/example/ios/RNAPSExample/PrivacyInfo.xcprivacy b/example/ios/RNAPSExample/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..7198353 --- /dev/null +++ b/example/ios/RNAPSExample/PrivacyInfo.xcprivacy @@ -0,0 +1,45 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/example/metro.config.js b/example/metro.config.js index 41a4f1e..0dbb61a 100644 --- a/example/metro.config.js +++ b/example/metro.config.js @@ -1,4 +1,5 @@ const path = require('path'); +const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); const exclusionList = require('metro-config/src/defaults/exclusionList'); const escape = require('escape-string-regexp'); const pak = require('../package.json'); @@ -9,14 +10,12 @@ const modules = Object.keys({ ...pak.peerDependencies, }); -module.exports = { +const config = { projectRoot: __dirname, watchFolders: [root], - // We need to make sure that only one version is loaded for peerDependencies - // So we blacklist them at the root, and alias them to the versions in example's node_modules resolver: { - blacklistRE: exclusionList( + blockList: exclusionList( modules.map( (m) => new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`) @@ -28,13 +27,6 @@ module.exports = { return acc; }, {}), }, - - transformer: { - getTransformOptions: async () => ({ - transform: { - experimentalImportSupport: false, - inlineRequires: true, - }, - }), - }, }; + +module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/example/package.json b/example/package.json index 6f235b9..1693291 100644 --- a/example/package.json +++ b/example/package.json @@ -6,21 +6,28 @@ "scripts": { "android": "react-native run-android", "ios": "react-native run-ios", - "start": "react-native start" + "start": "react-native start", + "postinstall": "find node_modules/react-native -name '*.podspec' -o -name '*.rb' | xargs grep -l '11\\.0\\.2' 2>/dev/null | xargs sed -i '' 's/11\\.0\\.2/12.1.0/g' 2>/dev/null || true" }, "dependencies": { - "react": "17.0.2", - "react-native": "0.68.2", + "react": "18.3.1", + "react-native": "0.77.3", "react-native-aps": "link:../", - "react-native-google-mobile-ads": "^6.2.5" + "react-native-google-mobile-ads": "^14.2.0" }, "devDependencies": { - "@babel/core": "^7.17.8", - "@babel/runtime": "^7.17.8", - "@types/react": "^18.0.9", - "@types/react-native": "^0.67.7", + "@babel/core": "^7.25.2", + "@babel/runtime": "^7.25.0", + "@react-native-community/cli": "15.0.1", + "@react-native-community/cli-platform-android": "15.0.1", + "@react-native-community/cli-platform-ios": "15.0.1", + "@react-native/babel-preset": "0.77.3", + "@react-native/metro-config": "0.77.3", + "@types/react": "^18.2.6", "babel-plugin-module-resolver": "^4.1.0", - "metro-react-native-babel-preset": "^0.70.0", - "typescript": "^4.6.4" + "typescript": "^5.0.4" + }, + "engines": { + "node": ">=18" } } diff --git a/example/src/APSAds.component.tsx b/example/src/APSAds.component.tsx index 6de0e20..888e503 100644 --- a/example/src/APSAds.component.tsx +++ b/example/src/APSAds.component.tsx @@ -1,30 +1,259 @@ -import React, { useEffect, useState } from 'react'; -import { StyleSheet, Text, View } from 'react-native'; +import React, { useCallback, useEffect, useState } from 'react'; +import { + ActivityIndicator, + Platform, + StyleSheet, + Text, + View, +} from 'react-native'; import { AdNetwork, APSAds, MRAIDPolicy, TestIds } from 'react-native-aps'; -export default function Banner() { - const [initialized, setInitialized] = useState(false); +type Step = { + label: string; + status: 'pending' | 'running' | 'done' | 'error'; + detail?: string; +}; + +export default function APSAdsDemo() { + const [steps, setSteps] = useState([ + { label: 'Initialize SDK', status: 'pending' }, + { label: 'Set Ad Network', status: 'pending' }, + { label: 'Set MRAID Policy', status: 'pending' }, + { label: 'Enable Test Mode', status: 'pending' }, + ]); + + const updateStep = useCallback( + (index: number, update: Partial) => + setSteps((prev) => + prev.map((s, i) => (i === index ? { ...s, ...update } : s)) + ), + [] + ); useEffect(() => { - APSAds.initialize(TestIds.APS_APP_KEY).then(() => { - APSAds.setAdNetworkInfo({ adNetwork: AdNetwork.GOOGLE_AD_MANAGER }); - APSAds.setMRAIDPolicy(MRAIDPolicy.DFP); - APSAds.setTestMode(true); - setInitialized(true); - }); + (async () => { + try { + updateStep(0, { + status: 'running', + detail: `App Key: ${TestIds.APS_APP_KEY?.slice(0, 8)}...`, + }); + await APSAds.initialize(TestIds.APS_APP_KEY); + updateStep(0, { status: 'done' }); + + updateStep(1, { + status: 'running', + detail: AdNetwork.GOOGLE_AD_MANAGER, + }); + APSAds.setAdNetworkInfo({ adNetwork: AdNetwork.GOOGLE_AD_MANAGER }); + updateStep(1, { status: 'done' }); + + updateStep(2, { status: 'running', detail: 'DFP' }); + APSAds.setMRAIDPolicy(MRAIDPolicy.DFP); + updateStep(2, { status: 'done' }); + + updateStep(3, { status: 'running', detail: 'true' }); + APSAds.setTestMode(true); + updateStep(3, { status: 'done' }); + } catch (e: any) { + const failedIdx = steps.findIndex( + (s) => s.status === 'running' || s.status === 'pending' + ); + if (failedIdx >= 0) { + updateStep(failedIdx, { + status: 'error', + detail: e?.message ?? 'Unknown error', + }); + } + } + })(); }, []); + const allDone = steps.every((s) => s.status === 'done'); + const hasError = steps.some((s) => s.status === 'error'); + return ( - - {`initialized : ${initialized}`} + + + Configuration + + Platform + {Platform.OS} + + + App Key + + {TestIds.APS_APP_KEY?.slice(0, 12)}... + + + + Ad Network + Google Ad Manager + + + + + Initialization Steps + {steps.map((step, i) => ( + + + {step.status === 'running' ? ( + + ) : ( + + )} + + + + {step.label} + + {step.detail && ( + {step.detail} + )} + + + ))} + + + + + {hasError + ? 'Initialization failed' + : allDone + ? 'APS SDK ready' + : 'Initializing...'} + + ); } const styles = StyleSheet.create({ - container: { + card: { + backgroundColor: '#fff', + borderRadius: 12, + padding: 16, + marginBottom: 12, + shadowColor: '#000', + shadowOffset: { width: 0, height: 1 }, + shadowOpacity: 0.05, + shadowRadius: 3, + elevation: 2, + }, + cardTitle: { + fontSize: 15, + fontWeight: '600', + color: '#334155', + marginBottom: 12, + textTransform: 'uppercase', + letterSpacing: 0.5, + }, + infoRow: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + paddingVertical: 8, + borderBottomWidth: StyleSheet.hairlineWidth, + borderBottomColor: '#e2e8f0', + }, + infoLabel: { + fontSize: 14, + color: '#64748b', + }, + infoValue: { + fontSize: 14, + fontWeight: '500', + color: '#1e293b', + }, + infoValueMono: { + fontSize: 13, + fontWeight: '500', + color: '#1e293b', + fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace', + }, + stepRow: { + flexDirection: 'row', + alignItems: 'flex-start', + paddingVertical: 8, + }, + stepIndicator: { + width: 28, + alignItems: 'center', + paddingTop: 2, + }, + stepDot: { + width: 10, + height: 10, + borderRadius: 5, + backgroundColor: '#cbd5e1', + }, + stepDotDone: { + backgroundColor: '#4ade80', + }, + stepDotError: { + backgroundColor: '#f87171', + }, + stepContent: { flex: 1, + }, + stepLabel: { + fontSize: 14, + color: '#475569', + }, + stepLabelDone: { + color: '#1e293b', + fontWeight: '500', + }, + stepDetail: { + fontSize: 12, + color: '#94a3b8', + marginTop: 2, + fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace', + }, + statusBanner: { + backgroundColor: '#f1f5f9', + borderRadius: 10, + padding: 14, alignItems: 'center', - justifyContent: 'center', + }, + statusSuccess: { + backgroundColor: '#ecfdf5', + }, + statusError: { + backgroundColor: '#fef2f2', + }, + statusText: { + fontSize: 14, + fontWeight: '600', + color: '#64748b', + }, + statusTextSuccess: { + color: '#16a34a', + }, + statusTextError: { + color: '#dc2626', }, }); diff --git a/example/src/App.tsx b/example/src/App.tsx index bcd8b3c..c4f2343 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -1,105 +1,194 @@ import React, { useEffect, useState } from 'react'; -import { Button, SafeAreaView, StyleSheet, Text, View } from 'react-native'; +import { + Pressable, + SafeAreaView, + ScrollView, + StyleSheet, + Text, + View, +} from 'react-native'; import MobileAds from 'react-native-google-mobile-ads'; -import APSAds from './APSAds.component'; -import Banner from './Banner.component'; -import Interstitial from './Interstitial.component'; +import APSAdsDemo from './APSAds.component'; +import BannerDemo from './Banner.component'; +import InterstitialDemo from './Interstitial.component'; -interface Test { - title: string; - testId: string; - description: string; - render: () => JSX.Element; -} +const TABS = [ + { + key: 'init', + label: 'SDK Init', + description: 'Initialize APS SDK, configure ad network and MRAID policy.', + }, + { + key: 'banner', + label: 'Banner', + description: + 'Request an APS bid for a 320x50 banner slot, then render via GAM.', + }, + { + key: 'interstitial', + label: 'Interstitial', + description: + 'Request an APS bid for an interstitial slot, then show via GAM.', + }, +] as const; -const TESTS: { [key: string]: Test } = { - APSAds: { - title: 'APSAds', - testId: 'aps-ads', - description: 'Initialize APSAds SDK', - render() { - return ; - }, - }, - Banner: { - title: 'Banner', - testId: 'banner', - description: 'Loads APS bid into banner ad', - render() { - return ; - }, - }, - Interstitial: { - title: 'Interstitial', - testId: 'interstitial', - description: 'Loads APS bid into interstitial ad', - render() { - return ; - }, - }, -}; +type TabKey = (typeof TABS)[number]['key']; export default function App() { - const [currentTest, setCurrentTest] = useState(TESTS.APSAds); + const [activeTab, setActiveTab] = useState('init'); + const [gamReady, setGamReady] = useState(false); useEffect(() => { - MobileAds().initialize(); + MobileAds() + .initialize() + .then(() => setGamReady(true)); }, []); + const currentTab = TABS.find((t) => t.key === activeTab)!; + return ( - - - {Object.values(TESTS).map((test) => ( -