diff --git a/NewRelicExampleApp/.buckconfig b/NewRelicExampleApp/.buckconfig deleted file mode 100644 index 934256c..0000000 --- a/NewRelicExampleApp/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/NewRelicExampleApp/.flowconfig b/NewRelicExampleApp/.flowconfig deleted file mode 100644 index 3782e44..0000000 --- a/NewRelicExampleApp/.flowconfig +++ /dev/null @@ -1,66 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -/\.buckd/ - -; Ignore polyfills -node_modules/react-native/Libraries/polyfills/.* - -; Flow doesn't support platforms -.*/Libraries/Utilities/LoadingView.js - -.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$ - -[untyped] -.*/node_modules/@react-native-community/cli/.*/.* - -[include] - -[libs] -node_modules/react-native/interface.js -node_modules/react-native/flow/ - -[options] -emoji=true - -exact_by_default=true - -format.bracket_spacing=false - -module.file_ext=.js -module.file_ext=.json -module.file_ext=.ios.js - -munge_underscores=true - -module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' -module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FlowFixMeProps -suppress_type=$FlowFixMeState - -[lints] -sketchy-null-number=warn -sketchy-null-mixed=warn -sketchy-number=warn -untyped-type-import=warn -nonstrict-import=warn -deprecated-type=warn -unsafe-getters-setters=warn -unnecessary-invariant=warn - -[strict] -deprecated-type -nonstrict-import -sketchy-null -unclear-type -unsafe-getters-setters -untyped-import -untyped-type-import - -[version] -^0.182.0 diff --git a/NewRelicExampleApp/.node-version b/NewRelicExampleApp/.node-version deleted file mode 100644 index b6a7d89..0000000 --- a/NewRelicExampleApp/.node-version +++ /dev/null @@ -1 +0,0 @@ -16 diff --git a/NewRelicExampleApp/.ruby-version b/NewRelicExampleApp/.ruby-version deleted file mode 100644 index a603bb5..0000000 --- a/NewRelicExampleApp/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.7.5 diff --git a/NewRelicExampleApp/App.js b/NewRelicExampleApp/App.js deleted file mode 100644 index 11f9ff6..0000000 --- a/NewRelicExampleApp/App.js +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import {createBottomTabNavigator} from '@react-navigation/bottom-tabs'; -import {NavigationContainer} from '@react-navigation/native'; - -import ApiScreen from './screens/Api'; -import ExamplesScreen from './screens/Examples'; - -import NewRelic from 'newrelic-react-native-agent'; - -const Tab = createBottomTabNavigator(); - -const App = () => { - return ( - - - - - - - ); -}; - -export default App; \ No newline at end of file diff --git a/NewRelicExampleApp/.bundle/config b/NewRelicExampleApp/React-Native-Test-App/.bundle/config similarity index 100% rename from NewRelicExampleApp/.bundle/config rename to NewRelicExampleApp/React-Native-Test-App/.bundle/config diff --git a/NewRelicExampleApp/.eslintrc.js b/NewRelicExampleApp/React-Native-Test-App/.eslintrc.js similarity index 100% rename from NewRelicExampleApp/.eslintrc.js rename to NewRelicExampleApp/React-Native-Test-App/.eslintrc.js diff --git a/NewRelicExampleApp/.gitignore b/NewRelicExampleApp/React-Native-Test-App/.gitignore similarity index 90% rename from NewRelicExampleApp/.gitignore rename to NewRelicExampleApp/React-Native-Test-App/.gitignore index 3c6eb41..16f8c30 100644 --- a/NewRelicExampleApp/.gitignore +++ b/NewRelicExampleApp/React-Native-Test-App/.gitignore @@ -31,6 +31,8 @@ local.properties *.iml *.hprof .cxx/ +*.keystore +!debug.keystore # node.js # @@ -38,12 +40,6 @@ node_modules/ npm-debug.log yarn-error.log -# BUCK -buck-out/ -\.buckd/ -*.keystore -!debug.keystore - # fastlane # # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the @@ -62,4 +58,6 @@ buck-out/ # Ruby / CocoaPods /ios/Pods/ /vendor/bundle/ -NewRelicExampleApp/yarn.lock + +# Temporary files created by Metro to check the health of the file watcher +.metro-health-check* diff --git a/NewRelicExampleApp/React-Native-Test-App/.node-version b/NewRelicExampleApp/React-Native-Test-App/.node-version new file mode 100644 index 0000000..3c03207 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/.node-version @@ -0,0 +1 @@ +18 diff --git a/NewRelicExampleApp/.prettierrc.js b/NewRelicExampleApp/React-Native-Test-App/.prettierrc.js similarity index 100% rename from NewRelicExampleApp/.prettierrc.js rename to NewRelicExampleApp/React-Native-Test-App/.prettierrc.js diff --git a/NewRelicExampleApp/.watchmanconfig b/NewRelicExampleApp/React-Native-Test-App/.watchmanconfig similarity index 100% rename from NewRelicExampleApp/.watchmanconfig rename to NewRelicExampleApp/React-Native-Test-App/.watchmanconfig diff --git a/NewRelicExampleApp/React-Native-Test-App/App.tsx b/NewRelicExampleApp/React-Native-Test-App/App.tsx new file mode 100644 index 0000000..4c54dd1 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/App.tsx @@ -0,0 +1,139 @@ +/** + * Sample React Native App + * https://github.com/facebook/react-native + * + * @format + */ + +import React from 'react'; +import type {PropsWithChildren} from 'react'; +import {NavigationContainer} from '@react-navigation/native'; +import {createNativeStackNavigator} from '@react-navigation/native-stack'; +import {createBottomTabNavigator} from '@react-navigation/bottom-tabs'; +import UtilsScreen from './screens/UtilsScreen'; +import TestScreen from './screens/TestScreen'; +import NewsFeedScreen from './screens/NewsFeedScreen'; +import BrowserScreen from './screens/BrowserScreen'; +import { RootStackParamList } from './Browser'; + +const Stack = createNativeStackNavigator(); +const Tab = createBottomTabNavigator(); + +import { + StyleSheet, + Text, + useColorScheme, + View, +} from 'react-native'; + +import { + Colors, +} from 'react-native/Libraries/NewAppScreen'; + +type SectionProps = PropsWithChildren<{ + title: string; +}>; + + +function Section({children, title}: SectionProps): JSX.Element { + const isDarkMode = useColorScheme() === 'dark'; + return ( + + + {title} + + + {children} + + + ); +} + + +const Home = () => { + return ( + <> + + + + + + + ); +}; + +function App(): JSX.Element { + return ( + + + + + + + ); +} + +const styles = StyleSheet.create({ + sectionContainer: { + marginTop: 32, + paddingHorizontal: 24, + }, + sectionTitle: { + fontSize: 24, + fontWeight: '600', + }, + sectionDescription: { + marginTop: 8, + fontSize: 18, + fontWeight: '400', + }, + highlight: { + fontWeight: '700', + }, +}); + +export default App; diff --git a/NewRelicExampleApp/React-Native-Test-App/Browser.ts b/NewRelicExampleApp/React-Native-Test-App/Browser.ts new file mode 100644 index 0000000..958c291 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/Browser.ts @@ -0,0 +1,8 @@ +export type RootStackParamList = { + Browser: { + title: string; + url: string; + }; + Home: { + }; +}; diff --git a/NewRelicExampleApp/Gemfile b/NewRelicExampleApp/React-Native-Test-App/Gemfile similarity index 68% rename from NewRelicExampleApp/Gemfile rename to NewRelicExampleApp/React-Native-Test-App/Gemfile index 5efda89..1142b1b 100644 --- a/NewRelicExampleApp/Gemfile +++ b/NewRelicExampleApp/React-Native-Test-App/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby '2.7.5' +ruby '>= 2.6.10' -gem 'cocoapods', '~> 1.11', '>= 1.11.2' +gem 'cocoapods', '>= 1.11.3' diff --git a/NewRelicExampleApp/React-Native-Test-App/Gemfile.lock b/NewRelicExampleApp/React-Native-Test-App/Gemfile.lock new file mode 100644 index 0000000..0014eeb --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/Gemfile.lock @@ -0,0 +1,98 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.6) + rexml + activesupport (7.0.5) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.4) + public_suffix (>= 2.0.2, < 6.0) + algoliasearch (1.27.5) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) + atomos (0.1.3) + claide (1.1.0) + cocoapods (1.12.1) + addressable (~> 2.8) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.12.1) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 1.6.0, < 2.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.3.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.8.0) + nap (~> 1.0) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.21.0, < 2.0) + cocoapods-core (1.12.1) + activesupport (>= 5.0, < 8) + addressable (~> 2.8) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (1.6.3) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.2.0) + colored2 (3.1.2) + concurrent-ruby (1.2.2) + escape (0.0.4) + ethon (0.16.0) + ffi (>= 1.15.0) + ffi (1.15.5) + fourflusher (2.3.1) + fuzzy_match (2.0.4) + gh_inspector (1.1.3) + httpclient (2.8.3) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + json (2.6.3) + minitest (5.18.0) + molinillo (0.8.0) + nanaimo (0.3.0) + nap (1.1.0) + netrc (0.11.0) + public_suffix (4.0.7) + rexml (3.2.5) + ruby-macho (2.5.1) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + xcodeproj (1.22.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) + +PLATFORMS + ruby + +DEPENDENCIES + cocoapods (>= 1.11.3) + +RUBY VERSION + ruby 3.2.2p53 + +BUNDLED WITH + 2.4.10 diff --git a/NewRelicExampleApp/React-Native-Test-App/README.md b/NewRelicExampleApp/React-Native-Test-App/README.md new file mode 100644 index 0000000..e960dde --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/README.md @@ -0,0 +1 @@ +# React-Native-Test-App \ No newline at end of file diff --git a/NewRelicExampleApp/React-Native-Test-App/__tests__/App-test.tsx b/NewRelicExampleApp/React-Native-Test-App/__tests__/App-test.tsx new file mode 100644 index 0000000..9f9b54f --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/__tests__/App-test.tsx @@ -0,0 +1,14 @@ +/** + * @format + */ + +import 'react-native'; +import React from 'react'; +import App from '../App'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + // renderer.create(); +}); diff --git a/NewRelicExampleApp/React-Native-Test-App/android/app/build.gradle b/NewRelicExampleApp/React-Native-Test-App/android/app/build.gradle new file mode 100644 index 0000000..25ae62d --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/android/app/build.gradle @@ -0,0 +1,171 @@ +apply plugin: "com.android.application" +apply plugin: "com.facebook.react" +apply plugin: "newrelic" + +import com.android.build.OutputFile + +/** + * This is the configuration block to customize your React Native Android app. + * By default you don't need to apply any configuration, just uncomment the lines you need. + */ +react { + /* Folders */ + // The root of your project, i.e. where "package.json" lives. Default is '..' + // root = file("../") + // The folder where the react-native NPM package is. Default is ../node_modules/react-native + // reactNativeDir = file("../node_modules/react-native") + // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen + // codegenDir = file("../node_modules/react-native-codegen") + // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js + // cliFile = file("../node_modules/react-native/cli.js") + + /* Variants */ + // The list of variants to that are debuggable. For those we're going to + // skip the bundling of the JS bundle and the assets. By default is just 'debug'. + // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. + // debuggableVariants = ["liteDebug", "prodDebug"] + + /* Bundling */ + // A list containing the node command and its flags. Default is just 'node'. + // nodeExecutableAndArgs = ["node"] + // + // The command to run when bundling. By default is 'bundle' + // bundleCommand = "ram-bundle" + // + // The path to the CLI configuration file. Default is empty. + // bundleConfig = file(../rn-cli.config.js) + // + // The name of the generated asset file containing your JS bundle + // bundleAssetName = "MyApplication.android.bundle" + // + // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' + // entryFile = file("../js/MyApplication.android.js") + // + // A list of extra flags to pass to the 'bundle' commands. + // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle + // extraPackagerArgs = [] + + /* Hermes Commands */ + // The hermes compiler command to run. By default it is 'hermesc' + // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" + // + // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" + // hermesFlags = ["-O", "-output-source-map"] +} + +/** + * Set this to true to create four separate APKs instead of one, + * one for each native architecture. This is useful if you don't + * use App Bundles (https://developer.android.com/guide/app-bundle/) + * and want to have separate APKs to upload to the Play Store. + */ +def enableSeparateBuildPerCPUArchitecture = false + +/** + * Set this to true to Run Proguard on Release builds to minify the Java bytecode. + */ +def enableProguardInReleaseBuilds = false + +/** + * The preferred build flavor of JavaScriptCore (JSC) + * + * For example, 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:+' + +/** + * Private function to get the list of Native Architectures you want to build. + * This reads the value from reactNativeArchitectures in your gradle.properties + * file and works together with the --active-arch-only flag of react-native run-android. + */ +def reactNativeArchitectures() { + def value = project.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +android { + ndkVersion rootProject.ext.ndkVersion + + compileSdkVersion rootProject.ext.compileSdkVersion + + namespace "com.awesomeproject" + defaultConfig { + applicationId "com.awesomeproject" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + } + + splits { + abi { + reset() + enable enableSeparateBuildPerCPUArchitecture + universalApk false // If true, also generate a universal APK + include (*reactNativeArchitectures()) + } + } + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + buildTypes { + debug { + 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" + } + } + + // 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 + // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. + 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) + } + + } + } +} + +dependencies { + // The version of react-native is set by the React Native Gradle Plugin + implementation("com.facebook.react:react-android") + + implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") + + debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") + debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { + exclude group:'com.squareup.okhttp3', module:'okhttp' + } + + debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") + } else { + implementation jscFlavor + } +} + +apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) diff --git a/NewRelicExampleApp/android/app/debug.keystore b/NewRelicExampleApp/React-Native-Test-App/android/app/debug.keystore similarity index 100% rename from NewRelicExampleApp/android/app/debug.keystore rename to NewRelicExampleApp/React-Native-Test-App/android/app/debug.keystore diff --git a/NewRelicExampleApp/android/app/proguard-rules.pro b/NewRelicExampleApp/React-Native-Test-App/android/app/proguard-rules.pro similarity index 100% rename from NewRelicExampleApp/android/app/proguard-rules.pro rename to NewRelicExampleApp/React-Native-Test-App/android/app/proguard-rules.pro diff --git a/NewRelicExampleApp/android/app/src/debug/AndroidManifest.xml b/NewRelicExampleApp/React-Native-Test-App/android/app/src/debug/AndroidManifest.xml similarity index 100% rename from NewRelicExampleApp/android/app/src/debug/AndroidManifest.xml rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/debug/AndroidManifest.xml diff --git a/NewRelicExampleApp/android/app/src/debug/java/com/newrelicexampleapp/ReactNativeFlipper.java b/NewRelicExampleApp/React-Native-Test-App/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java similarity index 93% rename from NewRelicExampleApp/android/app/src/debug/java/com/newrelicexampleapp/ReactNativeFlipper.java rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java index 600ae9e..7b91910 100644 --- a/NewRelicExampleApp/android/app/src/debug/java/com/newrelicexampleapp/ReactNativeFlipper.java +++ b/NewRelicExampleApp/React-Native-Test-App/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java @@ -4,7 +4,7 @@ *

This source code is licensed under the MIT license found in the LICENSE file in the root * directory of this source tree. */ -package com.newrelicexampleapp; +package com.awesomeproject; import android.content.Context; import com.facebook.flipper.android.AndroidFlipperClient; @@ -17,7 +17,6 @@ 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; @@ -25,13 +24,16 @@ import com.facebook.react.modules.network.NetworkingModule; import okhttp3.OkHttpClient; +/** + * Class responsible of loading Flipper inside your React Native application. This is the debug + * flavor of it. Here you can add your own plugins and customize the Flipper setup. + */ 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()); diff --git a/NewRelicExampleApp/android/app/src/main/AndroidManifest.xml b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/AndroidManifest.xml similarity index 87% rename from NewRelicExampleApp/android/app/src/main/AndroidManifest.xml rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/AndroidManifest.xml index 18ec89c..0890547 100644 --- a/NewRelicExampleApp/android/app/src/main/AndroidManifest.xml +++ b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + @@ -10,8 +9,7 @@ android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" - android:theme="@style/AppTheme" - android:networkSecurityConfig="@xml/network_security_config"> + android:theme="@style/AppTheme"> 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"; + } + + @Override + protected boolean isNewArchEnabled() { + return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; + } + + @Override + protected Boolean isHermesEnabled() { + return BuildConfig.IS_HERMES_ENABLED; + } + }; + + @Override + public ReactNativeHost getReactNativeHost() { + return mReactNativeHost; + } + + @Override + public void onCreate() { + super.onCreate(); + SoLoader.init(this, /* native exopackage */ false); + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + // If you opted-in for the New Architecture, we load the native entry point for this app. + DefaultNewArchitectureEntryPoint.load(); + } + ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); + } +} diff --git a/NewRelicExampleApp/android/app/src/main/res/drawable/rn_edit_text_material.xml b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/drawable/rn_edit_text_material.xml similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/drawable/rn_edit_text_material.xml rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/drawable/rn_edit_text_material.xml diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/NewRelicExampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/values/strings.xml b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..cad480c --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + AwesomeProject + diff --git a/NewRelicExampleApp/android/app/src/main/res/values/styles.xml b/NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/values/styles.xml similarity index 100% rename from NewRelicExampleApp/android/app/src/main/res/values/styles.xml rename to NewRelicExampleApp/React-Native-Test-App/android/app/src/main/res/values/styles.xml diff --git a/NewRelicExampleApp/React-Native-Test-App/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java b/NewRelicExampleApp/React-Native-Test-App/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java new file mode 100644 index 0000000..72b9eef --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java @@ -0,0 +1,20 @@ +/** + * 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.awesomeproject; + +import android.content.Context; +import com.facebook.react.ReactInstanceManager; + +/** + * Class responsible of loading Flipper inside your React Native application. This is the release + * flavor of it so it's empty as we don't want to load Flipper. + */ +public class ReactNativeFlipper { + public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { + // Do nothing as we don't want to initialize Flipper on Release. + } +} diff --git a/NewRelicExampleApp/React-Native-Test-App/android/build.gradle b/NewRelicExampleApp/React-Native-Test-App/android/build.gradle new file mode 100644 index 0000000..430def4 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/android/build.gradle @@ -0,0 +1,22 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext { + buildToolsVersion = "33.0.0" + minSdkVersion = 21 + compileSdkVersion = 33 + targetSdkVersion = 33 + + // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. + ndkVersion = "23.1.7779620" + } + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:7.3.1") + classpath("com.facebook.react:react-native-gradle-plugin") + classpath "com.newrelic.agent.android:agent-gradle-plugin:6.11.1" + } +} diff --git a/NewRelicExampleApp/android/gradle.properties b/NewRelicExampleApp/React-Native-Test-App/android/gradle.properties similarity index 94% rename from NewRelicExampleApp/android/gradle.properties rename to NewRelicExampleApp/React-Native-Test-App/android/gradle.properties index 64b206c..e4af465 100644 --- a/NewRelicExampleApp/android/gradle.properties +++ b/NewRelicExampleApp/React-Native-Test-App/android/gradle.properties @@ -39,4 +39,6 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 # are providing them. newArchEnabled=false +# 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/NewRelicExampleApp/android/gradle/wrapper/gradle-wrapper.jar b/NewRelicExampleApp/React-Native-Test-App/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from NewRelicExampleApp/android/gradle/wrapper/gradle-wrapper.jar rename to NewRelicExampleApp/React-Native-Test-App/android/gradle/wrapper/gradle-wrapper.jar diff --git a/NewRelicExampleApp/android/gradle/wrapper/gradle-wrapper.properties b/NewRelicExampleApp/React-Native-Test-App/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from NewRelicExampleApp/android/gradle/wrapper/gradle-wrapper.properties rename to NewRelicExampleApp/React-Native-Test-App/android/gradle/wrapper/gradle-wrapper.properties diff --git a/NewRelicExampleApp/android/gradlew b/NewRelicExampleApp/React-Native-Test-App/android/gradlew similarity index 100% rename from NewRelicExampleApp/android/gradlew rename to NewRelicExampleApp/React-Native-Test-App/android/gradlew diff --git a/NewRelicExampleApp/android/gradlew.bat b/NewRelicExampleApp/React-Native-Test-App/android/gradlew.bat similarity index 100% rename from NewRelicExampleApp/android/gradlew.bat rename to NewRelicExampleApp/React-Native-Test-App/android/gradlew.bat diff --git a/NewRelicExampleApp/React-Native-Test-App/android/settings.gradle b/NewRelicExampleApp/React-Native-Test-App/android/settings.gradle new file mode 100644 index 0000000..c587703 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/android/settings.gradle @@ -0,0 +1,4 @@ +rootProject.name = 'AwesomeProject' +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') diff --git a/NewRelicExampleApp/React-Native-Test-App/app.json b/NewRelicExampleApp/React-Native-Test-App/app.json new file mode 100644 index 0000000..af2b546 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/app.json @@ -0,0 +1,4 @@ +{ + "name": "AwesomeProject", + "displayName": "AwesomeProject" +} \ No newline at end of file diff --git a/NewRelicExampleApp/babel.config.js b/NewRelicExampleApp/React-Native-Test-App/babel.config.js similarity index 100% rename from NewRelicExampleApp/babel.config.js rename to NewRelicExampleApp/React-Native-Test-App/babel.config.js diff --git a/NewRelicExampleApp/React-Native-Test-App/index.js b/NewRelicExampleApp/React-Native-Test-App/index.js new file mode 100644 index 0000000..23373f6 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/index.js @@ -0,0 +1,65 @@ +/** + * @format + */ + +import {AppRegistry} from 'react-native'; +import App from './App'; +import {name as appName} from './app.json'; + +import NewRelic from 'newrelic-react-native-agent'; +import * as appVersion from './package.json'; +import {Platform} from 'react-native'; + +let appToken; + +if (Platform.OS === 'ios') { + appToken = 'placeholder'; +} else { + appToken = 'placeholder'; +} + +const agentConfiguration = { + // Android Specific + // Optional:Enable or disable collection of event data. + analyticsEventEnabled: true, + + // Optional:Enable or disable crash reporting. + crashReportingEnabled: true, + + // Optional:Enable or disable interaction tracing. Trace instrumentation still occurs, but no traces are harvested. This will disable default and custom interactions. + interactionTracingEnabled: true, + + // Optional:Enable or disable reporting successful HTTP requests to the MobileRequest event type. + networkRequestEnabled: true, + + // Optional:Enable or disable reporting network and HTTP request errors to the MobileRequestError event type. + networkErrorRequestEnabled: true, + + // Optional:Enable or disable capture of HTTP response bodies for HTTP error traces, and MobileRequestError events. + httpResponseBodyCaptureEnabled: true, + + // Optional:Enable or disable agent logging. + loggingEnabled: true, + + // Optional:Specifies the log level. Omit this field for the default log level. + // Options include: ERROR (least verbose), WARNING, INFO, VERBOSE, AUDIT (most verbose). + logLevel: NewRelic.LogLevel.INFO, + + // iOS Specific + // Optional:Enable/Disable automatic instrumentation of WebViews + webViewInstrumentation: true, + + // Optional:Set a specific collector address for sending data. Omit this field for default address. + // collectorAddress: "", + + // Optional:Set a specific crash collector address for sending crashes. Omit this field for default address. + // crashCollectorAddress: "", + + // Optional:Enable or disable reporting data using different endpoints for US government clients. + //fedRampEnabled: false +}; + +NewRelic.startAgent(appToken, agentConfiguration); +NewRelic.setJSAppVersion(appVersion.version); + +AppRegistry.registerComponent(appName, () => App); diff --git a/NewRelicExampleApp/ios/.xcode.env b/NewRelicExampleApp/React-Native-Test-App/ios/.xcode.env similarity index 100% rename from NewRelicExampleApp/ios/.xcode.env rename to NewRelicExampleApp/React-Native-Test-App/ios/.xcode.env diff --git a/NewRelicExampleApp/ios/NewRelicExampleApp.xcodeproj/project.pbxproj b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcodeproj/project.pbxproj similarity index 70% rename from NewRelicExampleApp/ios/NewRelicExampleApp.xcodeproj/project.pbxproj rename to NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcodeproj/project.pbxproj index 5256b24..bbd7fc6 100644 --- a/NewRelicExampleApp/ios/NewRelicExampleApp.xcodeproj/project.pbxproj +++ b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcodeproj/project.pbxproj @@ -7,14 +7,13 @@ objects = { /* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* NewRelicExampleAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* NewRelicExampleAppTests.m */; }; - 0C80B921A6F3F58F76C31292 /* libPods-NewRelicExampleApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-NewRelicExampleApp.a */; }; + 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */; }; + 0C80B921A6F3F58F76C31292 /* libPods-AwesomeProject.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 7699B88040F8A987B510C191 /* libPods-NewRelicExampleApp-NewRelicExampleAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-NewRelicExampleApp-NewRelicExampleAppTests.a */; }; + 7699B88040F8A987B510C191 /* libPods-AwesomeProject-AwesomeProjectTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; - F47F077D291EC04600A84FF3 /* Fonts in Resources */ = {isa = PBXBuildFile; fileRef = F47F077C291EC04600A84FF3 /* Fonts */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -23,30 +22,28 @@ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; proxyType = 1; remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = NewRelicExampleApp; + remoteInfo = AwesomeProject; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 00E356EE1AD99517003FC87E /* NewRelicExampleAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NewRelicExampleAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AwesomeProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00E356F21AD99517003FC87E /* NewRelicExampleAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewRelicExampleAppTests.m; sourceTree = ""; }; - 13B07F961A680F5B00A75B9A /* NewRelicExampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NewRelicExampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = NewRelicExampleApp/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = NewRelicExampleApp/AppDelegate.mm; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = NewRelicExampleApp/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = NewRelicExampleApp/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = NewRelicExampleApp/main.m; sourceTree = ""; }; - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-NewRelicExampleApp-NewRelicExampleAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewRelicExampleApp-NewRelicExampleAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3B4392A12AC88292D35C810B /* Pods-NewRelicExampleApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewRelicExampleApp.debug.xcconfig"; path = "Target Support Files/Pods-NewRelicExampleApp/Pods-NewRelicExampleApp.debug.xcconfig"; sourceTree = ""; }; - 5709B34CF0A7D63546082F79 /* Pods-NewRelicExampleApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewRelicExampleApp.release.xcconfig"; path = "Target Support Files/Pods-NewRelicExampleApp/Pods-NewRelicExampleApp.release.xcconfig"; sourceTree = ""; }; - 5B7EB9410499542E8C5724F5 /* Pods-NewRelicExampleApp-NewRelicExampleAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewRelicExampleApp-NewRelicExampleAppTests.debug.xcconfig"; path = "Target Support Files/Pods-NewRelicExampleApp-NewRelicExampleAppTests/Pods-NewRelicExampleApp-NewRelicExampleAppTests.debug.xcconfig"; sourceTree = ""; }; - 5DCACB8F33CDC322A6C60F78 /* libPods-NewRelicExampleApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewRelicExampleApp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = NewRelicExampleApp/LaunchScreen.storyboard; sourceTree = ""; }; - 89C6BE57DB24E9ADA2F236DE /* Pods-NewRelicExampleApp-NewRelicExampleAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewRelicExampleApp-NewRelicExampleAppTests.release.xcconfig"; path = "Target Support Files/Pods-NewRelicExampleApp-NewRelicExampleAppTests/Pods-NewRelicExampleApp-NewRelicExampleAppTests.release.xcconfig"; sourceTree = ""; }; + 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AwesomeProjectTests.m; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* AwesomeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AwesomeProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = AwesomeProject/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = AwesomeProject/AppDelegate.mm; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AwesomeProject/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AwesomeProject/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = AwesomeProject/main.m; sourceTree = ""; }; + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AwesomeProject-AwesomeProjectTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.debug.xcconfig"; sourceTree = ""; }; + 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.release.xcconfig"; sourceTree = ""; }; + 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; sourceTree = ""; }; + 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AwesomeProject.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AwesomeProject/LaunchScreen.storyboard; sourceTree = ""; }; + 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - F47F077C291EC04600A84FF3 /* Fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Fonts; sourceTree = ""; }; - F4E2C43E29E48A3400A7C0A0 /* hermes.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = hermes.xcframework; path = "Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -54,7 +51,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7699B88040F8A987B510C191 /* libPods-NewRelicExampleApp-NewRelicExampleAppTests.a in Frameworks */, + 7699B88040F8A987B510C191 /* libPods-AwesomeProject-AwesomeProjectTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -62,20 +59,20 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C80B921A6F3F58F76C31292 /* libPods-NewRelicExampleApp.a in Frameworks */, + 0C80B921A6F3F58F76C31292 /* libPods-AwesomeProject.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 00E356EF1AD99517003FC87E /* NewRelicExampleAppTests */ = { + 00E356EF1AD99517003FC87E /* AwesomeProjectTests */ = { isa = PBXGroup; children = ( - 00E356F21AD99517003FC87E /* NewRelicExampleAppTests.m */, + 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */, 00E356F01AD99517003FC87E /* Supporting Files */, ); - path = NewRelicExampleAppTests; + path = AwesomeProjectTests; sourceTree = ""; }; 00E356F01AD99517003FC87E /* Supporting Files */ = { @@ -86,27 +83,25 @@ name = "Supporting Files"; sourceTree = ""; }; - 13B07FAE1A68108700A75B9A /* NewRelicExampleApp */ = { + 13B07FAE1A68108700A75B9A /* AwesomeProject */ = { isa = PBXGroup; children = ( 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, - F47F077C291EC04600A84FF3 /* Fonts */, 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 13B07FB71A68108700A75B9A /* main.m */, ); - name = NewRelicExampleApp; + name = AwesomeProject; sourceTree = ""; }; 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { isa = PBXGroup; children = ( - F4E2C43E29E48A3400A7C0A0 /* hermes.xcframework */, ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 5DCACB8F33CDC322A6C60F78 /* libPods-NewRelicExampleApp.a */, - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-NewRelicExampleApp-NewRelicExampleAppTests.a */, + 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */, + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */, ); name = Frameworks; sourceTree = ""; @@ -121,9 +116,9 @@ 83CBB9F61A601CBA00E9B192 = { isa = PBXGroup; children = ( - 13B07FAE1A68108700A75B9A /* NewRelicExampleApp */, + 13B07FAE1A68108700A75B9A /* AwesomeProject */, 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* NewRelicExampleAppTests */, + 00E356EF1AD99517003FC87E /* AwesomeProjectTests */, 83CBBA001A601CBA00E9B192 /* Products */, 2D16E6871FA4F8E400B85C8A /* Frameworks */, BBD78D7AC51CEA395F1C20DB /* Pods */, @@ -136,8 +131,8 @@ 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; children = ( - 13B07F961A680F5B00A75B9A /* NewRelicExampleApp.app */, - 00E356EE1AD99517003FC87E /* NewRelicExampleAppTests.xctest */, + 13B07F961A680F5B00A75B9A /* AwesomeProject.app */, + 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */, ); name = Products; sourceTree = ""; @@ -145,10 +140,10 @@ BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( - 3B4392A12AC88292D35C810B /* Pods-NewRelicExampleApp.debug.xcconfig */, - 5709B34CF0A7D63546082F79 /* Pods-NewRelicExampleApp.release.xcconfig */, - 5B7EB9410499542E8C5724F5 /* Pods-NewRelicExampleApp-NewRelicExampleAppTests.debug.xcconfig */, - 89C6BE57DB24E9ADA2F236DE /* Pods-NewRelicExampleApp-NewRelicExampleAppTests.release.xcconfig */, + 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */, + 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */, + 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */, + 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -156,9 +151,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* NewRelicExampleAppTests */ = { + 00E356ED1AD99517003FC87E /* AwesomeProjectTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "NewRelicExampleAppTests" */; + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */; buildPhases = ( A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, 00E356EA1AD99517003FC87E /* Sources */, @@ -172,14 +167,14 @@ dependencies = ( 00E356F51AD99517003FC87E /* PBXTargetDependency */, ); - name = NewRelicExampleAppTests; - productName = NewRelicExampleAppTests; - productReference = 00E356EE1AD99517003FC87E /* NewRelicExampleAppTests.xctest */; + name = AwesomeProjectTests; + productName = AwesomeProjectTests; + productReference = 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 13B07F861A680F5B00A75B9A /* NewRelicExampleApp */ = { + 13B07F861A680F5B00A75B9A /* AwesomeProject */ = { isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "NewRelicExampleApp" */; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */; buildPhases = ( C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, FD10A7F022414F080027D42C /* Start Packager */, @@ -194,9 +189,9 @@ ); dependencies = ( ); - name = NewRelicExampleApp; - productName = NewRelicExampleApp; - productReference = 13B07F961A680F5B00A75B9A /* NewRelicExampleApp.app */; + name = AwesomeProject; + productName = AwesomeProject; + productReference = 13B07F961A680F5B00A75B9A /* AwesomeProject.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -216,7 +211,7 @@ }; }; }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "NewRelicExampleApp" */; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */; compatibilityVersion = "Xcode 12.0"; developmentRegion = en; hasScannedForEncodings = 0; @@ -229,8 +224,8 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 13B07F861A680F5B00A75B9A /* NewRelicExampleApp */, - 00E356ED1AD99517003FC87E /* NewRelicExampleAppTests */, + 13B07F861A680F5B00A75B9A /* AwesomeProject */, + 00E356ED1AD99517003FC87E /* AwesomeProjectTests */, ); }; /* End PBXProject section */ @@ -247,7 +242,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - F47F077D291EC04600A84FF3 /* Fonts in Resources */, 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, ); @@ -278,15 +272,15 @@ files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp/Pods-NewRelicExampleApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp/Pods-NewRelicExampleApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp/Pods-NewRelicExampleApp-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { @@ -304,7 +298,7 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-NewRelicExampleApp-NewRelicExampleAppTests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-AwesomeProject-AwesomeProjectTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -326,7 +320,7 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-NewRelicExampleApp-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-AwesomeProject-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -339,15 +333,15 @@ files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp-NewRelicExampleAppTests/Pods-NewRelicExampleApp-NewRelicExampleAppTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp-NewRelicExampleAppTests/Pods-NewRelicExampleApp-NewRelicExampleAppTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp-NewRelicExampleAppTests/Pods-NewRelicExampleApp-NewRelicExampleAppTests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { @@ -356,15 +350,15 @@ files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp/Pods-NewRelicExampleApp-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp/Pods-NewRelicExampleApp-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp/Pods-NewRelicExampleApp-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources.sh\"\n"; showEnvVarsInLog = 0; }; F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { @@ -373,15 +367,15 @@ files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp-NewRelicExampleAppTests/Pods-NewRelicExampleApp-NewRelicExampleAppTests-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp-NewRelicExampleAppTests/Pods-NewRelicExampleApp-NewRelicExampleAppTests-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewRelicExampleApp-NewRelicExampleAppTests/Pods-NewRelicExampleApp-NewRelicExampleAppTests-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; FD10A7F022414F080027D42C /* Start Packager */ = { @@ -410,7 +404,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 00E356F31AD99517003FC87E /* NewRelicExampleAppTests.m in Sources */, + 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -428,7 +422,7 @@ /* Begin PBXTargetDependency section */ 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* NewRelicExampleApp */; + target = 13B07F861A680F5B00A75B9A /* AwesomeProject */; targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -436,14 +430,14 @@ /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-NewRelicExampleApp-NewRelicExampleAppTests.debug.xcconfig */; + baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); - INFOPLIST_FILE = NewRelicExampleAppTests/Info.plist; + INFOPLIST_FILE = AwesomeProjectTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -457,17 +451,17 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NewRelicExampleApp.app/NewRelicExampleApp"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject"; }; name = Debug; }; 00E356F71AD99517003FC87E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-NewRelicExampleApp-NewRelicExampleAppTests.release.xcconfig */; + baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; COPY_PHASE_STRIP = NO; - INFOPLIST_FILE = NewRelicExampleAppTests/Info.plist; + INFOPLIST_FILE = AwesomeProjectTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -481,30 +475,31 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NewRelicExampleApp.app/NewRelicExampleApp"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject"; }; name = Release; }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-NewRelicExampleApp.debug.xcconfig */; + baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = 1; ENABLE_BITCODE = NO; - INFOPLIST_FILE = NewRelicExampleApp/Info.plist; + INFOPLIST_FILE = AwesomeProject/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + MARKETING_VERSION = 1.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", "-lc++", ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = NewRelicExampleApp; + PRODUCT_NAME = AwesomeProject; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -513,23 +508,24 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-NewRelicExampleApp.release.xcconfig */; + baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = 1; - INFOPLIST_FILE = NewRelicExampleApp/Info.plist; + INFOPLIST_FILE = AwesomeProject/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + MARKETING_VERSION = 1.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", "-lc++", ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = NewRelicExampleApp; + PRODUCT_NAME = AwesomeProject; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; @@ -675,7 +671,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "NewRelicExampleAppTests" */ = { + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 00E356F61AD99517003FC87E /* Debug */, @@ -684,7 +680,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "NewRelicExampleApp" */ = { + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */ = { isa = XCConfigurationList; buildConfigurations = ( 13B07F941A680F5B00A75B9A /* Debug */, @@ -693,7 +689,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "NewRelicExampleApp" */ = { + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */ = { isa = XCConfigurationList; buildConfigurations = ( 83CBBA201A601CBA00E9B192 /* Debug */, diff --git a/NewRelicExampleApp/ios/NewRelicExampleApp.xcodeproj/xcshareddata/xcschemes/NewRelicExampleApp.xcscheme b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme similarity index 78% rename from NewRelicExampleApp/ios/NewRelicExampleApp.xcodeproj/xcshareddata/xcschemes/NewRelicExampleApp.xcscheme rename to NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme index e6f52a6..20f13d1 100644 --- a/NewRelicExampleApp/ios/NewRelicExampleApp.xcodeproj/xcshareddata/xcschemes/NewRelicExampleApp.xcscheme +++ b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme @@ -15,9 +15,9 @@ + BuildableName = "AwesomeProject.app" + BlueprintName = "AwesomeProject" + ReferencedContainer = "container:AwesomeProject.xcodeproj"> @@ -33,9 +33,9 @@ + BuildableName = "AwesomeProjectTests.xctest" + BlueprintName = "AwesomeProjectTests" + ReferencedContainer = "container:AwesomeProject.xcodeproj"> @@ -55,9 +55,9 @@ + BuildableName = "AwesomeProject.app" + BlueprintName = "AwesomeProject" + ReferencedContainer = "container:AwesomeProject.xcodeproj"> @@ -72,9 +72,9 @@ + BuildableName = "AwesomeProject.app" + BlueprintName = "AwesomeProject" + ReferencedContainer = "container:AwesomeProject.xcodeproj"> diff --git a/NewRelicExampleApp/ios/NewRelicExampleApp.xcworkspace/contents.xcworkspacedata b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcworkspace/contents.xcworkspacedata similarity index 76% rename from NewRelicExampleApp/ios/NewRelicExampleApp.xcworkspace/contents.xcworkspacedata rename to NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcworkspace/contents.xcworkspacedata index 5850839..575b862 100644 --- a/NewRelicExampleApp/ios/NewRelicExampleApp.xcworkspace/contents.xcworkspacedata +++ b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcworkspace/contents.xcworkspacedata @@ -2,7 +2,7 @@ + location = "group:AwesomeProject.xcodeproj"> diff --git a/NewRelicExampleApp/ios/NewRelicExampleApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from NewRelicExampleApp/ios/NewRelicExampleApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/AppDelegate.h b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/AppDelegate.h new file mode 100644 index 0000000..5d28082 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : RCTAppDelegate + +@end diff --git a/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/AppDelegate.mm b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/AppDelegate.mm new file mode 100644 index 0000000..029aa44 --- /dev/null +++ b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/AppDelegate.mm @@ -0,0 +1,36 @@ +#import "AppDelegate.h" + +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + self.moduleName = @"AwesomeProject"; + // You can add your custom initial props in the dictionary below. + // They will be passed down to the ViewController used by React Native. + self.initialProps = @{}; + + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. +/// +/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html +/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). +/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`. +- (BOOL)concurrentRootEnabled +{ + return true; +} + +@end diff --git a/NewRelicExampleApp/ios/NewRelicExampleApp/Images.xcassets/AppIcon.appiconset/Contents.json b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from NewRelicExampleApp/ios/NewRelicExampleApp/Images.xcassets/AppIcon.appiconset/Contents.json rename to NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/NewRelicExampleApp/ios/NewRelicExampleApp/Images.xcassets/Contents.json b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/Images.xcassets/Contents.json similarity index 100% rename from NewRelicExampleApp/ios/NewRelicExampleApp/Images.xcassets/Contents.json rename to NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/Images.xcassets/Contents.json diff --git a/NewRelicExampleApp/ios/NewRelicExampleApp/Info.plist b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/Info.plist similarity index 92% rename from NewRelicExampleApp/ios/NewRelicExampleApp/Info.plist rename to NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/Info.plist index d98b412..c6aa299 100644 --- a/NewRelicExampleApp/ios/NewRelicExampleApp/Info.plist +++ b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/Info.plist @@ -2,12 +2,10 @@ - UIAppFonts - CFBundleDevelopmentRegion en CFBundleDisplayName - NewRelicExampleApp + AwesomeProject CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -19,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.0 + $(MARKETING_VERSION) CFBundleSignature ???? CFBundleVersion - 1 + $(CURRENT_PROJECT_VERSION) LSRequiresIPhoneOS NSAppTransportSecurity diff --git a/NewRelicExampleApp/ios/NewRelicExampleApp/LaunchScreen.storyboard b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/LaunchScreen.storyboard similarity index 94% rename from NewRelicExampleApp/ios/NewRelicExampleApp/LaunchScreen.storyboard rename to NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/LaunchScreen.storyboard index 318bcb3..1ba1a64 100644 --- a/NewRelicExampleApp/ios/NewRelicExampleApp/LaunchScreen.storyboard +++ b/NewRelicExampleApp/React-Native-Test-App/ios/AwesomeProject/LaunchScreen.storyboard @@ -16,7 +16,7 @@ -