(iOS) Change the way of checking the CFBundleExecutable
MODIFY
plugin.xml
plugin.xml
<?xml version='1.0' encoding='utf-8'?>
-<plugin id="cordova-plugin-googlemaps" version="2.2.0-beta-20180126-1033" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
+<plugin id="cordova-plugin-googlemaps" version="2.2.0-beta-20180126-1119" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>cordova-plugin-googlemaps</name>
<js-module name="BaseClass" src="www/BaseClass.js">
<runs />

MODIFY
src/ios/GoogleMaps/CordovaGoogleMaps.m
src/ios/GoogleMaps/CordovaGoogleMaps.m
NSDictionary *info = [[NSBundle mainBundle] infoDictionary];
NSString *CFBundleExecutable = [info objectForKey:@"CFBundleExecutable"];
- NSArray *tagschemes = [NSArray arrayWithObjects:NSLinguisticTagSchemeLanguage, nil];
- NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes:tagschemes options:0];
- [tagger setString:CFBundleExecutable];
- NSString *language = [tagger tagAtIndex:0 scheme:NSLinguisticTagSchemeLanguage tokenRange:NULL sentenceRange:NULL];
- if (([@"en" isEqualToString:language] == NO) && ([language hasPrefix:@"en_"] == NO)) {
+ NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[a-zA-Z0-9$@$!%*?&#^-_.\\s+]+$" options:NSRegularExpressionCaseInsensitive error:nil];
+ if ([regex numberOfMatchesInString:CFBundleExecutable options:0 range:NSMakeRange(0, CFBundleExecutable.length)] == 0) {
NSString *message = [NSString stringWithFormat:@"Google Maps SDK for iOS crashes with app name '%@'.\nCheck out the comment in the CordovaGoogleMaps.m file.", CFBundleExecutable];
UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"[action required]"

(iOS) Change the way of checking the CFBundleExecutable