From 0f78304db809e720fde4dc094c138c4ead8771cb Mon Sep 17 00:00:00 2001 From: Miyaguisan Date: Tue, 10 Sep 2019 02:52:54 -0500 Subject: [PATCH 1/3] RN 0.6.5 Update (#1) * Added REQUIRED home description to podspec. Updated RNReactNativeLocationSwitch.m to avoid App STore reject. Bump package version. * Included information from package file. Renamed podspec file * Updataed target version --- ios/RNReactNativeLocationSwitch.m | 43 +++++++++---------- .../project.pbxproj | 23 +++++++++- ios/ReactNativeAndroidLocationSwitch.podspec | 24 ----------- ios/react-native-location-switch.podspec | 22 ++++++++++ package.json | 22 +++++----- 5 files changed, 75 insertions(+), 59 deletions(-) delete mode 100644 ios/ReactNativeAndroidLocationSwitch.podspec create mode 100644 ios/react-native-location-switch.podspec diff --git a/ios/RNReactNativeLocationSwitch.m b/ios/RNReactNativeLocationSwitch.m index 9f5122e..469f7f6 100644 --- a/ios/RNReactNativeLocationSwitch.m +++ b/ios/RNReactNativeLocationSwitch.m @@ -1,37 +1,37 @@ - #import "RNReactNativeLocationSwitch.h" #import "UIKit/UIKit.h" #import #import + @implementation RNReactNativeLocationSwitch -- (dispatch_queue_t)methodQueue -{ +- (dispatch_queue_t)methodQueue { return dispatch_get_main_queue(); } -RCT_EXPORT_MODULE() +RCT_EXPORT_MODULE() RCT_REMAP_METHOD(enableLocationService, onPermissionGiven:(RCTResponseSenderBlock)successCallback - onPermissionDenied:(RCTResponseSenderBlock)errorCallback) -{ + onPermissionDenied:(RCTResponseSenderBlock)errorCallback) { CLAuthorizationStatus status = [CLLocationManager authorizationStatus]; - - if (![CLLocationManager locationServicesEnabled]) { - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=Privacy&path=LOCATION"] options:@{} - completionHandler:^(BOOL success) {}]; - - } else if (status == kCLAuthorizationStatusDenied) { - NSLog(@"Location Services Disabled"); + + if (![CLLocationManager locationServicesEnabled] || status == kCLAuthorizationStatusDenied) { + NSURL *serviceURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; - // show location settings - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} - completionHandler:^(BOOL success) {}]; - - } else { - NSLog(@"Location Services Enabled"); + if ([[UIApplication sharedApplication] canOpenURL:serviceURL]) { + if (@available(iOS 10.0, *)) { + [[UIApplication sharedApplication] openURL:serviceURL options:@{} completionHandler:^(BOOL success) {}]; + } else { + [[UIApplication sharedApplication] openURL:serviceURL]; + } + } + else { + errorCallback(@[[NSNull null]]); + } + } + else { successCallback(@[[NSNull null]]); } } @@ -39,15 +39,12 @@ - (dispatch_queue_t)methodQueue RCT_REMAP_METHOD(isLocationEnabled, onLocationEnabled:(RCTResponseSenderBlock)successCallback - onLocationDisable:(RCTResponseSenderBlock)errorCallback) -{ + onLocationDisable:(RCTResponseSenderBlock)errorCallback) { CLAuthorizationStatus status = [CLLocationManager authorizationStatus]; if (![CLLocationManager locationServicesEnabled] || status == kCLAuthorizationStatusDenied) { - NSLog(@"Location Services Disabled"); errorCallback(@[[NSNull null]]); } else { - NSLog(@"Location Services Enabled"); successCallback(@[[NSNull null]]); } } diff --git a/ios/RNReactNativeLocationSwitch.xcodeproj/project.pbxproj b/ios/RNReactNativeLocationSwitch.xcodeproj/project.pbxproj index be617aa..5254414 100644 --- a/ios/RNReactNativeLocationSwitch.xcodeproj/project.pbxproj +++ b/ios/RNReactNativeLocationSwitch.xcodeproj/project.pbxproj @@ -83,7 +83,7 @@ 58B511D31A9E6C8500147676 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0830; + LastUpgradeCheck = 1030; ORGANIZATIONNAME = Facebook; TargetAttributes = { 58B511DA1A9E6C8500147676 = { @@ -93,10 +93,11 @@ }; buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNReactNativeLocationSwitch" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 58B511D21A9E6C8500147676; productRefGroup = 58B511D21A9E6C8500147676; @@ -124,18 +125,27 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -172,18 +182,27 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; diff --git a/ios/ReactNativeAndroidLocationSwitch.podspec b/ios/ReactNativeAndroidLocationSwitch.podspec deleted file mode 100644 index d4c08cb..0000000 --- a/ios/ReactNativeAndroidLocationSwitch.podspec +++ /dev/null @@ -1,24 +0,0 @@ - -Pod::Spec.new do |s| - s.name = "ReactNativeAndroidLocationSwitch" - s.version = "1.0.0" - s.summary = "ReactNativeAndroidLocationSwitch" - s.description = <<-DESC - ReactNativeAndroidLocationSwitch - DESC - s.homepage = "" - s.license = "Apache-2.0" - # s.license = { :type => "Apache-2.0", :file => "../LICENSE" } - s.author = { "author" => "author@domain.cn" } - s.platform = :ios, "7.0" - s.source = { :git => "https://github.com/philiWeitz/react-native-android-location-switch.git", :tag => "master" } - s.source_files = "ReactNativeAndroidLocationSwitch/**/*.{h,m}" - s.requires_arc = true - - - s.dependency "React" - #s.dependency "others" - -end - - \ No newline at end of file diff --git a/ios/react-native-location-switch.podspec b/ios/react-native-location-switch.podspec new file mode 100644 index 0000000..6b9a5eb --- /dev/null +++ b/ios/react-native-location-switch.podspec @@ -0,0 +1,22 @@ +require 'json' + +package = JSON.parse(File.read(File.join(__dir__, '../package.json'))) + + +Pod::Spec.new do |s| + s.authors = package['author'] + s.homepage = package['homepage'] + s.license = package['license'] + s.name = package['name'] + s.summary = package['description'] + s.version = package['version'] + + s.platform = :ios, "8.0" + s.requires_arc = true + s.source = { :git => "https://github.com/philiWeitz/react-native-android-location-switch.git", :tag => "master" } + s.source_files = "*.{h,m}" + + s.dependency 'React' + + +end diff --git a/package.json b/package.json index 3fb20b8..62e681d 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,11 @@ { - "name": "react-native-location-switch", - "version": "0.1.0", "author": "Philipp Weitz", - "private": false, - "license": "Apache-2.0", - "nativePackage": true, - "repository": { - "type": "git", - "url": "https://github.com/philiWeitz/react-native-location-switch.git" - }, "bugs": { "url": "https://github.com/philiWeitz/react-native-location-switch/issues" }, + "description": "A React Native module that allows you to verify the status of the device's location services.", + "homepage": "https://github.com/philiWeitz/react-native-location-switch", + "license": "Apache-2.0", "keywords": [ "react-native", "android", @@ -19,7 +13,15 @@ "library", "location" ], + "name": "react-native-location-switch", + "nativePackage": true, "peerDependencies": { "react-native": ">= 0.38.0" - } + }, + "private": false, + "repository": { + "type": "git", + "url": "https://github.com/philiWeitz/react-native-location-switch.git" + }, + "version": "0.1.1" } From 368cf5f745f3dd55e4e58c6323eaa41f3fb52aab Mon Sep 17 00:00:00 2001 From: Miyaguisan Date: Mon, 30 Sep 2019 14:23:20 -0500 Subject: [PATCH 2/3] Update Removed deprecated compile and use implementation. --- android/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index b2aaa7b..ab7f11f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -40,6 +40,6 @@ repositories { dependencies { - compile 'com.facebook.react:react-native:+' - compile 'com.google.android.gms:play-services-location:11.0.0' + implementation 'com.facebook.react:react-native:+' + implementation 'com.google.android.gms:play-services-location:11.0.0' } From 67d20a60889c2d0fc46d722fdc5f7715a891ee1c Mon Sep 17 00:00:00 2001 From: Miyaguisan Date: Mon, 30 Sep 2019 14:24:49 -0500 Subject: [PATCH 3/3] Compile version up * Compile version from 26.0.1 to 28.0.3 * Min SDK version from 16 to 19 * Target SDK version from 26 to 28 --- android/build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index ab7f11f..fee37b8 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,7 +1,7 @@ import groovy.json.JsonSlurper + def computeVersionName() { - // dynamically retrieve version from package.json def slurper = new JsonSlurper() def json = slurper.parse(file('../package.json'), "utf-8") return json.version @@ -20,12 +20,12 @@ buildscript { apply plugin: 'com.android.library' android { - compileSdkVersion 26 - buildToolsVersion "26.0.1" + compileSdkVersion 28 + buildToolsVersion "28.0.3" defaultConfig { - minSdkVersion 16 - targetSdkVersion 26 + minSdkVersion 19 + targetSdkVersion 28 versionCode 1 versionName computeVersionName() }