diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index 8901934e..d6994459 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -138,6 +138,7 @@ android { } dependencies { + compile project(':react-native-google-analytics-bridge') implementation project(':react-native-vector-icons') implementation project(':react-native-splash-screen') implementation project(':react-native-screens') diff --git a/packages/mobile/android/app/src/main/java/com/devhubapp/MainApplication.java b/packages/mobile/android/app/src/main/java/com/devhubapp/MainApplication.java index 1e827b20..1ec8cb2e 100644 --- a/packages/mobile/android/app/src/main/java/com/devhubapp/MainApplication.java +++ b/packages/mobile/android/app/src/main/java/com/devhubapp/MainApplication.java @@ -3,6 +3,7 @@ package com.devhubapp; import android.app.Application; import com.facebook.react.ReactApplication; +import com.idehub.GoogleAnalyticsBridge.GoogleAnalyticsBridgePackage; import com.oblador.vectoricons.VectorIconsPackage; import org.devio.rn.splashscreen.SplashScreenReactPackage; import com.swmansion.rnscreens.RNScreensPackage; @@ -29,6 +30,7 @@ public class MainApplication extends Application implements ReactApplication { protected List getPackages() { return Arrays.asList( new MainReactPackage(), + new GoogleAnalyticsBridgePackage(), new VectorIconsPackage(), new SplashScreenReactPackage(), new RNScreensPackage(), diff --git a/packages/mobile/android/settings.gradle b/packages/mobile/android/settings.gradle index 7fb7829d..30d4715e 100644 --- a/packages/mobile/android/settings.gradle +++ b/packages/mobile/android/settings.gradle @@ -1,4 +1,6 @@ rootProject.name = 'devhub' +include ':react-native-google-analytics-bridge' +project(':react-native-google-analytics-bridge').projectDir = new File(rootProject.projectDir, '../../../node_modules/react-native-google-analytics-bridge/android') include ':react-native-vector-icons' project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../../../node_modules/react-native-vector-icons/android') include ':react-native-splash-screen' diff --git a/packages/mobile/index.js b/packages/mobile/index.js index e33910d3..fbce2725 100644 --- a/packages/mobile/index.js +++ b/packages/mobile/index.js @@ -1,9 +1,17 @@ import React from 'react' import { AppRegistry, View } from 'react-native' import { useScreens } from 'react-native-screens' +import { + GoogleAnalyticsSettings, + GoogleAnalyticsTracker, +} from 'react-native-google-analytics-bridge' import { App } from 'shared-components/dist/components/App' +export const tracker = new GoogleAnalyticsTracker('UA-52350759-2') +GoogleAnalyticsSettings.setDispatchInterval(10) +GoogleAnalyticsSettings.setDryRun(__DEV__) + useScreens() AppRegistry.registerComponent('devhub', () => App) diff --git a/packages/mobile/ios/devhub.xcodeproj/project.pbxproj b/packages/mobile/ios/devhub.xcodeproj/project.pbxproj index 181612b4..9c295a82 100644 --- a/packages/mobile/ios/devhub.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/devhub.xcodeproj/project.pbxproj @@ -38,9 +38,13 @@ 2E630C182162FC8F00CE28EA /* libSplashScreen.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E6F6939201D16D9005C02A8 /* libSplashScreen.a */; }; 2EAFF5FE1FE1AEEE000A9A11 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 486C758B88E34A52BFB2C474 /* MaterialIcons.ttf */; }; 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; + 70D960BBA2EE45CCA3743FB5 /* libRCTGoogleAnalyticsBridge.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 02455BF605234E42836FB0D9 /* libRCTGoogleAnalyticsBridge.a */; }; + 7ED0838018F5422AA40D51BB /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C004FC430E247649BC8DCB5 /* CoreData.framework */; }; 7FC9F95B44E64398A3976B78 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8888F60F6C304A58BF18E9E8 /* libRNVectorIcons.a */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; + 9394292F679C4C23ADC2055F /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 02C5ECB675A9487381E93537 /* libsqlite3.0.tbd */; }; 95F555B8BE324524957EC796 /* libRNScreens.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 922A6C7C23614601BC85B6D6 /* libRNScreens.a */; }; + A68A9F71E59A49258150955F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9ACAB5D0EEC94B78B85030F3 /* SystemConfiguration.framework */; }; ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; C2434B7ADC1743A68D380C24 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C32C469D820B4B1CB740B0D9 /* libz.tbd */; }; C2619E3179B6481FA20E5CEB /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B5DF78792708477FB2343101 /* libRNGestureHandler.a */; }; @@ -246,6 +250,13 @@ remoteGlobalIDString = 134814201AA4EA6300B7C361; remoteInfo = RNGestureHandler; }; + 2EC3352C21A4989A007C8892 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D7601ED2F8134DA4B08D6B30 /* RCTGoogleAnalyticsBridge.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = A79185C61C30694E001236A6; + remoteInfo = RCTGoogleAnalyticsBridge; + }; 2EFD3E3A218E320300AAB0D8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = B6BF65C496E44E78BF211275 /* RNVectorIcons.xcodeproj */; @@ -398,6 +409,8 @@ 00E356EE1AD99517003FC87E /* devhubTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = devhubTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* devhubTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = devhubTests.m; sourceTree = ""; }; + 02455BF605234E42836FB0D9 /* libRCTGoogleAnalyticsBridge.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTGoogleAnalyticsBridge.a; sourceTree = ""; }; + 02C5ECB675A9487381E93537 /* libsqlite3.0.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; }; 0441F9718DDD44B287FA1B68 /* libSplashScreen.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libSplashScreen.a; sourceTree = ""; }; 12697B233D884F2EB9A7D7F0 /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = BVLinearGradient.xcodeproj; path = "../../../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = ""; }; 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../../../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; @@ -416,12 +429,14 @@ 40B4448D993A4CA2ABDDA557 /* SplashScreen.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = SplashScreen.xcodeproj; path = "../../../node_modules/react-native-splash-screen/ios/SplashScreen.xcodeproj"; sourceTree = ""; }; 486C758B88E34A52BFB2C474 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; 55B8B3E654F0420CA0ED33D3 /* libSafariViewManager.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libSafariViewManager.a; sourceTree = ""; }; + 5C004FC430E247649BC8DCB5 /* CoreData.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../../../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../../../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../../../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; 8888F60F6C304A58BF18E9E8 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; 922A6C7C23614601BC85B6D6 /* libRNScreens.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNScreens.a; sourceTree = ""; }; 961B335E70A74BD9B59B6237 /* RNScreens.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNScreens.xcodeproj; path = "../../../node_modules/react-native-screens/ios/RNScreens.xcodeproj"; sourceTree = ""; }; + 9ACAB5D0EEC94B78B85030F3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../../../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; B5DF78792708477FB2343101 /* libRNGestureHandler.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNGestureHandler.a; sourceTree = ""; }; B6BF65C496E44E78BF211275 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../../../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; @@ -430,6 +445,7 @@ C32C469D820B4B1CB740B0D9 /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; CBFD7354635B4723970EDF30 /* libBugsnagReactNative.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBugsnagReactNative.a; sourceTree = ""; }; D59EE38FE98B402B99250666 /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = ""; }; + D7601ED2F8134DA4B08D6B30 /* RCTGoogleAnalyticsBridge.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTGoogleAnalyticsBridge.xcodeproj; path = "../../../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/RCTGoogleAnalyticsBridge.xcodeproj"; sourceTree = ""; }; FA6EFEAAAEB7487F9CC33B59 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -467,6 +483,10 @@ 95F555B8BE324524957EC796 /* libRNScreens.a in Frameworks */, EF14B007DB43410A84381B54 /* libBugsnagReactNative.a in Frameworks */, C2434B7ADC1743A68D380C24 /* libz.tbd in Frameworks */, + 70D960BBA2EE45CCA3743FB5 /* libRCTGoogleAnalyticsBridge.a in Frameworks */, + 7ED0838018F5422AA40D51BB /* CoreData.framework in Frameworks */, + A68A9F71E59A49258150955F /* SystemConfiguration.framework in Frameworks */, + 9394292F679C4C23ADC2055F /* libsqlite3.0.tbd in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -615,6 +635,9 @@ isa = PBXGroup; children = ( C32C469D820B4B1CB740B0D9 /* libz.tbd */, + 5C004FC430E247649BC8DCB5 /* CoreData.framework */, + 9ACAB5D0EEC94B78B85030F3 /* SystemConfiguration.framework */, + 02C5ECB675A9487381E93537 /* libsqlite3.0.tbd */, ); name = Frameworks; sourceTree = ""; @@ -662,6 +685,7 @@ 0441F9718DDD44B287FA1B68 /* libSplashScreen.a */, 922A6C7C23614601BC85B6D6 /* libRNScreens.a */, CBFD7354635B4723970EDF30 /* libBugsnagReactNative.a */, + 02455BF605234E42836FB0D9 /* libRCTGoogleAnalyticsBridge.a */, ); name = "Recovered References"; sourceTree = ""; @@ -683,6 +707,14 @@ name = Products; sourceTree = ""; }; + 2EC3352921A49899007C8892 /* Products */ = { + isa = PBXGroup; + children = ( + 2EC3352D21A4989A007C8892 /* libRCTGoogleAnalyticsBridge.a */, + ); + name = Products; + sourceTree = ""; + }; 2EFD3E3E218E320300AAB0D8 /* Products */ = { isa = PBXGroup; children = ( @@ -731,6 +763,7 @@ 40B4448D993A4CA2ABDDA557 /* SplashScreen.xcodeproj */, 961B335E70A74BD9B59B6237 /* RNScreens.xcodeproj */, BB2D1144F6514ABB9A32F81B /* BugsnagReactNative.xcodeproj */, + D7601ED2F8134DA4B08D6B30 /* RCTGoogleAnalyticsBridge.xcodeproj */, ); name = Libraries; sourceTree = ""; @@ -928,6 +961,10 @@ ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; }, + { + ProductGroup = 2EC3352921A49899007C8892 /* Products */; + ProjectRef = D7601ED2F8134DA4B08D6B30 /* RCTGoogleAnalyticsBridge.xcodeproj */; + }, { ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; @@ -1174,6 +1211,13 @@ remoteRef = 2EAFF58C1FE0C469000A9A11 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 2EC3352D21A4989A007C8892 /* libRCTGoogleAnalyticsBridge.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTGoogleAnalyticsBridge.a; + remoteRef = 2EC3352C21A4989A007C8892 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; 2EFD3E3B218E320300AAB0D8 /* libRNVectorIcons-tvOS.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; @@ -1463,6 +1507,7 @@ "$(SRCROOT)/../../../node_modules/react-native-splash-screen/ios", "$(SRCROOT)/../../../node_modules/react-native-screens/ios/**", "$(SRCROOT)/../../../node_modules/bugsnag-react-native/cocoa/**", + "$(SRCROOT)/../../../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", ); INFOPLIST_FILE = devhubTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; @@ -1471,6 +1516,7 @@ "$(inherited)", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1495,6 +1541,7 @@ "$(SRCROOT)/../../../node_modules/react-native-splash-screen/ios", "$(SRCROOT)/../../../node_modules/react-native-screens/ios/**", "$(SRCROOT)/../../../node_modules/bugsnag-react-native/cocoa/**", + "$(SRCROOT)/../../../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", ); INFOPLIST_FILE = devhubTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; @@ -1503,6 +1550,7 @@ "$(inherited)", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1532,6 +1580,7 @@ "$(SRCROOT)/../../../node_modules/react-native-splash-screen/ios", "$(SRCROOT)/../../../node_modules/react-native-screens/ios/**", "$(SRCROOT)/../../../node_modules/bugsnag-react-native/cocoa/**", + "$(SRCROOT)/../../../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", ); INFOPLIST_FILE = devhub/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1566,6 +1615,7 @@ "$(SRCROOT)/../../../node_modules/react-native-splash-screen/ios", "$(SRCROOT)/../../../node_modules/react-native-screens/ios/**", "$(SRCROOT)/../../../node_modules/bugsnag-react-native/cocoa/**", + "$(SRCROOT)/../../../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", ); INFOPLIST_FILE = devhub/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1603,6 +1653,7 @@ "$(SRCROOT)/../../../node_modules/react-native-splash-screen/ios", "$(SRCROOT)/../../../node_modules/react-native-screens/ios/**", "$(SRCROOT)/../../../node_modules/bugsnag-react-native/cocoa/**", + "$(SRCROOT)/../../../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", ); INFOPLIST_FILE = "devhub-tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1610,6 +1661,7 @@ "$(inherited)", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1644,6 +1696,7 @@ "$(SRCROOT)/../../../node_modules/react-native-splash-screen/ios", "$(SRCROOT)/../../../node_modules/react-native-screens/ios/**", "$(SRCROOT)/../../../node_modules/bugsnag-react-native/cocoa/**", + "$(SRCROOT)/../../../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", ); INFOPLIST_FILE = "devhub-tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1651,6 +1704,7 @@ "$(inherited)", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1681,6 +1735,7 @@ "$(inherited)", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.devhub-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1707,6 +1762,7 @@ "$(inherited)", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.devhub-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/packages/mobile/package.json b/packages/mobile/package.json index c0564e8b..e814bcca 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -15,6 +15,7 @@ "metro-react-native-babel-preset": "^0.49.1", "react": "16.7.0-alpha.2", "react-native": "npm:@brunolemos/react-native", + "react-native-google-analytics-bridge": "^6.1.2", "react-native-screens": "^1.0.0-alpha.16", "shared-components": "0.17.1" }, diff --git a/yarn.lock b/yarn.lock index 487f1235..486a2838 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9715,6 +9715,11 @@ react-native-gesture-handler@^1.0.9: invariant "^2.2.2" prop-types "^15.5.10" +react-native-google-analytics-bridge@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/react-native-google-analytics-bridge/-/react-native-google-analytics-bridge-6.1.2.tgz#1b901d7c06209f88baf4980d5be2ca8150c8df66" + integrity sha512-QhBvtQb6/5ao0ubgjMRkJMnsAo05UYwTMJHPesMUT6GD9W0zneAUiCC3HtV8IsHZMSZ0HJxytLhnLtQhWzN7PQ== + react-native-linear-gradient@^2.4.3: version "2.4.3" resolved "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.4.3.tgz#a7f5fe685b1a2ac788cca37828c5c9ca91357a16"