diff --git a/RCTAppleHealthKit.xcodeproj/project.pbxproj b/RCTAppleHealthKit.xcodeproj/project.pbxproj index 81f6100934e8485a1db9e608d45475ddfb772c25..0422dea7374c8348fa0e8d87f94bd9f70ae8fced 100644 --- a/RCTAppleHealthKit.xcodeproj/project.pbxproj +++ b/RCTAppleHealthKit.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ 3774C8D41D20C6390000B3F3 /* RCTAppleHealthKit+Methods_Body.m in Sources */ = {isa = PBXBuildFile; fileRef = 3774C8D31D20C6390000B3F3 /* RCTAppleHealthKit+Methods_Body.m */; }; 3774C8D71D20C65F0000B3F3 /* RCTAppleHealthKit+Methods_Fitness.m in Sources */ = {isa = PBXBuildFile; fileRef = 3774C8D61D20C65F0000B3F3 /* RCTAppleHealthKit+Methods_Fitness.m */; }; 377D44F31D247D0A004E35CB /* RCTAppleHealthKit+Methods_Characteristic.m in Sources */ = {isa = PBXBuildFile; fileRef = 377D44F21D247D0A004E35CB /* RCTAppleHealthKit+Methods_Characteristic.m */; }; + 37837E121DCFCD0B000201A0 /* RCTAppleHealthKit+Methods_Sleep.m in Sources */ = {isa = PBXBuildFile; fileRef = 37837E111DCFCD0B000201A0 /* RCTAppleHealthKit+Methods_Sleep.m */; }; 64C42D4A1D351A8800A0A8F7 /* RCTAppleHealthKit+Methods_Vitals.m in Sources */ = {isa = PBXBuildFile; fileRef = 64C42D491D351A8800A0A8F7 /* RCTAppleHealthKit+Methods_Vitals.m */; }; 64E0E73F1D37947B00EAB905 /* RCTAppleHealthKit+Methods_Results.m in Sources */ = {isa = PBXBuildFile; fileRef = 64E0E73E1D37947B00EAB905 /* RCTAppleHealthKit+Methods_Results.m */; }; /* End PBXBuildFile section */ @@ -48,6 +49,8 @@ 3774C8D61D20C65F0000B3F3 /* RCTAppleHealthKit+Methods_Fitness.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTAppleHealthKit+Methods_Fitness.m"; sourceTree = ""; }; 377D44F11D247D0A004E35CB /* RCTAppleHealthKit+Methods_Characteristic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTAppleHealthKit+Methods_Characteristic.h"; sourceTree = ""; }; 377D44F21D247D0A004E35CB /* RCTAppleHealthKit+Methods_Characteristic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTAppleHealthKit+Methods_Characteristic.m"; sourceTree = ""; }; + 37837E101DCFCD0B000201A0 /* RCTAppleHealthKit+Methods_Sleep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTAppleHealthKit+Methods_Sleep.h"; sourceTree = ""; }; + 37837E111DCFCD0B000201A0 /* RCTAppleHealthKit+Methods_Sleep.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTAppleHealthKit+Methods_Sleep.m"; sourceTree = ""; }; 64C42D481D351A8800A0A8F7 /* RCTAppleHealthKit+Methods_Vitals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTAppleHealthKit+Methods_Vitals.h"; sourceTree = ""; }; 64C42D491D351A8800A0A8F7 /* RCTAppleHealthKit+Methods_Vitals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTAppleHealthKit+Methods_Vitals.m"; sourceTree = ""; }; 64E0E73D1D37947B00EAB905 /* RCTAppleHealthKit+Methods_Results.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTAppleHealthKit+Methods_Results.h"; sourceTree = ""; }; @@ -102,6 +105,8 @@ 3774C8D61D20C65F0000B3F3 /* RCTAppleHealthKit+Methods_Fitness.m */, 377D44F11D247D0A004E35CB /* RCTAppleHealthKit+Methods_Characteristic.h */, 377D44F21D247D0A004E35CB /* RCTAppleHealthKit+Methods_Characteristic.m */, + 37837E101DCFCD0B000201A0 /* RCTAppleHealthKit+Methods_Sleep.h */, + 37837E111DCFCD0B000201A0 /* RCTAppleHealthKit+Methods_Sleep.m */, ); path = RCTAppleHealthKit; sourceTree = ""; @@ -164,6 +169,7 @@ files = ( 3774C89B1D2095450000B3F3 /* RCTAppleHealthKit+Queries.m in Sources */, 3774C8A11D20A6B90000B3F3 /* RCTAppleHealthKit+Utils.m in Sources */, + 37837E121DCFCD0B000201A0 /* RCTAppleHealthKit+Methods_Sleep.m in Sources */, 3774C8D41D20C6390000B3F3 /* RCTAppleHealthKit+Methods_Body.m in Sources */, 64E0E73F1D37947B00EAB905 /* RCTAppleHealthKit+Methods_Results.m in Sources */, 64C42D4A1D351A8800A0A8F7 /* RCTAppleHealthKit+Methods_Vitals.m in Sources */, diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Sleep.h b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Sleep.h new file mode 100644 index 0000000000000000000000000000000000000000..3afd6d9f1a6c37a71b252dead5d0473782ba1a04 --- /dev/null +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Sleep.h @@ -0,0 +1,15 @@ +// +// RCTAppleHealthKit+Methods_Sleep.h +// RCTAppleHealthKit +// +// Created by Greg Wilson on 2016-11-06. +// Copyright © 2016 Greg Wilson. All rights reserved. +// + +#import "RCTAppleHealthKit.h" + +@interface RCTAppleHealthKit (Methods_Sleep) + +- (void)sleep_getSleepSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; + +@end diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Sleep.m b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Sleep.m new file mode 100644 index 0000000000000000000000000000000000000000..02a7f5426bb75fc165b9d388fcb250666aab8d54 --- /dev/null +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Sleep.m @@ -0,0 +1,46 @@ +// +// RCTAppleHealthKit+Methods_Sleep.m +// RCTAppleHealthKit +// +// Created by Greg Wilson on 2016-11-06. +// Copyright © 2016 Greg Wilson. All rights reserved. +// + +#import "RCTAppleHealthKit+Methods_Sleep.h" +#import "RCTAppleHealthKit+Queries.h" +#import "RCTAppleHealthKit+Utils.h" + +@implementation RCTAppleHealthKit (Methods_Sleep) + + + +- (void)sleep_getSleepSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback +{ + NSDate *startDate = [RCTAppleHealthKit dateFromOptions:input key:@"startDate" withDefault:nil]; + NSDate *endDate = [RCTAppleHealthKit dateFromOptions:input key:@"endDate" withDefault:[NSDate date]]; + if(startDate == nil){ + callback(@[RCTMakeError(@"startDate is required in options", nil, nil)]); + return; + } + + NSPredicate *predicate = [RCTAppleHealthKit predicateForSamplesBetweenDates:startDate endDate:endDate]; + NSUInteger limit = [RCTAppleHealthKit uintFromOptions:input key:@"limit" withDefault:HKObjectQueryNoLimit]; + + + [self fetchSleepCategorySamplesForPredicate:predicate + limit:limit + completion:^(NSArray *results, NSError *error) { + if(results){ + callback(@[[NSNull null], results]); + return; + } else { + NSLog(@"error getting sleep samples: %@", error); + callback(@[RCTMakeError(@"error getting sleep samples", nil, nil)]); + return; + } + }]; + +} + + +@end diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Queries.h b/RCTAppleHealthKit/RCTAppleHealthKit+Queries.h index a5b95085525cda6d88e578d68e57d760544e95b8..a1653a2ec2e5e7eb1d9d1bd587f81f36b516a2be 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+Queries.h +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Queries.h @@ -38,4 +38,10 @@ limit:(NSUInteger)lim completion:(void (^)(NSArray *, NSError *))completionHandler; + + +- (void)fetchSleepCategorySamplesForPredicate:(NSPredicate *)predicate + limit:(NSUInteger)lim + completion:(void (^)(NSArray *, NSError *))completion; + @end diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Queries.m b/RCTAppleHealthKit/RCTAppleHealthKit+Queries.m index 7b8613442b5bdad140c774294eda9100157816fe..d8dd80453ef8cfc34575b38e57305fdec70fb996 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+Queries.m +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Queries.m @@ -106,6 +106,102 @@ } + + + + + + + +- (void)fetchSleepCategorySamplesForPredicate:(NSPredicate *)predicate + limit:(NSUInteger)lim + completion:(void (^)(NSArray *, NSError *))completion { + + + NSSortDescriptor *timeSortDescriptor = [[NSSortDescriptor alloc] initWithKey:HKSampleSortIdentifierEndDate + ascending:false]; + + + // declare the block + void (^handlerBlock)(HKSampleQuery *query, NSArray *results, NSError *error); + // create and assign the block + handlerBlock = ^(HKSampleQuery *query, NSArray *results, NSError *error) { + if (!results) { + if (completion) { + completion(nil, error); + } + return; + } + + if (completion) { + NSMutableArray *data = [NSMutableArray arrayWithCapacity:1]; + + dispatch_async(dispatch_get_main_queue(), ^{ + + for (HKCategorySample *sample in results) { + + HKCategoryType *catType = sample.categoryType; + NSInteger val = sample.value; + + // HKQuantity *quantity = sample.quantity; + // double value = [quantity doubleValueForUnit:unit]; + + NSString *startDateString = [RCTAppleHealthKit buildISO8601StringFromDate:sample.startDate]; + NSString *endDateString = [RCTAppleHealthKit buildISO8601StringFromDate:sample.endDate]; + + NSDictionary *elem = @{ + @"value" : @(( (float) val )), + @"catType" : catType.identifier, + @"startDate" : startDateString, + @"endDate" : endDateString, + }; + + [data addObject:elem]; + } + + completion(data, error); + }); + } + }; + + // HKSampleQuery *query = [[HKSampleQuery alloc] initWithSampleType:quantityType + // predicate:predicate + // limit:lim + // sortDescriptors:@[timeSortDescriptor] + // resultsHandler:handlerBlock]; + + HKCategoryType *categoryType = + [HKObjectType categoryTypeForIdentifier:HKCategoryTypeIdentifierSleepAnalysis]; + + // HKCategorySample *categorySample = + // [HKCategorySample categorySampleWithType:categoryType + // value:value + // startDate:startDate + // endDate:endDate]; + + + HKSampleQuery *query = [[HKSampleQuery alloc] initWithSampleType:categoryType + predicate:predicate + limit:lim + sortDescriptors:@[timeSortDescriptor] + resultsHandler:handlerBlock]; + + + [self.healthStore executeQuery:query]; +} + + + + + + + + + + + + + - (void)fetchCorrelationSamplesOfType:(HKQuantityType *)quantityType unit:(HKUnit *)unit predicate:(NSPredicate *)predicate diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+TypesAndPermissions.m b/RCTAppleHealthKit/RCTAppleHealthKit+TypesAndPermissions.m index 64f8fa223bce4d1cb57256cb7e219a30a61a9efa..e050dabc23a4993c94fbc853d0c086e65d809509 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+TypesAndPermissions.m +++ b/RCTAppleHealthKit/RCTAppleHealthKit+TypesAndPermissions.m @@ -45,6 +45,8 @@ @"RespiratoryRate" : [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierRespiratoryRate], // Results Identifiers @"BloodGlucose" : [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierBloodGlucose], + // Sleep + @"SleepAnalysis" : [HKObjectType categoryTypeForIdentifier:HKCategoryTypeIdentifierSleepAnalysis], }; return readPerms; } @@ -69,6 +71,8 @@ @"FlightsClimbed" : [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierFlightsClimbed], // Nutrition Identifiers @"DietaryEnergy" : [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierDietaryEnergyConsumed], + // Sleep + @"SleepAnalysis" : [HKObjectType categoryTypeForIdentifier:HKCategoryTypeIdentifierSleepAnalysis], }; return writePerms; } diff --git a/RCTAppleHealthKit/RCTAppleHealthKit.m b/RCTAppleHealthKit/RCTAppleHealthKit.m index 8b6b1345c1181addb877e20c7c04992b4dc977cf..c54a4bc874692249e94c615afc14a1d454cfbe9c 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit.m +++ b/RCTAppleHealthKit/RCTAppleHealthKit.m @@ -14,6 +14,7 @@ #import "RCTAppleHealthKit+Methods_Characteristic.h" #import "RCTAppleHealthKit+Methods_Vitals.h" #import "RCTAppleHealthKit+Methods_Results.h" +#import "RCTAppleHealthKit+Methods_Sleep.h" #import "RCTBridge.h" #import "RCTEventDispatcher.h" @@ -153,6 +154,11 @@ RCT_EXPORT_METHOD(getBloodGlucoseSamples:(NSDictionary *)input callback:(RCTResp [self results_getBloodGlucoseSamples:input callback:callback]; } +RCT_EXPORT_METHOD(getSleepSamples:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback) +{ + [self sleep_getSleepSamples:input callback:callback]; +} + RCT_EXPORT_METHOD(getInfo:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback) { [self getModuleInfo:input callback:callback]; diff --git a/constants.js b/constants.js index 1048ef716c60accd31cb11dfc1cfe027a9d4783d..34427d01440163742b4b910b5c8bfc8edc26523c 100644 --- a/constants.js +++ b/constants.js @@ -25,6 +25,7 @@ const PERMISSIONS = { BloodPressureDiastolic: 'BloodPressureDiastolic', RespiratoryRate: 'RespiratoryRate', BloodGlucose: 'BloodGlucose', + SleepAnalysis: 'SleepAnalysis', }; diff --git a/examples/StepsDemo/app/components/home/index.js b/examples/StepsDemo/app/components/home/index.js index 53858c35d1157c42e45d5bf17e5f1b86cb81ddac..88b893784051d3e59423ce1fe9477b14de2322ed 100644 --- a/examples/StepsDemo/app/components/home/index.js +++ b/examples/StepsDemo/app/components/home/index.js @@ -28,6 +28,7 @@ const HKOPTIONS = { HKPERMS.Height, HKPERMS.DateOfBirth, HKPERMS.BiologicalSex, + HKPERMS.SleepAnalysis, ], write: [ HKPERMS.StepCount @@ -75,6 +76,8 @@ class Home extends Component { this._fetchStepsToday(); this._fetchStepsHistory(); + + this._fetchSleepAnalysis(); }); } }); @@ -115,6 +118,29 @@ class Home extends Component { }); } + + + _fetchSleepAnalysis() { + let options = { + startDate: (new Date(2016,10,1)).toISOString(), + }; + AppleHealthKit.getSleepSamples(options, (err, res) => { + if(this._handleHKError(err, 'getSleepSamples')){ + return; + } + //this.setState({stepHistory: res}); + + console.log('######################################') + console.log('### SLEEP SAMPLES ###') + console.log('######################################') + console.log(res) + + }); + } + + + + /** * render the Navigator which will render the navigation * bar and the scene diff --git a/examples/StepsDemo/index.ios.js b/examples/StepsDemo/index.ios.js index 9250cd3118508b6bb9fc63be52e48478db316eb3..db10c642bcb798081c01a76ead6855d8fa5c4e17 100644 --- a/examples/StepsDemo/index.ios.js +++ b/examples/StepsDemo/index.ios.js @@ -12,6 +12,8 @@ import { View } from 'react-native'; +require('RCTNativeAppEventEmitter') + import App from './app/app'; class StepsDemo extends Component { diff --git a/examples/StepsDemo/ios/StepsDemo.xcodeproj/project.pbxproj b/examples/StepsDemo/ios/StepsDemo.xcodeproj/project.pbxproj index c433bfce6c74dda19f3efe00808fe221fb3f73ef..b44d804867396314883d635ffd571a974fd75f2c 100644 --- a/examples/StepsDemo/ios/StepsDemo.xcodeproj/project.pbxproj +++ b/examples/StepsDemo/ios/StepsDemo.xcodeproj/project.pbxproj @@ -22,7 +22,6 @@ 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 377F68B31D7A0D9C00B64DB1 /* libRCTAppleHealthKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 377F68B21D7A0D9800B64DB1 /* libRCTAppleHealthKit.a */; }; 378616B61D257B040027C300 /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 378616B51D257B040027C300 /* HealthKit.framework */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; /* End PBXBuildFile section */ @@ -91,9 +90,9 @@ remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; remoteInfo = React; }; - 377F68B11D7A0D9800B64DB1 /* PBXContainerItemProxy */ = { + 37837E301DCFDBCA000201A0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 377F68AD1D7A0D9800B64DB1 /* RCTAppleHealthKit.xcodeproj */; + containerPortal = 37837E2C1DCFDBCA000201A0 /* RCTAppleHealthKit.xcodeproj */; proxyType = 2; remoteGlobalIDString = 3774C88D1D2092F20000B3F3; remoteInfo = RCTAppleHealthKit; @@ -134,7 +133,7 @@ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = StepsDemo/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = StepsDemo/main.m; sourceTree = ""; }; 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - 377F68AD1D7A0D9800B64DB1 /* RCTAppleHealthKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAppleHealthKit.xcodeproj; path = "../node_modules/react-native-apple-healthkit/RCTAppleHealthKit.xcodeproj"; sourceTree = ""; }; + 37837E2C1DCFDBCA000201A0 /* RCTAppleHealthKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAppleHealthKit.xcodeproj; path = "../node_modules/react-native-apple-healthkit/RCTAppleHealthKit.xcodeproj"; sourceTree = ""; }; 378616B51D257B040027C300 /* HealthKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HealthKit.framework; path = System/Library/Frameworks/HealthKit.framework; sourceTree = SDKROOT; }; 378616B71D257B040027C300 /* StepsDemo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = StepsDemo.entitlements; path = StepsDemo/StepsDemo.entitlements; sourceTree = ""; }; 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; @@ -154,7 +153,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 377F68B31D7A0D9C00B64DB1 /* libRCTAppleHealthKit.a in Frameworks */, 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, 146834051AC3E58100842450 /* libReact.a in Frameworks */, 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, @@ -268,10 +266,10 @@ name = Products; sourceTree = ""; }; - 377F68AE1D7A0D9800B64DB1 /* Products */ = { + 37837E2D1DCFDBCA000201A0 /* Products */ = { isa = PBXGroup; children = ( - 377F68B21D7A0D9800B64DB1 /* libRCTAppleHealthKit.a */, + 37837E311DCFDBCA000201A0 /* libRCTAppleHealthKit.a */, ); name = Products; sourceTree = ""; @@ -287,7 +285,7 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( - 377F68AD1D7A0D9800B64DB1 /* RCTAppleHealthKit.xcodeproj */, + 37837E2C1DCFDBCA000201A0 /* RCTAppleHealthKit.xcodeproj */, 146833FF1AC3E56700842450 /* React.xcodeproj */, 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, @@ -411,8 +409,8 @@ ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; }, { - ProductGroup = 377F68AE1D7A0D9800B64DB1 /* Products */; - ProjectRef = 377F68AD1D7A0D9800B64DB1 /* RCTAppleHealthKit.xcodeproj */; + ProductGroup = 37837E2D1DCFDBCA000201A0 /* Products */; + ProjectRef = 37837E2C1DCFDBCA000201A0 /* RCTAppleHealthKit.xcodeproj */; }, { ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; @@ -516,11 +514,11 @@ remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 377F68B21D7A0D9800B64DB1 /* libRCTAppleHealthKit.a */ = { + 37837E311DCFDBCA000201A0 /* libRCTAppleHealthKit.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; path = libRCTAppleHealthKit.a; - remoteRef = 377F68B11D7A0D9800B64DB1 /* PBXContainerItemProxy */; + remoteRef = 37837E301DCFDBCA000201A0 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { @@ -734,6 +732,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 7.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ""; SDKROOT = iphoneos; }; name = Debug; @@ -773,6 +772,7 @@ ); IPHONEOS_DEPLOYMENT_TARGET = 7.0; MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; diff --git a/examples/StepsDemo/ios/StepsDemo/AppDelegate.m b/examples/StepsDemo/ios/StepsDemo/AppDelegate.m index 1e3212c106a113b749bb43dc57f9ec89898e91c3..00d6637d59a654885dc4362c38ad33f08cd2047a 100644 --- a/examples/StepsDemo/ios/StepsDemo/AppDelegate.m +++ b/examples/StepsDemo/ios/StepsDemo/AppDelegate.m @@ -31,7 +31,7 @@ * on the same Wi-Fi network. */ // - jsCodeLocation = [NSURL URLWithString:@"http://192.168.0.13:8081/index.ios.bundle?platform=ios&dev=true"]; + jsCodeLocation = [NSURL URLWithString:@"http://192.168.0.12:8081/index.ios.bundle?platform=ios&dev=true"]; // jsCodeLocation = [NSURL URLWithString:@"http://10.1.14.163:8081/index.ios.bundle?platform=ios&dev=true"]; /** * OPTION 2