1export default { 2 'ios/ReactNativeProject/Supporting/Expo.plist': `<?xml version="1.0" encoding="UTF-8"?> 3 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 4 <plist version="1.0"> 5 <dict> 6 </dict> 7 </plist> 8 `, 9 'ios/ReactNativeProject/Info.plist': `<?xml version="1.0" encoding="UTF-8"?> 10 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 11 <plist version="1.0"> 12 <dict> 13 <key>CFBundleDevelopmentRegion</key> 14 <string>en</string> 15 <key>CFBundleDisplayName</key> 16 <string>ReactNativeProject</string> 17 <key>CFBundleExecutable</key> 18 <string>$(EXECUTABLE_NAME)</string> 19 <key>CFBundleIdentifier</key> 20 <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> 21 <key>CFBundleInfoDictionaryVersion</key> 22 <string>6.0</string> 23 <key>CFBundleName</key> 24 <string>$(PRODUCT_NAME)</string> 25 <key>CFBundlePackageType</key> 26 <string>APPL</string> 27 <key>CFBundleShortVersionString</key> 28 <string>1.0</string> 29 <key>CFBundleSignature</key> 30 <string>????</string> 31 <key>CFBundleVersion</key> 32 <string>1</string> 33 <key>LSRequiresIPhoneOS</key> 34 <true/> 35 <key>NSAppTransportSecurity</key> 36 <dict> 37 <key>NSAllowsArbitraryLoads</key> 38 <true/> 39 <key>NSExceptionDomains</key> 40 <dict> 41 <key>localhost</key> 42 <dict> 43 <key>NSExceptionAllowsInsecureHTTPLoads</key> 44 <true/> 45 </dict> 46 </dict> 47 </dict> 48 <key>NSLocationWhenInUseUsageDescription</key> 49 <string></string> 50 <key>UILaunchStoryboardName</key> 51 <string>LaunchScreen</string> 52 <key>UIRequiredDeviceCapabilities</key> 53 <array> 54 <string>armv7</string> 55 </array> 56 <key>UISupportedInterfaceOrientations</key> 57 <array> 58 <string>UIInterfaceOrientationPortrait</string> 59 <string>UIInterfaceOrientationLandscapeLeft</string> 60 <string>UIInterfaceOrientationLandscapeRight</string> 61 </array> 62 <key>UIViewControllerBasedStatusBarAppearance</key> 63 <false/> 64 </dict> 65 </plist> 66 `, 67 'ios/ReactNativeProject/AppDelegate.m': `#import "AppDelegate.h" 68 69 #import <React/RCTBridge.h> 70 #import <React/RCTBundleURLProvider.h> 71 #import <React/RCTRootView.h> 72 73 #if DEBUG 74 #import <FlipperKit/FlipperClient.h> 75 #import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h> 76 #import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h> 77 #import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h> 78 #import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h> 79 #import <FlipperKitReactPlugin/FlipperKitReactPlugin.h> 80 81 static void InitializeFlipper(UIApplication *application) { 82 FlipperClient *client = [FlipperClient sharedClient]; 83 SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; 84 [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]]; 85 [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; 86 [client addPlugin:[FlipperKitReactPlugin new]]; 87 [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]]; 88 [client start]; 89 } 90 #endif 91 92 @implementation AppDelegate 93 94 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 95 { 96 #if DEBUG 97 InitializeFlipper(application); 98 #endif 99 100 RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; 101 RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge 102 moduleName:@"ReactNativeProject" 103 initialProperties:nil]; 104 105 rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; 106 107 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 108 UIViewController *rootViewController = [UIViewController new]; 109 rootViewController.view = rootView; 110 self.window.rootViewController = rootViewController; 111 [self.window makeKeyAndVisible]; 112 return YES; 113 } 114 115 - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge 116 { 117 #if DEBUG 118 return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; 119 #else 120 return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 121 #endif 122 } 123 124 @end 125 `, 126 'ios/ReactNativeProject/Base.lproj/LaunchScreen.xib': `<?xml version="1.0" encoding="UTF-8" standalone="no"?> 127 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES"> 128 <dependencies> 129 <deployment identifier="iOS"/> 130 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/> 131 <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> 132 </dependencies> 133 <objects> 134 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> 135 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 136 <view contentMode="scaleToFill" id="iN0-l3-epB"> 137 <rect key="frame" x="0.0" y="0.0" width="480" height="480"/> 138 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 139 <subviews> 140 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye"> 141 <rect key="frame" x="20" y="439" width="441" height="21"/> 142 <fontDescription key="fontDescription" type="system" pointSize="17"/> 143 <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> 144 <nil key="highlightedColor"/> 145 </label> 146 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ReactNativeProject" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX"> 147 <rect key="frame" x="20" y="140" width="441" height="43"/> 148 <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> 149 <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> 150 <nil key="highlightedColor"/> 151 </label> 152 </subviews> 153 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> 154 <constraints> 155 <constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/> 156 <constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/> 157 <constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/> 158 <constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/> 159 <constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/> 160 <constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/> 161 </constraints> 162 <nil key="simulatedStatusBarMetrics"/> 163 <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> 164 <point key="canvasLocation" x="548" y="455"/> 165 </view> 166 </objects> 167 </document> 168 `, 169 'ios/ReactNativeProject/Images.xcassets/AppIcon.appiconset/Contents.json': `{ 170 "images" : [ 171 { 172 "idiom" : "iphone", 173 "size" : "29x29", 174 "scale" : "2x" 175 }, 176 { 177 "idiom" : "iphone", 178 "size" : "29x29", 179 "scale" : "3x" 180 }, 181 { 182 "idiom" : "iphone", 183 "size" : "40x40", 184 "scale" : "2x" 185 }, 186 { 187 "idiom" : "iphone", 188 "size" : "40x40", 189 "scale" : "3x" 190 }, 191 { 192 "idiom" : "iphone", 193 "size" : "60x60", 194 "scale" : "2x" 195 }, 196 { 197 "idiom" : "iphone", 198 "size" : "60x60", 199 "scale" : "3x" 200 } 201 ], 202 "info" : { 203 "version" : 1, 204 "author" : "xcode" 205 } 206 }`, 207 'ios/ReactNativeProject/Images.xcassets/Contents.json': `{ 208 "info" : { 209 "version" : 1, 210 "author" : "xcode" 211 } 212 } 213 `, 214 'ios/ReactNativeProject.xcodeproj/project.pbxproj': `// !$*UTF8*$! 215 { 216 archiveVersion = 1; 217 classes = { 218 }; 219 objectVersion = 46; 220 objects = { 221 222 /* Begin PBXBuildFile section */ 223 00E356F31AD99517003FC87E /* ReactNativeProjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ReactNativeProjectTests.m */; }; 224 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 225 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 226 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 227 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 228 4B370DA44606A377CF63141B /* libPods-ReactNativeProject-ReactNativeProjectTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7671A2643A0F7BE16919D473 /* libPods-ReactNativeProject-ReactNativeProjectTests.a */; }; 229 60AEE1F74BD8DB47761ECAA0 /* libPods-ReactNativeProject.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C571B07E8B81C69F6809DF07 /* libPods-ReactNativeProject.a */; }; 230 /* End PBXBuildFile section */ 231 232 /* Begin PBXContainerItemProxy section */ 233 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { 234 isa = PBXContainerItemProxy; 235 containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 236 proxyType = 1; 237 remoteGlobalIDString = 13B07F861A680F5B00A75B9A; 238 remoteInfo = ReactNativeProject; 239 }; 240 /* End PBXContainerItemProxy section */ 241 242 /* Begin PBXFileReference section */ 243 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; }; 244 00E356EE1AD99517003FC87E /* ReactNativeProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReactNativeProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 245 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 246 00E356F21AD99517003FC87E /* ReactNativeProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReactNativeProjectTests.m; sourceTree = "<group>"; }; 247 13B07F961A680F5B00A75B9A /* ReactNativeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReactNativeProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; 248 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ReactNativeProject/AppDelegate.h; sourceTree = "<group>"; }; 249 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = ReactNativeProject/AppDelegate.m; sourceTree = "<group>"; }; 250 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; }; 251 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ReactNativeProject/Images.xcassets; sourceTree = "<group>"; }; 252 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ReactNativeProject/Info.plist; sourceTree = "<group>"; }; 253 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ReactNativeProject/main.m; sourceTree = "<group>"; }; 254 40C3418ACC823FDBB8E043EE /* libPods-ReactNativeProject-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeProject-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 255 6561A35EBD3559C868AF5144 /* libPods-ReactNativeProject-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeProject-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 256 7671A2643A0F7BE16919D473 /* libPods-ReactNativeProject-ReactNativeProjectTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeProject-ReactNativeProjectTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 257 8A2AE9B83D633AB9012EE7AD /* Pods-ReactNativeProject-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeProject-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeProject-tvOSTests/Pods-ReactNativeProject-tvOSTests.release.xcconfig"; sourceTree = "<group>"; }; 258 8CCF8538F230DE9FA56C3A08 /* Pods-ReactNativeProject-ReactNativeProjectTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeProject-ReactNativeProjectTests.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeProject-ReactNativeProjectTests/Pods-ReactNativeProject-ReactNativeProjectTests.release.xcconfig"; sourceTree = "<group>"; }; 259 92F15A6F91E71246CC5491A1 /* Pods-ReactNativeProject.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeProject.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeProject/Pods-ReactNativeProject.release.xcconfig"; sourceTree = "<group>"; }; 260 AA019B1CDE25FAE085310A13 /* Pods-ReactNativeProject-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeProject-tvOS.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeProject-tvOS/Pods-ReactNativeProject-tvOS.release.xcconfig"; sourceTree = "<group>"; }; 261 C571B07E8B81C69F6809DF07 /* libPods-ReactNativeProject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeProject.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 262 CE33E6645D2F2C6E99FA9E58 /* Pods-ReactNativeProject-ReactNativeProjectTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeProject-ReactNativeProjectTests.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeProject-ReactNativeProjectTests/Pods-ReactNativeProject-ReactNativeProjectTests.debug.xcconfig"; sourceTree = "<group>"; }; 263 D6F5BBE0F6FACD4BBA3B8336 /* Pods-ReactNativeProject-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeProject-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeProject-tvOSTests/Pods-ReactNativeProject-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; }; 264 ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 265 ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; 266 F15EE64A4C9D5BC341D8E4BC /* Pods-ReactNativeProject.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeProject.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeProject/Pods-ReactNativeProject.debug.xcconfig"; sourceTree = "<group>"; }; 267 FD7429ABFA374F992514CD26 /* Pods-ReactNativeProject-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeProject-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeProject-tvOS/Pods-ReactNativeProject-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; 268 /* End PBXFileReference section */ 269 270 /* Begin PBXFrameworksBuildPhase section */ 271 00E356EB1AD99517003FC87E /* Frameworks */ = { 272 isa = PBXFrameworksBuildPhase; 273 buildActionMask = 2147483647; 274 files = ( 275 4B370DA44606A377CF63141B /* libPods-ReactNativeProject-ReactNativeProjectTests.a in Frameworks */, 276 ); 277 runOnlyForDeploymentPostprocessing = 0; 278 }; 279 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 280 isa = PBXFrameworksBuildPhase; 281 buildActionMask = 2147483647; 282 files = ( 283 60AEE1F74BD8DB47761ECAA0 /* libPods-ReactNativeProject.a in Frameworks */, 284 ); 285 runOnlyForDeploymentPostprocessing = 0; 286 }; 287 /* End PBXFrameworksBuildPhase section */ 288 289 /* Begin PBXGroup section */ 290 00E356EF1AD99517003FC87E /* ReactNativeProjectTests */ = { 291 isa = PBXGroup; 292 children = ( 293 00E356F21AD99517003FC87E /* ReactNativeProjectTests.m */, 294 00E356F01AD99517003FC87E /* Supporting Files */, 295 ); 296 path = ReactNativeProjectTests; 297 sourceTree = "<group>"; 298 }; 299 00E356F01AD99517003FC87E /* Supporting Files */ = { 300 isa = PBXGroup; 301 children = ( 302 00E356F11AD99517003FC87E /* Info.plist */, 303 ); 304 name = "Supporting Files"; 305 sourceTree = "<group>"; 306 }; 307 13B07FAE1A68108700A75B9A /* ReactNativeProject */ = { 308 isa = PBXGroup; 309 children = ( 310 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 311 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 312 13B07FB01A68108700A75B9A /* AppDelegate.m */, 313 13B07FB51A68108700A75B9A /* Images.xcassets */, 314 13B07FB61A68108700A75B9A /* Info.plist */, 315 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 316 13B07FB71A68108700A75B9A /* main.m */, 317 ); 318 name = ReactNativeProject; 319 sourceTree = "<group>"; 320 }; 321 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 322 isa = PBXGroup; 323 children = ( 324 ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 325 ED2971642150620600B7C4FE /* JavaScriptCore.framework */, 326 C571B07E8B81C69F6809DF07 /* libPods-ReactNativeProject.a */, 327 7671A2643A0F7BE16919D473 /* libPods-ReactNativeProject-ReactNativeProjectTests.a */, 328 6561A35EBD3559C868AF5144 /* libPods-ReactNativeProject-tvOS.a */, 329 40C3418ACC823FDBB8E043EE /* libPods-ReactNativeProject-tvOSTests.a */, 330 ); 331 name = Frameworks; 332 sourceTree = "<group>"; 333 }; 334 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 335 isa = PBXGroup; 336 children = ( 337 ); 338 name = Libraries; 339 sourceTree = "<group>"; 340 }; 341 83CBB9F61A601CBA00E9B192 = { 342 isa = PBXGroup; 343 children = ( 344 13B07FAE1A68108700A75B9A /* ReactNativeProject */, 345 832341AE1AAA6A7D00B99B32 /* Libraries */, 346 00E356EF1AD99517003FC87E /* ReactNativeProjectTests */, 347 83CBBA001A601CBA00E9B192 /* Products */, 348 2D16E6871FA4F8E400B85C8A /* Frameworks */, 349 9A0B45CE531ED53EAF0DA55A /* Pods */, 350 ); 351 indentWidth = 2; 352 sourceTree = "<group>"; 353 tabWidth = 2; 354 usesTabs = 0; 355 }; 356 83CBBA001A601CBA00E9B192 /* Products */ = { 357 isa = PBXGroup; 358 children = ( 359 13B07F961A680F5B00A75B9A /* ReactNativeProject.app */, 360 00E356EE1AD99517003FC87E /* ReactNativeProjectTests.xctest */, 361 ); 362 name = Products; 363 sourceTree = "<group>"; 364 }; 365 9A0B45CE531ED53EAF0DA55A /* Pods */ = { 366 isa = PBXGroup; 367 children = ( 368 F15EE64A4C9D5BC341D8E4BC /* Pods-ReactNativeProject.debug.xcconfig */, 369 92F15A6F91E71246CC5491A1 /* Pods-ReactNativeProject.release.xcconfig */, 370 CE33E6645D2F2C6E99FA9E58 /* Pods-ReactNativeProject-ReactNativeProjectTests.debug.xcconfig */, 371 8CCF8538F230DE9FA56C3A08 /* Pods-ReactNativeProject-ReactNativeProjectTests.release.xcconfig */, 372 FD7429ABFA374F992514CD26 /* Pods-ReactNativeProject-tvOS.debug.xcconfig */, 373 AA019B1CDE25FAE085310A13 /* Pods-ReactNativeProject-tvOS.release.xcconfig */, 374 D6F5BBE0F6FACD4BBA3B8336 /* Pods-ReactNativeProject-tvOSTests.debug.xcconfig */, 375 8A2AE9B83D633AB9012EE7AD /* Pods-ReactNativeProject-tvOSTests.release.xcconfig */, 376 ); 377 path = Pods; 378 sourceTree = "<group>"; 379 }; 380 /* End PBXGroup section */ 381 382 /* Begin PBXNativeTarget section */ 383 00E356ED1AD99517003FC87E /* ReactNativeProjectTests */ = { 384 isa = PBXNativeTarget; 385 buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "ReactNativeProjectTests" */; 386 buildPhases = ( 387 027ED265C5A283E45FB44549 /* [CP] Check Pods Manifest.lock */, 388 00E356EA1AD99517003FC87E /* Sources */, 389 00E356EB1AD99517003FC87E /* Frameworks */, 390 00E356EC1AD99517003FC87E /* Resources */, 391 ); 392 buildRules = ( 393 ); 394 dependencies = ( 395 00E356F51AD99517003FC87E /* PBXTargetDependency */, 396 ); 397 name = ReactNativeProjectTests; 398 productName = ReactNativeProjectTests; 399 productReference = 00E356EE1AD99517003FC87E /* ReactNativeProjectTests.xctest */; 400 productType = "com.apple.product-type.bundle.unit-test"; 401 }; 402 13B07F861A680F5B00A75B9A /* ReactNativeProject */ = { 403 isa = PBXNativeTarget; 404 buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeProject" */; 405 buildPhases = ( 406 238A755D8286A59031418306 /* [CP] Check Pods Manifest.lock */, 407 FD10A7F022414F080027D42C /* Start Packager */, 408 13B07F871A680F5B00A75B9A /* Sources */, 409 13B07F8C1A680F5B00A75B9A /* Frameworks */, 410 13B07F8E1A680F5B00A75B9A /* Resources */, 411 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 412 ); 413 buildRules = ( 414 ); 415 dependencies = ( 416 ); 417 name = ReactNativeProject; 418 productName = ReactNativeProject; 419 productReference = 13B07F961A680F5B00A75B9A /* ReactNativeProject.app */; 420 productType = "com.apple.product-type.application"; 421 }; 422 /* End PBXNativeTarget section */ 423 424 /* Begin PBXProject section */ 425 83CBB9F71A601CBA00E9B192 /* Project object */ = { 426 isa = PBXProject; 427 attributes = { 428 LastUpgradeCheck = 1130; 429 TargetAttributes = { 430 00E356ED1AD99517003FC87E = { 431 CreatedOnToolsVersion = 6.2; 432 TestTargetID = 13B07F861A680F5B00A75B9A; 433 }; 434 13B07F861A680F5B00A75B9A = { 435 LastSwiftMigration = 1120; 436 }; 437 }; 438 }; 439 buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ReactNativeProject" */; 440 compatibilityVersion = "Xcode 3.2"; 441 developmentRegion = en; 442 hasScannedForEncodings = 0; 443 knownRegions = ( 444 en, 445 Base, 446 ); 447 mainGroup = 83CBB9F61A601CBA00E9B192; 448 productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 449 projectDirPath = ""; 450 projectRoot = ""; 451 targets = ( 452 13B07F861A680F5B00A75B9A /* ReactNativeProject */, 453 00E356ED1AD99517003FC87E /* ReactNativeProjectTests */, 454 ); 455 }; 456 /* End PBXProject section */ 457 458 /* Begin PBXResourcesBuildPhase section */ 459 00E356EC1AD99517003FC87E /* Resources */ = { 460 isa = PBXResourcesBuildPhase; 461 buildActionMask = 2147483647; 462 files = ( 463 ); 464 runOnlyForDeploymentPostprocessing = 0; 465 }; 466 13B07F8E1A680F5B00A75B9A /* Resources */ = { 467 isa = PBXResourcesBuildPhase; 468 buildActionMask = 2147483647; 469 files = ( 470 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 471 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 472 ); 473 runOnlyForDeploymentPostprocessing = 0; 474 }; 475 /* End PBXResourcesBuildPhase section */ 476 477 /* Begin PBXShellScriptBuildPhase section */ 478 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 479 isa = PBXShellScriptBuildPhase; 480 buildActionMask = 2147483647; 481 files = ( 482 ); 483 inputPaths = ( 484 ); 485 name = "Bundle React Native code and images"; 486 outputPaths = ( 487 ); 488 runOnlyForDeploymentPostprocessing = 0; 489 shellPath = /bin/sh; 490 shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; 491 }; 492 027ED265C5A283E45FB44549 /* [CP] Check Pods Manifest.lock */ = { 493 isa = PBXShellScriptBuildPhase; 494 buildActionMask = 2147483647; 495 files = ( 496 ); 497 inputFileListPaths = ( 498 ); 499 inputPaths = ( 500 "\${PODS_PODFILE_DIR_PATH}/Podfile.lock", 501 "\${PODS_ROOT}/Manifest.lock", 502 ); 503 name = "[CP] Check Pods Manifest.lock"; 504 outputFileListPaths = ( 505 ); 506 outputPaths = ( 507 "$(DERIVED_FILE_DIR)/Pods-ReactNativeProject-ReactNativeProjectTests-checkManifestLockResult.txt", 508 ); 509 runOnlyForDeploymentPostprocessing = 0; 510 shellPath = /bin/sh; 511 shellScript = "diff \\"\${PODS_PODFILE_DIR_PATH}/Podfile.lock\\" \\"\${PODS_ROOT}/Manifest.lock\\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \\"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \\"SUCCESS\\" > \\"\${SCRIPT_OUTPUT_FILE_0}\\"\n"; 512 showEnvVarsInLog = 0; 513 }; 514 238A755D8286A59031418306 /* [CP] Check Pods Manifest.lock */ = { 515 isa = PBXShellScriptBuildPhase; 516 buildActionMask = 2147483647; 517 files = ( 518 ); 519 inputFileListPaths = ( 520 ); 521 inputPaths = ( 522 "\${PODS_PODFILE_DIR_PATH}/Podfile.lock", 523 "\${PODS_ROOT}/Manifest.lock", 524 ); 525 name = "[CP] Check Pods Manifest.lock"; 526 outputFileListPaths = ( 527 ); 528 outputPaths = ( 529 "$(DERIVED_FILE_DIR)/Pods-ReactNativeProject-checkManifestLockResult.txt", 530 ); 531 runOnlyForDeploymentPostprocessing = 0; 532 shellPath = /bin/sh; 533 shellScript = "diff \\"\${PODS_PODFILE_DIR_PATH}/Podfile.lock\\" \\"\${PODS_ROOT}/Manifest.lock\\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \\"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \\"SUCCESS\\" > \\"\${SCRIPT_OUTPUT_FILE_0}\\"\n"; 534 showEnvVarsInLog = 0; 535 }; 536 FD10A7F022414F080027D42C /* Start Packager */ = { 537 isa = PBXShellScriptBuildPhase; 538 buildActionMask = 2147483647; 539 files = ( 540 ); 541 inputFileListPaths = ( 542 ); 543 inputPaths = ( 544 ); 545 name = "Start Packager"; 546 outputFileListPaths = ( 547 ); 548 outputPaths = ( 549 ); 550 runOnlyForDeploymentPostprocessing = 0; 551 shellPath = /bin/sh; 552 shellScript = "export RCT_METRO_PORT=\\"\${RCT_METRO_PORT:=8081}\\"\necho \\"export RCT_METRO_PORT=\${RCT_METRO_PORT}\\" > \\"\${SRCROOT}/../node_modules/react-native/scripts/.packager.env\\"\nif [ -z \\"\${RCT_NO_LAUNCH_PACKAGER+xxx}\\" ] ; then\n if nc -w 5 -z localhost \${RCT_METRO_PORT} ; then\n if ! curl -s \\"http://localhost:\${RCT_METRO_PORT}/status\\" | grep -q \\"packager-status:running\\" ; then\n echo \\"Port \${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\"\n exit 2\n fi\n else\n open \\"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\\" || echo \\"Can't start packager automatically\\"\n fi\nfi\n"; 553 showEnvVarsInLog = 0; 554 }; 555 /* End PBXShellScriptBuildPhase section */ 556 557 /* Begin PBXSourcesBuildPhase section */ 558 00E356EA1AD99517003FC87E /* Sources */ = { 559 isa = PBXSourcesBuildPhase; 560 buildActionMask = 2147483647; 561 files = ( 562 00E356F31AD99517003FC87E /* ReactNativeProjectTests.m in Sources */, 563 ); 564 runOnlyForDeploymentPostprocessing = 0; 565 }; 566 13B07F871A680F5B00A75B9A /* Sources */ = { 567 isa = PBXSourcesBuildPhase; 568 buildActionMask = 2147483647; 569 files = ( 570 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, 571 13B07FC11A68108700A75B9A /* main.m in Sources */, 572 ); 573 runOnlyForDeploymentPostprocessing = 0; 574 }; 575 /* End PBXSourcesBuildPhase section */ 576 577 /* Begin PBXTargetDependency section */ 578 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { 579 isa = PBXTargetDependency; 580 target = 13B07F861A680F5B00A75B9A /* ReactNativeProject */; 581 targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; 582 }; 583 /* End PBXTargetDependency section */ 584 585 /* Begin PBXVariantGroup section */ 586 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { 587 isa = PBXVariantGroup; 588 children = ( 589 13B07FB21A68108700A75B9A /* Base */, 590 ); 591 name = LaunchScreen.xib; 592 path = ReactNativeProject; 593 sourceTree = "<group>"; 594 }; 595 /* End PBXVariantGroup section */ 596 597 /* Begin XCBuildConfiguration section */ 598 00E356F61AD99517003FC87E /* Debug */ = { 599 isa = XCBuildConfiguration; 600 baseConfigurationReference = CE33E6645D2F2C6E99FA9E58 /* Pods-ReactNativeProject-ReactNativeProjectTests.debug.xcconfig */; 601 buildSettings = { 602 BUNDLE_LOADER = "$(TEST_HOST)"; 603 GCC_PREPROCESSOR_DEFINITIONS = ( 604 "DEBUG=1", 605 "$(inherited)", 606 ); 607 INFOPLIST_FILE = ReactNativeProjectTests/Info.plist; 608 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 609 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 610 OTHER_LDFLAGS = ( 611 "-ObjC", 612 "-lc++", 613 "$(inherited)", 614 ); 615 PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 616 PRODUCT_NAME = "$(TARGET_NAME)"; 617 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ReactNativeProject.app/ReactNativeProject"; 618 }; 619 name = Debug; 620 }; 621 00E356F71AD99517003FC87E /* Release */ = { 622 isa = XCBuildConfiguration; 623 baseConfigurationReference = 8CCF8538F230DE9FA56C3A08 /* Pods-ReactNativeProject-ReactNativeProjectTests.release.xcconfig */; 624 buildSettings = { 625 BUNDLE_LOADER = "$(TEST_HOST)"; 626 COPY_PHASE_STRIP = NO; 627 INFOPLIST_FILE = ReactNativeProjectTests/Info.plist; 628 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 629 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 630 OTHER_LDFLAGS = ( 631 "-ObjC", 632 "-lc++", 633 "$(inherited)", 634 ); 635 PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 636 PRODUCT_NAME = "$(TARGET_NAME)"; 637 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ReactNativeProject.app/ReactNativeProject"; 638 }; 639 name = Release; 640 }; 641 13B07F941A680F5B00A75B9A /* Debug */ = { 642 isa = XCBuildConfiguration; 643 baseConfigurationReference = F15EE64A4C9D5BC341D8E4BC /* Pods-ReactNativeProject.debug.xcconfig */; 644 buildSettings = { 645 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 646 CLANG_ENABLE_MODULES = YES; 647 CURRENT_PROJECT_VERSION = 1; 648 ENABLE_BITCODE = NO; 649 GCC_PREPROCESSOR_DEFINITIONS = ( 650 "$(inherited)", 651 "FB_SONARKIT_ENABLED=1", 652 ); 653 INFOPLIST_FILE = ReactNativeProject/Info.plist; 654 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 655 OTHER_LDFLAGS = ( 656 "$(inherited)", 657 "-ObjC", 658 "-lc++", 659 ); 660 PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 661 PRODUCT_NAME = ReactNativeProject; 662 SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 663 SWIFT_VERSION = 5.0; 664 VERSIONING_SYSTEM = "apple-generic"; 665 }; 666 name = Debug; 667 }; 668 13B07F951A680F5B00A75B9A /* Release */ = { 669 isa = XCBuildConfiguration; 670 baseConfigurationReference = 92F15A6F91E71246CC5491A1 /* Pods-ReactNativeProject.release.xcconfig */; 671 buildSettings = { 672 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 673 CLANG_ENABLE_MODULES = YES; 674 CURRENT_PROJECT_VERSION = 1; 675 INFOPLIST_FILE = ReactNativeProject/Info.plist; 676 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 677 OTHER_LDFLAGS = ( 678 "$(inherited)", 679 "-ObjC", 680 "-lc++", 681 ); 682 PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 683 PRODUCT_NAME = ReactNativeProject; 684 SWIFT_VERSION = 5.0; 685 VERSIONING_SYSTEM = "apple-generic"; 686 }; 687 name = Release; 688 }; 689 83CBBA201A601CBA00E9B192 /* Debug */ = { 690 isa = XCBuildConfiguration; 691 buildSettings = { 692 ALWAYS_SEARCH_USER_PATHS = NO; 693 CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 694 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 695 CLANG_CXX_LIBRARY = "libc++"; 696 CLANG_ENABLE_MODULES = YES; 697 CLANG_ENABLE_OBJC_ARC = YES; 698 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 699 CLANG_WARN_BOOL_CONVERSION = YES; 700 CLANG_WARN_COMMA = YES; 701 CLANG_WARN_CONSTANT_CONVERSION = YES; 702 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 703 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 704 CLANG_WARN_EMPTY_BODY = YES; 705 CLANG_WARN_ENUM_CONVERSION = YES; 706 CLANG_WARN_INFINITE_RECURSION = YES; 707 CLANG_WARN_INT_CONVERSION = YES; 708 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 709 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 710 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 711 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 712 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 713 CLANG_WARN_STRICT_PROTOTYPES = YES; 714 CLANG_WARN_SUSPICIOUS_MOVE = YES; 715 CLANG_WARN_UNREACHABLE_CODE = YES; 716 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 717 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 718 COPY_PHASE_STRIP = NO; 719 ENABLE_STRICT_OBJC_MSGSEND = YES; 720 ENABLE_TESTABILITY = YES; 721 GCC_C_LANGUAGE_STANDARD = gnu99; 722 GCC_DYNAMIC_NO_PIC = NO; 723 GCC_NO_COMMON_BLOCKS = YES; 724 GCC_OPTIMIZATION_LEVEL = 0; 725 GCC_PREPROCESSOR_DEFINITIONS = ( 726 "DEBUG=1", 727 "$(inherited)", 728 ); 729 GCC_SYMBOLS_PRIVATE_EXTERN = NO; 730 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 731 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 732 GCC_WARN_UNDECLARED_SELECTOR = YES; 733 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 734 GCC_WARN_UNUSED_FUNCTION = YES; 735 GCC_WARN_UNUSED_VARIABLE = YES; 736 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 737 LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; 738 LIBRARY_SEARCH_PATHS = ( 739 "\\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\\"", 740 "\\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\\"", 741 "\\"$(inherited)\\"", 742 ); 743 MTL_ENABLE_DEBUG_INFO = YES; 744 ONLY_ACTIVE_ARCH = YES; 745 SDKROOT = iphoneos; 746 }; 747 name = Debug; 748 }; 749 83CBBA211A601CBA00E9B192 /* Release */ = { 750 isa = XCBuildConfiguration; 751 buildSettings = { 752 ALWAYS_SEARCH_USER_PATHS = NO; 753 CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 754 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 755 CLANG_CXX_LIBRARY = "libc++"; 756 CLANG_ENABLE_MODULES = YES; 757 CLANG_ENABLE_OBJC_ARC = YES; 758 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 759 CLANG_WARN_BOOL_CONVERSION = YES; 760 CLANG_WARN_COMMA = YES; 761 CLANG_WARN_CONSTANT_CONVERSION = YES; 762 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 763 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 764 CLANG_WARN_EMPTY_BODY = YES; 765 CLANG_WARN_ENUM_CONVERSION = YES; 766 CLANG_WARN_INFINITE_RECURSION = YES; 767 CLANG_WARN_INT_CONVERSION = YES; 768 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 769 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 770 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 771 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 772 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 773 CLANG_WARN_STRICT_PROTOTYPES = YES; 774 CLANG_WARN_SUSPICIOUS_MOVE = YES; 775 CLANG_WARN_UNREACHABLE_CODE = YES; 776 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 777 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 778 COPY_PHASE_STRIP = YES; 779 ENABLE_NS_ASSERTIONS = NO; 780 ENABLE_STRICT_OBJC_MSGSEND = YES; 781 GCC_C_LANGUAGE_STANDARD = gnu99; 782 GCC_NO_COMMON_BLOCKS = YES; 783 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 784 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 785 GCC_WARN_UNDECLARED_SELECTOR = YES; 786 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 787 GCC_WARN_UNUSED_FUNCTION = YES; 788 GCC_WARN_UNUSED_VARIABLE = YES; 789 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 790 LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; 791 LIBRARY_SEARCH_PATHS = ( 792 "\\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\\"", 793 "\\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\\"", 794 "\\"$(inherited)\\"", 795 ); 796 MTL_ENABLE_DEBUG_INFO = NO; 797 SDKROOT = iphoneos; 798 VALIDATE_PRODUCT = YES; 799 }; 800 name = Release; 801 }; 802 /* End XCBuildConfiguration section */ 803 804 /* Begin XCConfigurationList section */ 805 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "ReactNativeProjectTests" */ = { 806 isa = XCConfigurationList; 807 buildConfigurations = ( 808 00E356F61AD99517003FC87E /* Debug */, 809 00E356F71AD99517003FC87E /* Release */, 810 ); 811 defaultConfigurationIsVisible = 0; 812 defaultConfigurationName = Release; 813 }; 814 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeProject" */ = { 815 isa = XCConfigurationList; 816 buildConfigurations = ( 817 13B07F941A680F5B00A75B9A /* Debug */, 818 13B07F951A680F5B00A75B9A /* Release */, 819 ); 820 defaultConfigurationIsVisible = 0; 821 defaultConfigurationName = Release; 822 }; 823 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ReactNativeProject" */ = { 824 isa = XCConfigurationList; 825 buildConfigurations = ( 826 83CBBA201A601CBA00E9B192 /* Debug */, 827 83CBBA211A601CBA00E9B192 /* Release */, 828 ); 829 defaultConfigurationIsVisible = 0; 830 defaultConfigurationName = Release; 831 }; 832 /* End XCConfigurationList section */ 833 }; 834 rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 835 } 836 `, 837 // Android 838 'android/app/src/main/java/com/reactnativeproject/MainActivity.java': `package com.reactnativeproject; 839 840import com.facebook.react.ReactActivity; 841 842public class MainActivity extends ReactActivity { 843 /** 844 * Returns the name of the main component registered from JavaScript. This is used to schedule 845 * rendering of the component. 846 */ 847 @Override 848 protected String getMainComponentName() { 849 return "react-native-project"; 850 } 851} 852`, 853 'android/app/BUCK': `# To learn about Buck see [Docs](https://buckbuild.com/). 854# To run your application with Buck: 855# - install Buck 856# - \`npm start\` - to start the packager 857# - \`cd android\` 858# - \`keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"\` 859# - \`./gradlew :app:copyDownloadableDepsToLibs\` - make all Gradle compile dependencies available to Buck 860# - \`buck install -r android/app\` - compile, install and run application 861# 862 863load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") 864 865lib_deps = [] 866 867create_aar_targets(glob(["libs/*.aar"])) 868 869create_jar_targets(glob(["libs/*.jar"])) 870 871android_library( 872 name = "all-libs", 873 exported_deps = lib_deps, 874) 875 876android_library( 877 name = "app-code", 878 srcs = glob([ 879 "src/main/java/**/*.java", 880 ]), 881 deps = [ 882 ":all-libs", 883 ":build_config", 884 ":res", 885 ], 886) 887 888android_build_config( 889 name = "build_config", 890 package = "com.reactnativeproject", 891) 892 893android_resource( 894 name = "res", 895 package = "com.reactnativeproject", 896 res = "src/main/res", 897) 898 899android_binary( 900 name = "app", 901 keystore = "//android/keystores:debug", 902 manifest = "src/main/AndroidManifest.xml", 903 package_type = "debug", 904 deps = [ 905 ":app-code", 906 ], 907)`, 908 'android/app/src/debug/java/com/reactnativeproject/ReactNativeFlipper.java': `/** 909* Copyright (c) Facebook, Inc. and its affiliates. 910* 911* <p>This source code is licensed under the MIT license found in the LICENSE file in the root 912* directory of this source tree. 913*/ 914package com.reactnativeproject; 915 916import android.content.Context; 917import com.facebook.flipper.android.AndroidFlipperClient; 918import com.facebook.flipper.android.utils.FlipperUtils; 919import com.facebook.flipper.core.FlipperClient; 920import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; 921import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; 922import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; 923import com.facebook.flipper.plugins.inspector.DescriptorMapping; 924import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; 925import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; 926import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; 927import com.facebook.flipper.plugins.react.ReactFlipperPlugin; 928import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; 929import com.facebook.react.ReactInstanceManager; 930import com.facebook.react.bridge.ReactContext; 931import com.facebook.react.modules.network.NetworkingModule; 932import okhttp3.OkHttpClient; 933 934public class ReactNativeFlipper { 935 public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { 936 if (FlipperUtils.shouldEnableFlipper(context)) { 937 final FlipperClient client = AndroidFlipperClient.getInstance(context); 938 client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); 939 client.addPlugin(new ReactFlipperPlugin()); 940 client.addPlugin(new DatabasesFlipperPlugin(context)); 941 client.addPlugin(new SharedPreferencesFlipperPlugin(context)); 942 client.addPlugin(CrashReporterPlugin.getInstance()); 943 NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); 944 NetworkingModule.setCustomClientBuilder( 945 new NetworkingModule.CustomClientBuilder() { 946 @Override 947 public void apply(OkHttpClient.Builder builder) { 948 builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); 949 } 950 }); 951 client.addPlugin(networkFlipperPlugin); 952 client.start(); 953 // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized 954 // Hence we run if after all native modules have been initialized 955 ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); 956 if (reactContext == null) { 957 reactInstanceManager.addReactInstanceEventListener( 958 new ReactInstanceManager.ReactInstanceEventListener() { 959 @Override 960 public void onReactContextInitialized(ReactContext reactContext) { 961 reactInstanceManager.removeReactInstanceEventListener(this); 962 reactContext.runOnNativeModulesQueueThread( 963 new Runnable() { 964 @Override 965 public void run() { 966 client.addPlugin(new FrescoFlipperPlugin()); 967 } 968 }); 969 } 970 }); 971 } else { 972 client.addPlugin(new FrescoFlipperPlugin()); 973 } 974 } 975 } 976}`, 977 'android/app/src/main/java/com/reactnativeproject/MainApplication.java': `package com.reactnativeproject; 978 979 import android.app.Application; 980 import android.content.Context; 981 import android.net.Uri; 982 983 import com.facebook.react.PackageList; 984 import com.facebook.react.ReactApplication; 985 import com.facebook.react.ReactInstanceManager; 986 import com.facebook.react.ReactNativeHost; 987 import com.facebook.react.ReactPackage; 988 import com.facebook.react.shell.MainReactPackage; 989 import com.facebook.soloader.SoLoader; 990 import com.bacon.mydevicefamilyproject.generated.BasePackageList; 991 992 import org.unimodules.adapters.react.ReactAdapterPackage; 993 import org.unimodules.adapters.react.ModuleRegistryAdapter; 994 import org.unimodules.adapters.react.ReactModuleRegistryProvider; 995 import org.unimodules.core.interfaces.Package; 996 import org.unimodules.core.interfaces.SingletonModule; 997 import expo.modules.constants.ConstantsPackage; 998 import expo.modules.permissions.PermissionsPackage; 999 import expo.modules.filesystem.FileSystemPackage; 1000 import expo.modules.updates.UpdatesController; 1001 1002 import java.lang.reflect.InvocationTargetException; 1003 import java.util.Arrays; 1004 import java.util.List; 1005 import javax.annotation.Nullable; 1006 1007 public class MainApplication extends Application implements ReactApplication { 1008 private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider( 1009 new BasePackageList().getPackageList() 1010 ); 1011 1012 private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { 1013 @Override 1014 public boolean getUseDeveloperSupport() { 1015 return BuildConfig.DEBUG; 1016 } 1017 1018 @Override 1019 protected List<ReactPackage> getPackages() { 1020 List<ReactPackage> packages = new PackageList(this).getPackages(); 1021 packages.add(new ModuleRegistryAdapter(mModuleRegistryProvider)); 1022 return packages; 1023 } 1024 1025 @Override 1026 protected String getJSMainModuleName() { 1027 return "index"; 1028 } 1029 1030 @Override 1031 protected @Nullable String getJSBundleFile() { 1032 if (BuildConfig.DEBUG) { 1033 return super.getJSBundleFile(); 1034 } else { 1035 return UpdatesController.getInstance().getLaunchAssetFile(); 1036 } 1037 } 1038 1039 @Override 1040 protected @Nullable String getBundleAssetName() { 1041 if (BuildConfig.DEBUG) { 1042 return super.getBundleAssetName(); 1043 } else { 1044 return UpdatesController.getInstance().getBundleAssetName(); 1045 } 1046 } 1047 }; 1048 1049 @Override 1050 public ReactNativeHost getReactNativeHost() { 1051 return mReactNativeHost; 1052 } 1053 1054 @Override 1055 public void onCreate() { 1056 super.onCreate(); 1057 SoLoader.init(this, /* native exopackage */ false); 1058 1059 if (!BuildConfig.DEBUG) { 1060 UpdatesController.initialize(this); 1061 } 1062 1063 initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); 1064 } 1065 1066 /** 1067 * Loads Flipper in React Native templates. Call this in the onCreate method with something like 1068 * initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); 1069 * 1070 * @param context 1071 * @param reactInstanceManager 1072 */ 1073 private static void initializeFlipper( 1074 Context context, ReactInstanceManager reactInstanceManager) { 1075 if (BuildConfig.DEBUG) { 1076 try { 1077 /* 1078 We use reflection here to pick up the class that initializes Flipper, 1079 since Flipper library is not available in release mode 1080 */ 1081 Class<?> aClass = Class.forName("com.rndiffapp.ReactNativeFlipper"); 1082 aClass 1083 .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) 1084 .invoke(null, context, reactInstanceManager); 1085 } catch (ClassNotFoundException e) { 1086 e.printStackTrace(); 1087 } catch (NoSuchMethodException e) { 1088 e.printStackTrace(); 1089 } catch (IllegalAccessException e) { 1090 e.printStackTrace(); 1091 } catch (InvocationTargetException e) { 1092 e.printStackTrace(); 1093 } 1094 } 1095 } 1096 } 1097`, 1098 'android/app/src/main/AndroidManifest.xml': `<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.reactnativeproject"> 1099 1100 <uses-permission android:name="android.permission.INTERNET" /> 1101 1102 <queries> 1103 <!-- Support checking for http(s) links via the Linking API --> 1104 <intent> 1105 <action android:name="android.intent.action.VIEW" /> 1106 <category android:name="android.intent.category.BROWSABLE" /> 1107 <data android:scheme="https" /> 1108 </intent> 1109 </queries> 1110 1111 <application 1112 android:name=".MainApplication" 1113 android:label="@string/app_name" 1114 android:allowBackup="false" 1115 android:theme="@style/AppTheme"> 1116 <activity 1117 android:name=".MainActivity" 1118 android:label="@string/app_name" 1119 android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" 1120 android:launchMode="singleTask" 1121 android:windowSoftInputMode="adjustResize"> 1122 <intent-filter> 1123 <action android:name="android.intent.action.MAIN" /> 1124 <category android:name="android.intent.category.LAUNCHER" /> 1125 </intent-filter> 1126 </activity> 1127 <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> 1128 </application> 1129 1130</manifest> 1131`, 1132 'android/app/src/main/res/values/styles.xml': `<?xml version="1.0" encoding="utf-8"?> 1133<resources> 1134 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 1135 <!-- Customize your theme here. --> 1136 <item name="android:textColor">#000000</item> 1137 </style> 1138</resources> 1139`, 1140 'android/gradle.properties': `# Project-wide Gradle settings. 1141 1142 # IDE (e.g. Android Studio) users: 1143 # Gradle settings configured through the IDE *will override* 1144 # any settings specified in this file. 1145 1146 # For more details on how to configure your build environment visit 1147 # http://www.gradle.org/docs/current/userguide/build_environment.html 1148 1149 # Specifies the JVM arguments used for the daemon process. 1150 # The setting is particularly useful for tweaking memory settings. 1151 # Default value: -Xmx10248m -XX:MaxPermSize=256m 1152 # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 1153 1154 # When configured, Gradle will run in incubating parallel mode. 1155 # This option should only be used with decoupled projects. More details, visit 1156 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 1157 # org.gradle.parallel=true 1158 1159 # AndroidX package structure to make it clearer which packages are bundled with the 1160 # Android operating system, and which are packaged with your app's APK 1161 # https://developer.android.com/topic/libraries/support-library/androidx-rn 1162 android.useAndroidX=true 1163 1164 # Automatically convert third-party libraries to use AndroidX 1165 android.enableJetifier=true 1166 1167 # Version of flipper SDK to use with React Native 1168 FLIPPER_VERSION=0.54.0 1169 `, 1170 1171 'android/settings.gradle': `rootProject.name = 'HelloWorld' 1172 1173apply from: '../node_modules/react-native-unimodules/gradle.groovy' 1174includeUnimodulesProjects() 1175 1176apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); 1177applyNativeModulesSettingsGradle(settings) 1178 1179include ':app' 1180`, 1181 'android/build.gradle': `// Top-level build file where you can add configuration options common to all sub-projects/modules. 1182 1183 buildscript { 1184 ext { 1185 buildToolsVersion = "29.0.2" 1186 minSdkVersion = 21 1187 compileSdkVersion = 29 1188 targetSdkVersion = 29 1189 } 1190 repositories { 1191 google() 1192 jcenter() 1193 } 1194 dependencies { 1195 classpath("com.android.tools.build:gradle:3.5.3") 1196 1197 // NOTE: Do not place your application dependencies here; they belong 1198 // in the individual module build.gradle files 1199 } 1200 } 1201 1202 allprojects { 1203 repositories { 1204 mavenLocal() 1205 maven { 1206 // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 1207 url("$rootDir/../node_modules/react-native/android") 1208 } 1209 maven { 1210 // Android JSC is installed from npm 1211 url("$rootDir/../node_modules/jsc-android/dist") 1212 } 1213 1214 google() 1215 jcenter() 1216 maven { url 'https://www.jitpack.io' } 1217 } 1218 }`, 1219 'android/app/build.gradle': `apply plugin: "com.android.application" 1220 1221 import com.android.build.OutputFile 1222 1223 project.ext.react = [ 1224 enableHermes: false 1225 ] 1226 1227 apply from: '../../node_modules/react-native-unimodules/gradle.groovy' 1228 apply from: "../../node_modules/react-native/react.gradle" 1229 apply from: "../../node_modules/expo-updates/scripts/create-manifest-android.gradle" 1230 1231 def enableSeparateBuildPerCPUArchitecture = false 1232 def enableProguardInReleaseBuilds = false 1233 def jscFlavor = 'org.webkit:android-jsc:+' 1234 def enableHermes = project.ext.react.get("enableHermes", false); 1235 1236 android { 1237 compileSdkVersion rootProject.ext.compileSdkVersion 1238 1239 compileOptions { 1240 sourceCompatibility JavaVersion.VERSION_1_8 1241 targetCompatibility JavaVersion.VERSION_1_8 1242 } 1243 1244 defaultConfig { 1245 applicationId 'com.bacon.mydevicefamilyproject' 1246 minSdkVersion rootProject.ext.minSdkVersion 1247 targetSdkVersion rootProject.ext.targetSdkVersion 1248 versionCode 1 1249 versionName "1.0.0" 1250 } 1251 splits { 1252 abi { 1253 reset() 1254 enable enableSeparateBuildPerCPUArchitecture 1255 universalApk false // If true, also generate a universal APK 1256 include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" 1257 } 1258 } 1259 signingConfigs { 1260 debug { 1261 storeFile file('debug.keystore') 1262 storePassword 'android' 1263 keyAlias 'androiddebugkey' 1264 keyPassword 'android' 1265 } 1266 } 1267 buildTypes { 1268 debug { 1269 signingConfig signingConfigs.debug 1270 } 1271 release { 1272 signingConfig signingConfigs.debug 1273 minifyEnabled enableProguardInReleaseBuilds 1274 proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 1275 } 1276 } 1277 applicationVariants.all { variant -> 1278 variant.outputs.each { output -> 1279 def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] 1280 def abi = output.getFilter(OutputFile.ABI) 1281 if (abi != null) { 1282 output.versionCodeOverride = 1283 versionCodes.get(abi) * 1048576 + defaultConfig.versionCode 1284 } 1285 1286 } 1287 } 1288 } 1289 1290 dependencies { 1291 implementation fileTree(dir: "libs", include: ["*.jar"]) 1292 implementation "com.facebook.react:react-native:+" // From node_modules 1293 implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" 1294 debugImplementation("com.facebook.flipper:flipper:\${FLIPPER_VERSION}") { 1295 exclude group:'com.facebook.fbjni' 1296 } 1297 debugImplementation("com.facebook.flipper:flipper-network-plugin:\${FLIPPER_VERSION}") { 1298 exclude group:'com.facebook.flipper' 1299 exclude group:'com.squareup.okhttp3', module:'okhttp' 1300 } 1301 debugImplementation("com.facebook.flipper:flipper-fresco-plugin:\${FLIPPER_VERSION}") { 1302 exclude group:'com.facebook.flipper' 1303 } 1304 addUnimodulesDependencies() 1305 1306 if (enableHermes) { 1307 def hermesPath = "../../node_modules/hermes-engine/android/"; 1308 debugImplementation files(hermesPath + "hermes-debug.aar") 1309 releaseImplementation files(hermesPath + "hermes-release.aar") 1310 } else { 1311 implementation jscFlavor 1312 } 1313 } 1314 task copyDownloadableDepsToLibs(type: Copy) { 1315 from configurations.compile 1316 into 'libs' 1317 } 1318 apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)`, 1319 1320 'android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h': `\ 1321 #include <memory> 1322 #include <string> 1323 1324 #include <ReactCommon/TurboModuleManagerDelegate.h> 1325 #include <fbjni/fbjni.h> 1326 1327 namespace facebook { 1328 namespace react { 1329 1330 class MainApplicationTurboModuleManagerDelegate 1331 : public jni::HybridClass< 1332 MainApplicationTurboModuleManagerDelegate, 1333 TurboModuleManagerDelegate> { 1334 public: 1335 // Adapt it to the package you used for your Java class. 1336 static constexpr auto kJavaDescriptor = 1337 "Lcom/reactnativeproject/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; 1338 1339 static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject>); 1340 1341 static void registerNatives(); 1342 1343 std::shared_ptr<TurboModule> getTurboModule( 1344 const std::string name, 1345 const std::shared_ptr<CallInvoker> jsInvoker) override; 1346 std::shared_ptr<TurboModule> getTurboModule( 1347 const std::string name, 1348 const JavaTurboModule::InitParams ¶ms) override; 1349 1350 /** 1351 * Test-only method. Allows user to verify whether a TurboModule can be 1352 * created by instances of this class. 1353 */ 1354 bool canCreateTurboModule(std::string name); 1355 }; 1356 1357 } // namespace react 1358 } // namespace facebook 1359`, 1360}; 1361