diff --git a/config.xml b/config.xml index 0c0dbb0..9f3c6a6 100644 --- a/config.xml +++ b/config.xml @@ -32,6 +32,9 @@ 館内マップの表示に位置情報を使います。位置情報へのアクセスを許可してください。 + + 館内マップの表示にBluetoothを使います。Bluetoothへのアクセスを許可してください。 + @@ -57,6 +60,8 @@ + + diff --git a/package-lock.json b/package-lock.json index 3565589..cd9ece4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2355,9 +2355,8 @@ "dev": true }, "com.unarin.cordova.beacon": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/com.unarin.cordova.beacon/-/com.unarin.cordova.beacon-3.8.1.tgz", - "integrity": "sha512-ciMFvJhGPD3rJHQkDl4fvifV0A86SWIa+zj/2j41e5HR7Hy2UGJtK6TEYhfyStURIueRpV8EIFWfeX1NGxLK+Q==" + "version": "git+https://github.com/petermetz/cordova-plugin-ibeacon.git#270ffbbc12159861a16e5e81481103c1e09139cb", + "from": "git+https://github.com/petermetz/cordova-plugin-ibeacon.git" }, "combine-source-map": { "version": "0.8.0", diff --git a/package.json b/package.json index e665a41..b6771ae 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "bb": "browserify -g [ babelify --presets [ \"@babel/preset-env\" \"@babel/preset-react\" ] ] -g uglifyify --entry src/app.js > www/js/all.js" }, "dependencies": { - "com.unarin.cordova.beacon": "^3.8.1", + "com.unarin.cordova.beacon": "git+https://github.com/petermetz/cordova-plugin-ibeacon.git", "cordova-android": "^8.1.0", "cordova-browser": "^5.0.4", "cordova-ios": "^5.0.1", @@ -67,8 +67,8 @@ "cordova": { "platforms": [ "browser", - "ios", - "android" + "android", + "ios" ], "plugins": { "cordova-plugin-bluetooth-status": {}, @@ -77,9 +77,9 @@ "cordova-plugin-device-orientation": {}, "cordova-plugin-inappbrowser": {}, "cordova-plugin-splashscreen": {}, - "com.unarin.cordova.beacon": {}, "cordova-plugin-network-information": {}, - "cordova-plugin-wkwebview-engine": {} + "cordova-plugin-wkwebview-engine": {}, + "com.unarin.cordova.beacon": {} } } } \ No newline at end of file diff --git a/plugins/android.json b/plugins/android.json index a6e707d..f29a01e 100644 --- a/plugins/android.json +++ b/plugins/android.json @@ -7,9 +7,6 @@ "files": {} }, "installed_plugins": { - "com.unarin.cordova.beacon": { - "PACKAGE_NAME": "jp.calil.sabatomap" - }, "cordova-plugin-bluetooth-status": { "PACKAGE_NAME": "jp.calil.sabatomap" }, @@ -33,6 +30,9 @@ }, "cordova-plugin-wkwebview-engine": { "PACKAGE_NAME": "jp.calil.sabatomap" + }, + "com.unarin.cordova.beacon": { + "PACKAGE_NAME": "jp.calil.sabatomap" } }, "dependent_plugins": {} diff --git a/plugins/browser.json b/plugins/browser.json index 4512cac..25c28e7 100644 --- a/plugins/browser.json +++ b/plugins/browser.json @@ -7,9 +7,6 @@ "files": {} }, "installed_plugins": { - "com.unarin.cordova.beacon": { - "PACKAGE_NAME": "io.cordova.hellocordova" - }, "cordova-plugin-bluetooth-status": { "PACKAGE_NAME": "io.cordova.hellocordova" }, @@ -33,6 +30,9 @@ }, "cordova-plugin-wkwebview-engine": { "PACKAGE_NAME": "io.cordova.hellocordova" + }, + "com.unarin.cordova.beacon": { + "PACKAGE_NAME": "io.cordova.hellocordova" } }, "dependent_plugins": {} diff --git a/plugins/com.unarin.cordova.beacon/.circleci/config.yml b/plugins/com.unarin.cordova.beacon/.circleci/config.yml new file mode 100644 index 0000000..0dfcfe8 --- /dev/null +++ b/plugins/com.unarin.cordova.beacon/.circleci/config.yml @@ -0,0 +1,51 @@ +# Javascript Node CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-javascript/ for more details +# +version: 2 + +aliases: + x-ignore-master: &x-ignore-master + filters: + branches: + ignore: master + + x-only-master: &x-only-master + filters: + branches: + only: master + + +jobs: + lint: + docker: + - image: circleci/node:8.9 + steps: + - checkout + - restore_cache: + keys: + - npm-{{ checksum "package-lock.json" }}-{{ arch }} + - npm- + - run: npm install + - save_cache: + paths: + - node_modules + key: npm-{{ checksum "package-lock.json" }}-{{ arch }} + - run: + command: | + LAST_TAG=`git describe --tags --abbrev=0` + echo commitlint --from ${LAST_TAG} + npx commitlint --from ${LAST_TAG} + + +workflows: + version: 2 + pullrequest: + jobs: + - lint: + <<: *x-ignore-master + + master: + jobs: + - lint: + <<: *x-only-master \ No newline at end of file diff --git a/plugins/com.unarin.cordova.beacon/.github/issue_template.md b/plugins/com.unarin.cordova.beacon/.github/issue_template.md new file mode 100644 index 0000000..fee307c --- /dev/null +++ b/plugins/com.unarin.cordova.beacon/.github/issue_template.md @@ -0,0 +1,8 @@ +Please include the following to help us address your issue. + +1. Expected behavior and actual behavior. +2. Steps to reproduce the problem. +3. cordova-android version +4. cordova-ios version +5. cordova-plugin-ibeacon version +6. If running on a device, device model and os version. diff --git a/plugins/com.unarin.cordova.beacon/CHANGELOG.md b/plugins/com.unarin.cordova.beacon/CHANGELOG.md index 943c37a..94a6efd 100644 --- a/plugins/com.unarin.cordova.beacon/CHANGELOG.md +++ b/plugins/com.unarin.cordova.beacon/CHANGELOG.md @@ -1,11 +1,12 @@ -# 3.7.0 +# 3.8.1 +- Fixing botched plugin id in release of v3.8.0. -## Android -* Permission fixes for Android 8. -* Upgrades AltBeacon to 2.14 +# 3.8.0 -## iOS -- No changes. +- 40abc3b feat: add ARMA filter support for distance calcs +- f2fe545 build(android): updated to latest published altbeacon library +- 0fa7553 fix(build): upgrades commitlint CLI due to vulnerability +- 7a0472a fix(ios): location manager no longer handles other instances messages # 3.6.1 diff --git a/plugins/com.unarin.cordova.beacon/README.md b/plugins/com.unarin.cordova.beacon/README.md index aeb798c..c7b2ab9 100644 --- a/plugins/com.unarin.cordova.beacon/README.md +++ b/plugins/com.unarin.cordova.beacon/README.md @@ -26,12 +26,16 @@ * Ranging * Monitoring - + #### Features exclusive to iOS * Region Monitoring (or geo fencing), works in all app states. * Advertising device as an iBeacon +#### Features exclusive to Android + * ARMA filter for distance calculations + * Disable request for bluetooth permissions + ### Installation ``` @@ -348,12 +352,37 @@ cordova.plugins.locationManager.startMonitoringForRegion(beaconRegion) ``` +##### Enable ARMA filter for distance calculations (Android only) + +The underlying library uses the moving average to calculate distance by default, but an ARMA filter can be enabled which will weigh more recent measurements higher than older measurements. It can be enabled by adding the following preference to your `config.xml` file: + +`````` + +#### Disable request for bluetooth permission +By default, this library requests the user for bluetooth permissions when the app starts. If you would like to request permission in a different way or at a different time, set the following preference in your `config.xml` file. + +`````` + + ## Contributions > Contributions are welcome at all times, please make sure that the tests are running without errors > before submitting a pull request. The current development branch that you should submit your pull requests against is > "v3.x" branch. +This project uses [commitlint](https://github.com/conventional-changelog/commitlint#what-is-commitlint), please ensure all commit messages pass commitlint before submitting a pull request. + +### Release checklist + +* `CHANGELOG.md` list meaningful changes since last release, use the format of `git log --pretty=oneline --abbrev-commit` +* `package.json` bump the version +* `plugin.xml` bump the version +* Publish to both npm packages (due to historical reasons) + * `$ npm publish` (this publishes under `com.unarin.cordova.beacon` in npm) + * Edit `name` property in the `package.json` file from `com.unarin.cordova.beacon` to `cordova-plugin-ibeacon` (do not commit the change) + * `$ npm publish` again to publish under the legacy package name as well + * revert the change you just did in `package.json` + ### How to execute the tests - OS X #### Prerequisites Of The Test Runner diff --git a/plugins/com.unarin.cordova.beacon/package.json b/plugins/com.unarin.cordova.beacon/package.json index 60be498..08123f9 100644 --- a/plugins/com.unarin.cordova.beacon/package.json +++ b/plugins/com.unarin.cordova.beacon/package.json @@ -1,28 +1,25 @@ { - "_from": "com.unarin.cordova.beacon@3.7.0", - "_id": "com.unarin.cordova.beacon@3.7.0", + "_from": "git+https://github.com/petermetz/cordova-plugin-ibeacon.git", + "_id": "com.unarin.cordova.beacon@3.8.1", "_inBundle": false, - "_integrity": "sha512-JdQCAkyXIt986beMsLE33ooDmD9JM0Kdz25Ce4OqsiOe35pOW6G+3hR9EkHU4V1QfnOthpn9b3ohGgwuE4Ou1w==", + "_integrity": "", "_location": "/com.unarin.cordova.beacon", "_phantomChildren": {}, "_requested": { - "type": "version", - "registry": true, - "raw": "com.unarin.cordova.beacon@3.7.0", - "name": "com.unarin.cordova.beacon", - "escapedName": "com.unarin.cordova.beacon", - "rawSpec": "3.7.0", - "saveSpec": null, - "fetchSpec": "3.7.0" + "type": "git", + "raw": "https://github.com/petermetz/cordova-plugin-ibeacon.git", + "rawSpec": "https://github.com/petermetz/cordova-plugin-ibeacon.git", + "saveSpec": "git+https://github.com/petermetz/cordova-plugin-ibeacon.git", + "fetchSpec": "https://github.com/petermetz/cordova-plugin-ibeacon.git", + "gitCommittish": null }, "_requiredBy": [ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/com.unarin.cordova.beacon/-/com.unarin.cordova.beacon-3.7.0.tgz", - "_shasum": "4eb1466e68a1439e48323af15bb2085265368198", - "_spec": "com.unarin.cordova.beacon@3.7.0", - "_where": "Z:\\sabatomap", + "_resolved": "git+https://github.com/petermetz/cordova-plugin-ibeacon.git#270ffbbc12159861a16e5e81481103c1e09139cb", + "_spec": "https://github.com/petermetz/cordova-plugin-ibeacon.git", + "_where": "/Users/deguchi/apps/sabatomap", "author": { "name": "Peter Metz", "email": "peter.metz@unarin.com", @@ -32,6 +29,11 @@ "url": "https://github.com/petermetz/cordova-plugin-ibeacon/issues" }, "bundleDependencies": false, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, "cordova": { "id": "com.unarin.cordova.beacon", "platforms": [ @@ -41,7 +43,17 @@ }, "deprecated": false, "description": "Proximity Beacon Monitoring and Transmission Plugin (supporting iBeacons)", + "devDependencies": { + "@commitlint/cli": "^7.6.1", + "@commitlint/config-conventional": "^7.0.1", + "husky": "^2.2.0" + }, "homepage": "https://github.com/petermetz/cordova-plugin-ibeacon", + "husky": { + "hooks": { + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + } + }, "keywords": [ "cordova", "ibeacon", @@ -58,5 +70,5 @@ "type": "git", "url": "git+https://github.com/petermetz/cordova-plugin-ibeacon.git" }, - "version": "3.7.0" + "version": "3.8.1" } diff --git a/plugins/com.unarin.cordova.beacon/plugin.xml b/plugins/com.unarin.cordova.beacon/plugin.xml index 31580f1..92bbf0f 100644 --- a/plugins/com.unarin.cordova.beacon/plugin.xml +++ b/plugins/com.unarin.cordova.beacon/plugin.xml @@ -1,5 +1,5 @@ - + Proximity Beacon Plugin Proximity Beacon Monitoring and Transmission Plugin (supporting iBeacons) diff --git a/plugins/com.unarin.cordova.beacon/src/android/LocationManager.java b/plugins/com.unarin.cordova.beacon/src/android/LocationManager.java index d27794a..0d3c97f 100644 --- a/plugins/com.unarin.cordova.beacon/src/android/LocationManager.java +++ b/plugins/com.unarin.cordova.beacon/src/android/LocationManager.java @@ -53,6 +53,7 @@ Licensed to the Apache Software Foundation (ASF) under one import org.altbeacon.beacon.RangeNotifier; import org.altbeacon.beacon.Region; import org.altbeacon.beacon.service.RunningAverageRssiFilter; +import org.altbeacon.beacon.service.ArmaRssiFilter; import org.altbeacon.beacon.service.RangedBeacon; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaInterface; @@ -81,6 +82,10 @@ public class LocationManager extends CordovaPlugin implements BeaconConsumer { private static final int DEFAULT_FOREGROUND_BETWEEN_SCAN_PERIOD = 0; private static final String SAMPLE_EXPIRATION_MILLISECOND = "com.unarin.cordova.beacon.android.altbeacon.SampleExpirationMilliseconds"; private static final int DEFAULT_SAMPLE_EXPIRATION_MILLISECOND = 20000; + private static final String ENABLE_ARMA_FILTER_NAME = "com.unarin.cordova.beacon.android.altbeacon.EnableArmaFilter"; + private static final boolean DEFAULT_ENABLE_ARMA_FILTER = false; + private static final String REQUEST_BT_PERMISSION_NAME = "com.unarin.cordova.beacon.android.altbeacon.RequestBtPermission"; + private static final boolean DEFAULT_REQUEST_BT_PERMISSION = true; private static final int DEFAULT_FOREGROUND_SCAN_PERIOD = 1100; private static int CDV_LOCATION_MANAGER_DOM_DELEGATE_TIMEOUT = 30; private static final int BUILD_VERSION_CODES_M = 23; @@ -135,8 +140,16 @@ public void initialize(CordovaInterface cordova, CordovaWebView webView) { Log.i(TAG, "Determined config value SAMPLE_EXPIRATION_MILLISECOND: " + String.valueOf(sampleExpirationMilliseconds)); - iBeaconManager.setRssiFilterImplClass(RunningAverageRssiFilter.class); - RunningAverageRssiFilter.setSampleExpirationMilliseconds(sampleExpirationMilliseconds); + final boolean enableArmaFilter = this.preferences.getBoolean( + ENABLE_ARMA_FILTER_NAME, DEFAULT_ENABLE_ARMA_FILTER); + + if(enableArmaFilter){ + iBeaconManager.setRssiFilterImplClass(ArmaRssiFilter.class); + } + else{ + iBeaconManager.setRssiFilterImplClass(RunningAverageRssiFilter.class); + RunningAverageRssiFilter.setSampleExpirationMilliseconds(sampleExpirationMilliseconds); + } RangedBeacon.setSampleExpirationMilliseconds(sampleExpirationMilliseconds); initBluetoothListener(); @@ -152,7 +165,11 @@ public void initialize(CordovaInterface cordova, CordovaWebView webView) { } //TODO AddObserver when page loaded - tryToRequestMarshmallowLocationPermission(); + final boolean requestPermission = this.preferences.getBoolean( + REQUEST_BT_PERMISSION_NAME, DEFAULT_REQUEST_BT_PERMISSION); + + if(requestPermission) + tryToRequestMarshmallowLocationPermission(); } /** @@ -225,7 +242,7 @@ public boolean execute(String action, JSONArray args, CallbackContext callbackCo } else if (action.equals("isAdvertising")) { isAdvertising(callbackContext); } else if (action.equals("startAdvertising")) { - startAdvertising(args.optJSONObject(0), callbackContext); + startAdvertising(args, callbackContext); } else if (action.equals("stopAdvertising")) { stopAdvertising(callbackContext); } else if (action.equals("isBluetoothEnabled")) { @@ -1157,9 +1174,25 @@ public PluginResult run() { } - private void startAdvertising(final JSONObject arguments, CallbackContext callbackContext) throws JSONException { + private void startAdvertising(final JSONArray args, CallbackContext callbackContext) throws JSONException { debugLog("Advertisement start START BEACON "); - debugLog(arguments.toString(4)); + debugLog(args.toString(4)); + /* + Advertisement start START BEACON + [ + { + "identifier": "beaconAsMesh", + "uuid": "e80300fe-ff4b-0c37-5149-d9f394b5ca39", + "major": 0, + "minor": 30463, + "notifyEntryStateOnDisplay": true, + "typeName": "BeaconRegion" + }, + 7 + ] + */ + + JSONObject arguments = args.optJSONObject(0); // get first object String identifier = arguments.getString("identifier"); //For Android, uuid can be null when scanning for all beacons (I think) @@ -1167,6 +1200,9 @@ private void startAdvertising(final JSONObject arguments, CallbackContext callba final String major = arguments.has("major") && !arguments.isNull("major") ? arguments.getString("major") : null; final String minor = arguments.has("minor") && !arguments.isNull("minor") ? arguments.getString("minor") : null; + // optinal second member in JSONArray is just a number + final int measuredPower = args.length() > 1 ? args.getInt(1) : -55; + if (major == null && minor != null) throw new UnsupportedOperationException("Unsupported combination of 'major' and 'minor' parameters."); @@ -1180,7 +1216,7 @@ public PluginResult run() { .setId2(major) // Major for beacon .setId3(minor) // Minor for beacon .setManufacturer(0x004C) // Radius Networks.0x0118 Change this for other beacon layouts//0x004C for iPhone - .setTxPower(-56) // Power in dB + .setTxPower(measuredPower) // Power in dB .setDataFields(Arrays.asList(new Long[] {0l})) // Remove this for beacon layouts without d: fields .build(); debugLog("[DEBUG] Beacon.Builder: "+beacon); diff --git a/plugins/com.unarin.cordova.beacon/src/android/cordova-plugin-ibeacon.gradle b/plugins/com.unarin.cordova.beacon/src/android/cordova-plugin-ibeacon.gradle index 55835e0..a88cc7b 100644 --- a/plugins/com.unarin.cordova.beacon/src/android/cordova-plugin-ibeacon.gradle +++ b/plugins/com.unarin.cordova.beacon/src/android/cordova-plugin-ibeacon.gradle @@ -3,7 +3,7 @@ repositories{ } dependencies { - compile 'org.altbeacon:android-beacon-library:2.14' + compile 'org.altbeacon:android-beacon-library:2.16.1' } android { @@ -11,4 +11,4 @@ android { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } -} \ No newline at end of file +} diff --git a/plugins/com.unarin.cordova.beacon/src/ios/CDVLocationManager.m b/plugins/com.unarin.cordova.beacon/src/ios/CDVLocationManager.m index bf3f2cf..10ebd7c 100644 --- a/plugins/com.unarin.cordova.beacon/src/ios/CDVLocationManager.m +++ b/plugins/com.unarin.cordova.beacon/src/ios/CDVLocationManager.m @@ -89,6 +89,7 @@ - (void) checkIfDomSignaldDelegateReady { - (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region { + if (manager != self.locationManager) return; [self.commandDelegate runInBackground:^{ [[self getLogger] debugLog:@"didDetermineState: %@ for region: %@", [self regionStateAsString:state], region]; @@ -107,6 +108,7 @@ - (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegion -(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { + if (manager != self.locationManager) return; [self.queue addOperationWithBlock:^{ [self _handleCallSafely:^CDVPluginResult *(CDVInvokedUrlCommand *command) { @@ -128,6 +130,7 @@ -(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)r -(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region { + if (manager != self.locationManager) return; [self.queue addOperationWithBlock:^{ [self _handleCallSafely:^CDVPluginResult *(CDVInvokedUrlCommand *command) { @@ -149,6 +152,7 @@ -(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)re - (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region { + if (manager != self.locationManager) return; [self.queue addOperationWithBlock:^{ [self _handleCallSafely:^CDVPluginResult *(CDVInvokedUrlCommand *command) { @@ -169,6 +173,7 @@ - (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion - (void)locationManager:(CLLocationManager *)manager monitoringDidFailForRegion:(CLRegion *)region withError:(NSError *)error { + if (manager != self.locationManager) return; [self.queue addOperationWithBlock:^{ [self _handleCallSafely:^CDVPluginResult *(CDVInvokedUrlCommand *command) { @@ -190,6 +195,7 @@ - (void)locationManager:(CLLocationManager *)manager monitoringDidFailForRegion: - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region { + if (manager != self.locationManager) return; NSMutableArray* beaconsMapsArray = [NSMutableArray new]; for (CLBeacon* beacon in beacons) { NSDictionary* dictOfBeacon = [self mapOfBeacon:beacon]; diff --git a/plugins/com.unarin.cordova.beacon/tools/re-install-platform-and-plugin.sh b/plugins/com.unarin.cordova.beacon/tools/re-install-platform-and-plugin.sh old mode 100644 new mode 100755 diff --git a/plugins/fetch.json b/plugins/fetch.json index b2d1823..fe0d2b4 100644 --- a/plugins/fetch.json +++ b/plugins/fetch.json @@ -55,18 +55,18 @@ "is_top_level": true, "variables": {} }, - "com.unarin.cordova.beacon": { + "cordova-plugin-wkwebview-engine": { "source": { "type": "registry", - "id": "com.unarin.cordova.beacon@3.7.0" + "id": "cordova-plugin-wkwebview-engine@^1.2.1" }, "is_top_level": true, "variables": {} }, - "cordova-plugin-wkwebview-engine": { + "com.unarin.cordova.beacon": { "source": { "type": "registry", - "id": "cordova-plugin-wkwebview-engine@^1.2.1" + "id": "https://github.com/petermetz/cordova-plugin-ibeacon.git" }, "is_top_level": true, "variables": {} diff --git a/plugins/ios.json b/plugins/ios.json index a6e707d..8624192 100644 --- a/plugins/ios.json +++ b/plugins/ios.json @@ -8,31 +8,31 @@ }, "installed_plugins": { "com.unarin.cordova.beacon": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" }, "cordova-plugin-bluetooth-status": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" }, "cordova-plugin-device": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" }, "cordova-plugin-device-orientation": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" }, "cordova-plugin-inappbrowser": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" }, "cordova-plugin-network-information": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" }, "cordova-plugin-splashscreen": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" }, "cordova-plugin-whitelist": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" }, "cordova-plugin-wkwebview-engine": { - "PACKAGE_NAME": "jp.calil.sabatomap" + "PACKAGE_NAME": "$(PRODUCT_BUNDLE_IDENTIFIER)" } }, "dependent_plugins": {}