├── UserActivity.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── philipheinser.xcuserdatad │ │ └── UserInterfaceState.xcuserstate ├── xcuserdata │ └── philipheinser.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── UserActivity.xcscheme └── project.pbxproj ├── UserActivity.h ├── index.android.js ├── package.json ├── UserActivity.podspec ├── LICENSE ├── index.ios.js ├── README.md └── UserActivity.m /UserActivity.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /UserActivity.h: -------------------------------------------------------------------------------- 1 | #import "RCTBridgeModule.h" 2 | #import 3 | 4 | @interface UserActivity : NSObject 5 | 6 | @property NSUserActivity *lastUserActivity; 7 | @property NSMutableArray* lastUserActivities; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /UserActivity.xcodeproj/project.xcworkspace/xcuserdata/philipheinser.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipheinser/react-native-user-activity/HEAD/UserActivity.xcodeproj/project.xcworkspace/xcuserdata/philipheinser.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /index.android.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Stub of UserActivity for Android. 3 | * 4 | * @providesModule UserActivity 5 | * @flow 6 | */ 7 | 'use strict'; 8 | 9 | var UserActivity = { 10 | createActivity: function () { 11 | console.log('Not yet implemented for Android.'); 12 | }, 13 | }; 14 | 15 | export default UserActivity; 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-user-activity", 3 | "version": "0.1.14", 4 | "author": "Philip Heinser", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/philipheinser/react-native-user-activity" 8 | }, 9 | "bugs": { 10 | "url": "https://github.com/philipheinser/react-native-user-activity/issues" 11 | }, 12 | "nativePackage": true, 13 | "keywords": [ 14 | "react-native", 15 | "react", 16 | "nsuseractivity", 17 | "activity", 18 | "ios" 19 | ], 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /UserActivity.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "UserActivity" 3 | s.version = "0.1.13" 4 | s.source_files = "UserActivity.h", "UserActivity.m" 5 | s.author = { "Philip Heinser" => "philipheinser@me.com" } 6 | s.ios.deployment_target = '8.0' 7 | s.license = "MIT" 8 | s.summary = "NSUserActivity for React Native" 9 | s.homepage = "https://github.com/philipheinser/react-native-user-activity" 10 | s.source = { :git => "https://github.com/philipheinser/react-native-user-activity.git" } 11 | 12 | s.dependency 'React' 13 | end 14 | -------------------------------------------------------------------------------- /UserActivity.xcodeproj/xcuserdata/philipheinser.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | UserActivity.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 58B511DA1A9E6C8500147676 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Philip Heinser 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /index.ios.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @providesModule UserActivity 3 | * @flow 4 | */ 5 | 'use strict'; 6 | import { 7 | NativeModules, 8 | } from 'react-native'; 9 | 10 | var NativeUserActivity = NativeModules.UserActivity; 11 | 12 | /** 13 | * High-level docs for the UserActivity iOS API can be written here. 14 | */ 15 | 16 | type ActivityOptions = { 17 | activityType: string, 18 | eligibleForSearch: boolean, 19 | eligibleForPublicIndexing: boolean, 20 | eligibleForHandoff: boolean, 21 | title: string, 22 | webpageURL: string, 23 | userInfo: any, 24 | locationInfo: any, 25 | supportsNavigation: boolean, 26 | supportsPhoneCall: boolean, 27 | phoneNumber: string, 28 | description: string, 29 | thumbnailURL: string, 30 | identifier: string 31 | }; 32 | 33 | var UserActivity = { 34 | createActivity: function (options: ActivityOptions) { 35 | NativeUserActivity.createActivity( 36 | options.activityType, 37 | options.eligibleForSearch, 38 | options.eligibleForPublicIndexing, 39 | options.eligibleForHandoff, 40 | options.title, 41 | options.webpageURL, 42 | options.userInfo, 43 | options.locationInfo, 44 | options.supportsNavigation || false, 45 | options.supportsPhoneCall || false, 46 | options.phoneNumber, 47 | options.description, 48 | options.thumbnailURL, 49 | options.identifier 50 | ); 51 | }, 52 | }; 53 | 54 | export default UserActivity; 55 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native-user-activity 2 | 3 | Setup iOS `NSUserActivity` object. 4 | 5 | # Setup 6 | 7 | Install module locally. 8 | 9 | ```sh 10 | $ npm install --save react-native-user-activity 11 | ``` 12 | 13 | Link using react-native [cli](https://www.npmjs.com/package/react-native-cli). 14 | 15 | ```sh 16 | $ react-native link react-native-user-activity 17 | ``` 18 | 19 | Declare the activity types that your app supports by including the [NSUserActivityTypes](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW28) key in its Info.plist file. 20 | 21 | 22 | # Sample usage 23 | 24 | ```js 25 | import UserActivity from 'react-native-user-activity'; 26 | 27 | ... 28 | 29 | componentDidMount() { 30 | UserActivity.createActivity({ 31 | activityType: 'com.sample.proactive', 32 | webpageURL: 'http://...', 33 | eligibleForSearch: true, 34 | eligibleForPublicIndexing: false, 35 | eligibleForHandoff: false, 36 | title: 'Random Place', 37 | userInfo: {}, 38 | locationInfo: { 39 | lat: 39.637737, 40 | lon: 22.417769 41 | }, 42 | supportsNavigation: true, 43 | supportsPhoneCall: true, 44 | phoneNumber: '...', 45 | description: 'sample description that is not necessary', 46 | thumbnailURL: 'thumbnail url that is not necessary', 47 | identifier: 'identifier that is not necessary' 48 | }); 49 | } 50 | ``` -------------------------------------------------------------------------------- /UserActivity.xcodeproj/xcuserdata/philipheinser.xcuserdatad/xcschemes/UserActivity.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /UserActivity.m: -------------------------------------------------------------------------------- 1 | #import "UserActivity.h" 2 | @import CoreSpotlight; 3 | @import MapKit; 4 | 5 | @implementation UserActivity 6 | 7 | RCT_EXPORT_MODULE() 8 | 9 | RCT_EXPORT_METHOD( 10 | createActivity:(NSString *)activityType 11 | eligibleForSearch:(BOOL)eligibleForSearch 12 | eligibleForPublicIndexing:(BOOL)eligibleForPublicIndexing 13 | eligibleForHandoff:(BOOL)eligibleForHandoff 14 | title:(NSString *)title 15 | webpageURL:(NSString *)webpageURL 16 | userInfo:(NSDictionary *)userInfo 17 | locationInfo:(NSDictionary *)locationInfo 18 | supportsNavigation:(BOOL)supportsNavigation 19 | supportsPhoneCall:(BOOL)supportsPhoneCall 20 | phoneNumber:(NSString *)phoneNumber 21 | description:(NSString *)description 22 | thumbnailURL:(NSString *)thumbnailURL 23 | identifier:(NSString *)identifier 24 | ) 25 | { 26 | // Your implementation here 27 | if([NSUserActivity class] && [NSUserActivity instancesRespondToSelector:@selector(setEligibleForSearch:)]){ 28 | 29 | if(!self.lastUserActivities) { 30 | self.lastUserActivities = [@[] mutableCopy]; 31 | } 32 | 33 | NSUserActivity* activity = [[NSUserActivity alloc] initWithActivityType:activityType]; 34 | 35 | activity.eligibleForSearch = eligibleForSearch; 36 | activity.eligibleForPublicIndexing = eligibleForPublicIndexing; 37 | activity.eligibleForHandoff = eligibleForHandoff; 38 | 39 | activity.title = title; 40 | activity.webpageURL = [NSURL URLWithString:webpageURL]; 41 | activity.userInfo = userInfo; 42 | 43 | activity.keywords = [NSSet setWithArray:@[title]]; 44 | 45 | if ([CSSearchableItemAttributeSet class]) { 46 | CSSearchableItemAttributeSet *contentSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:activityType]; 47 | contentSet.title = title; 48 | contentSet.URL = [NSURL URLWithString:webpageURL]; 49 | if (description) { 50 | contentSet.contentDescription = description; 51 | } 52 | if (thumbnailURL) { 53 | contentSet.thumbnailURL = [NSURL fileURLWithPath:thumbnailURL]; 54 | } 55 | if (identifier) { 56 | contentSet.identifier = identifier; 57 | } 58 | if (phoneNumber) { 59 | contentSet.phoneNumbers = @[phoneNumber]; 60 | } 61 | contentSet.supportsNavigation = @(supportsNavigation); 62 | contentSet.supportsPhoneCall = @(supportsPhoneCall); 63 | activity.contentAttributeSet = contentSet; 64 | } 65 | 66 | #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 67 | if ([activity respondsToSelector:@selector(mapItem)] && [locationInfo objectForKey:@"lat"] && [locationInfo objectForKey:@"lon"]) { 68 | MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake([locationInfo[@"lat"] doubleValue], [locationInfo[@"lon"] doubleValue])]; 69 | MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark]; 70 | mapItem.name = title; 71 | mapItem.url = [NSURL URLWithString:webpageURL]; 72 | activity.mapItem = mapItem; 73 | } 74 | #endif 75 | 76 | self.lastUserActivity = activity; 77 | [self.lastUserActivities addObject:activity]; 78 | [activity becomeCurrent]; 79 | 80 | if (self.lastUserActivities.count > 5) { 81 | [self.lastUserActivities removeObjectAtIndex:0]; 82 | } 83 | } 84 | } 85 | 86 | @end 87 | -------------------------------------------------------------------------------- /UserActivity.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 13BE3DEE1AC21097009241FE /* UserActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 13BE3DED1AC21097009241FE /* UserActivity.m */; }; 11 | C7E2388E1CDD15E7006F909F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7E2388D1CDD15E7006F909F /* Foundation.framework */; }; 12 | /* End PBXBuildFile section */ 13 | 14 | /* Begin PBXCopyFilesBuildPhase section */ 15 | 58B511D91A9E6C8500147676 /* CopyFiles */ = { 16 | isa = PBXCopyFilesBuildPhase; 17 | buildActionMask = 2147483647; 18 | dstPath = "include/$(PRODUCT_NAME)"; 19 | dstSubfolderSpec = 16; 20 | files = ( 21 | ); 22 | runOnlyForDeploymentPostprocessing = 0; 23 | }; 24 | /* End PBXCopyFilesBuildPhase section */ 25 | 26 | /* Begin PBXFileReference section */ 27 | 134814201AA4EA6300B7C361 /* libUserActivity.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libUserActivity.a; sourceTree = BUILT_PRODUCTS_DIR; }; 28 | 13BE3DEC1AC21097009241FE /* UserActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserActivity.h; sourceTree = ""; }; 29 | 13BE3DED1AC21097009241FE /* UserActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserActivity.m; sourceTree = ""; }; 30 | C7E2388D1CDD15E7006F909F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 31 | /* End PBXFileReference section */ 32 | 33 | /* Begin PBXFrameworksBuildPhase section */ 34 | 58B511D81A9E6C8500147676 /* Frameworks */ = { 35 | isa = PBXFrameworksBuildPhase; 36 | buildActionMask = 2147483647; 37 | files = ( 38 | C7E2388E1CDD15E7006F909F /* Foundation.framework in Frameworks */, 39 | ); 40 | runOnlyForDeploymentPostprocessing = 0; 41 | }; 42 | /* End PBXFrameworksBuildPhase section */ 43 | 44 | /* Begin PBXGroup section */ 45 | 134814211AA4EA7D00B7C361 /* Products */ = { 46 | isa = PBXGroup; 47 | children = ( 48 | 134814201AA4EA6300B7C361 /* libUserActivity.a */, 49 | ); 50 | name = Products; 51 | sourceTree = ""; 52 | }; 53 | 58B511D21A9E6C8500147676 = { 54 | isa = PBXGroup; 55 | children = ( 56 | C7E2388D1CDD15E7006F909F /* Foundation.framework */, 57 | 13BE3DEC1AC21097009241FE /* UserActivity.h */, 58 | 13BE3DED1AC21097009241FE /* UserActivity.m */, 59 | 134814211AA4EA7D00B7C361 /* Products */, 60 | ); 61 | sourceTree = ""; 62 | }; 63 | /* End PBXGroup section */ 64 | 65 | /* Begin PBXNativeTarget section */ 66 | 58B511DA1A9E6C8500147676 /* UserActivity */ = { 67 | isa = PBXNativeTarget; 68 | buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "UserActivity" */; 69 | buildPhases = ( 70 | 58B511D71A9E6C8500147676 /* Sources */, 71 | 58B511D81A9E6C8500147676 /* Frameworks */, 72 | 58B511D91A9E6C8500147676 /* CopyFiles */, 73 | ); 74 | buildRules = ( 75 | ); 76 | dependencies = ( 77 | ); 78 | name = UserActivity; 79 | productName = RCTDataManager; 80 | productReference = 134814201AA4EA6300B7C361 /* libUserActivity.a */; 81 | productType = "com.apple.product-type.library.static"; 82 | }; 83 | /* End PBXNativeTarget section */ 84 | 85 | /* Begin PBXProject section */ 86 | 58B511D31A9E6C8500147676 /* Project object */ = { 87 | isa = PBXProject; 88 | attributes = { 89 | LastUpgradeCheck = 0610; 90 | ORGANIZATIONNAME = Facebook; 91 | TargetAttributes = { 92 | 58B511DA1A9E6C8500147676 = { 93 | CreatedOnToolsVersion = 6.1.1; 94 | }; 95 | }; 96 | }; 97 | buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "UserActivity" */; 98 | compatibilityVersion = "Xcode 3.2"; 99 | developmentRegion = English; 100 | hasScannedForEncodings = 0; 101 | knownRegions = ( 102 | en, 103 | ); 104 | mainGroup = 58B511D21A9E6C8500147676; 105 | productRefGroup = 58B511D21A9E6C8500147676; 106 | projectDirPath = ""; 107 | projectRoot = ""; 108 | targets = ( 109 | 58B511DA1A9E6C8500147676 /* UserActivity */, 110 | ); 111 | }; 112 | /* End PBXProject section */ 113 | 114 | /* Begin PBXSourcesBuildPhase section */ 115 | 58B511D71A9E6C8500147676 /* Sources */ = { 116 | isa = PBXSourcesBuildPhase; 117 | buildActionMask = 2147483647; 118 | files = ( 119 | 13BE3DEE1AC21097009241FE /* UserActivity.m in Sources */, 120 | ); 121 | runOnlyForDeploymentPostprocessing = 0; 122 | }; 123 | /* End PBXSourcesBuildPhase section */ 124 | 125 | /* Begin XCBuildConfiguration section */ 126 | 58B511ED1A9E6C8500147676 /* Debug */ = { 127 | isa = XCBuildConfiguration; 128 | buildSettings = { 129 | ALWAYS_SEARCH_USER_PATHS = NO; 130 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 131 | CLANG_CXX_LIBRARY = "libc++"; 132 | CLANG_ENABLE_MODULES = YES; 133 | CLANG_ENABLE_OBJC_ARC = YES; 134 | CLANG_WARN_BOOL_CONVERSION = YES; 135 | CLANG_WARN_CONSTANT_CONVERSION = YES; 136 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 137 | CLANG_WARN_EMPTY_BODY = YES; 138 | CLANG_WARN_ENUM_CONVERSION = YES; 139 | CLANG_WARN_INT_CONVERSION = YES; 140 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 141 | CLANG_WARN_UNREACHABLE_CODE = YES; 142 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 143 | COPY_PHASE_STRIP = NO; 144 | ENABLE_STRICT_OBJC_MSGSEND = YES; 145 | GCC_C_LANGUAGE_STANDARD = gnu99; 146 | GCC_DYNAMIC_NO_PIC = NO; 147 | GCC_OPTIMIZATION_LEVEL = 0; 148 | GCC_PREPROCESSOR_DEFINITIONS = ( 149 | "DEBUG=1", 150 | "$(inherited)", 151 | ); 152 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 153 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 154 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 155 | GCC_WARN_UNDECLARED_SELECTOR = YES; 156 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 157 | GCC_WARN_UNUSED_FUNCTION = YES; 158 | GCC_WARN_UNUSED_VARIABLE = YES; 159 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 160 | MTL_ENABLE_DEBUG_INFO = YES; 161 | ONLY_ACTIVE_ARCH = YES; 162 | SDKROOT = iphoneos; 163 | }; 164 | name = Debug; 165 | }; 166 | 58B511EE1A9E6C8500147676 /* Release */ = { 167 | isa = XCBuildConfiguration; 168 | buildSettings = { 169 | ALWAYS_SEARCH_USER_PATHS = NO; 170 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 171 | CLANG_CXX_LIBRARY = "libc++"; 172 | CLANG_ENABLE_MODULES = YES; 173 | CLANG_ENABLE_OBJC_ARC = YES; 174 | CLANG_WARN_BOOL_CONVERSION = YES; 175 | CLANG_WARN_CONSTANT_CONVERSION = YES; 176 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 177 | CLANG_WARN_EMPTY_BODY = YES; 178 | CLANG_WARN_ENUM_CONVERSION = YES; 179 | CLANG_WARN_INT_CONVERSION = YES; 180 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 181 | CLANG_WARN_UNREACHABLE_CODE = YES; 182 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 183 | COPY_PHASE_STRIP = YES; 184 | ENABLE_NS_ASSERTIONS = NO; 185 | ENABLE_STRICT_OBJC_MSGSEND = YES; 186 | GCC_C_LANGUAGE_STANDARD = gnu99; 187 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 188 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 189 | GCC_WARN_UNDECLARED_SELECTOR = YES; 190 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 191 | GCC_WARN_UNUSED_FUNCTION = YES; 192 | GCC_WARN_UNUSED_VARIABLE = YES; 193 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 194 | MTL_ENABLE_DEBUG_INFO = NO; 195 | SDKROOT = iphoneos; 196 | VALIDATE_PRODUCT = YES; 197 | }; 198 | name = Release; 199 | }; 200 | 58B511F01A9E6C8500147676 /* Debug */ = { 201 | isa = XCBuildConfiguration; 202 | buildSettings = { 203 | HEADER_SEARCH_PATHS = ( 204 | "$(inherited)", 205 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 206 | "$(SRCROOT)/../../React/**", 207 | "$(SRCROOT)/../../node_modules/react-native/React/**", 208 | ); 209 | LIBRARY_SEARCH_PATHS = "$(inherited)"; 210 | OTHER_LDFLAGS = "-ObjC"; 211 | PRODUCT_NAME = UserActivity; 212 | SKIP_INSTALL = YES; 213 | }; 214 | name = Debug; 215 | }; 216 | 58B511F11A9E6C8500147676 /* Release */ = { 217 | isa = XCBuildConfiguration; 218 | buildSettings = { 219 | HEADER_SEARCH_PATHS = ( 220 | "$(inherited)", 221 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 222 | "$(SRCROOT)/../../React/**", 223 | "$(SRCROOT)/node_modules/react-native/React/**", 224 | "$(SRCROOT)/../../../node_modules/react-native/React/**", 225 | "$(SRCROOT)/../react-native/React/**", 226 | ); 227 | LIBRARY_SEARCH_PATHS = "$(inherited)"; 228 | OTHER_LDFLAGS = "-ObjC"; 229 | PRODUCT_NAME = UserActivity; 230 | SKIP_INSTALL = YES; 231 | }; 232 | name = Release; 233 | }; 234 | /* End XCBuildConfiguration section */ 235 | 236 | /* Begin XCConfigurationList section */ 237 | 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "UserActivity" */ = { 238 | isa = XCConfigurationList; 239 | buildConfigurations = ( 240 | 58B511ED1A9E6C8500147676 /* Debug */, 241 | 58B511EE1A9E6C8500147676 /* Release */, 242 | ); 243 | defaultConfigurationIsVisible = 0; 244 | defaultConfigurationName = Release; 245 | }; 246 | 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "UserActivity" */ = { 247 | isa = XCConfigurationList; 248 | buildConfigurations = ( 249 | 58B511F01A9E6C8500147676 /* Debug */, 250 | 58B511F11A9E6C8500147676 /* Release */, 251 | ); 252 | defaultConfigurationIsVisible = 0; 253 | defaultConfigurationName = Release; 254 | }; 255 | /* End XCConfigurationList section */ 256 | }; 257 | rootObject = 58B511D31A9E6C8500147676 /* Project object */; 258 | } 259 | --------------------------------------------------------------------------------