cordova-line-login-plugin icon indicating copy to clipboard operation
cordova-line-login-plugin copied to clipboard

IOS 無限ループになりアプリが落ちる

Open ogmso opened this issue 5 years ago • 4 comments

お世話になっております。

IOS側しか試してないのですが、Safariよりdeeplinkで起動時に無限ループでアプリが落ちてしまう現象が出まして、少し見たところ

AppDelegate+LineLogin.m

  • (BOOL)line_application_options: (UIApplication *)app openURL: (NSURL *)url options: (NSDictionary *)options

メソッドが呼び出され続け、

NSRange range = [url.absoluteString rangeOfString:@"line3rdp"]; の処理が何回か呼び出された後 Thread 1: EXC_BAD_ACCESS (code=2,.. になり落ちる感じでした。

改修をお願いしたいのですが可能でしょうか。 お手数お掛けしますが、何卒、宜しくお願い致します。

ogmso avatar Nov 30 '18 18:11 ogmso

ご連絡ありがとうございます。 私の採用しているプロジェクトでカスタムURLスキーマでの起動を試したところ再現しなかったのですが、サンプルプロジェクトなどいただくことは可能でしょうか?(別プラグインとの絡みも考えられるのですが)

nrikiji avatar Dec 02 '18 11:12 nrikiji

ご連絡ありがとうございます。 申し訳ありません。 すぐすぐにサンプルプロジェクトを準備する事が出来そうにありませんので、 私のpakage.jsonを貼ります。 "dependencies": { "@angular/common": "^4.1.3", "@angular/compiler": "^4.1.3", "@angular/compiler-cli": "^4.1.3", "@angular/core": "^4.1.3", "@angular/forms": "^4.1.3", "@angular/http": "^4.1.3", "@angular/platform-browser": "^4.1.3", "@angular/platform-browser-dynamic": "^4.1.3", "@angular/tsc-wrapped": "^4.1.3", "@ionic-native/android-fingerprint-auth": "^4.17.0", "@ionic-native/app-availability": "^4.17.0", "@ionic-native/clipboard": "^4.17.0", "@ionic-native/core": "^4.17.0", "@ionic-native/device": "^4.17.0", "@ionic-native/fcm": "^4.17.0", "@ionic-native/google-maps": "^4.15.1", "@ionic-native/in-app-browser": "^4.17.0", "@ionic-native/keyboard": "^4.17.0", "@ionic-native/network": "^4.17.0", "@ionic-native/network-interface": "^4.17.0", "@ionic-native/push": "^4.17.0", "@ionic-native/splash-screen": "^4.17.0", "@ionic-native/status-bar": "^4.17.0", "@ionic-native/touch-id": "^4.17.0", "@ionic-native/web-intent": "^4.17.0", "@ionic/storage": "^2.0.1", "autoprefixer": "^9.3.1", "com-darryncampbell-cordova-plugin-intent": "0.0.15", "cordova": "8.0.0", "cordova-android-support-gradle-release": "0.0.2", "cordova-clipboard": "^1.2.1", "cordova-ios": "4.5.5", "cordova-line-login-plugin": "git+https://github.com/nrikiji/cordova-line-login-plugin.git", "cordova-plugin-add-swift-support": "^1.6.2", "cordova-plugin-android-fingerprint-auth": "^1.4.5", "cordova-plugin-appavailability": "^0.4.2", "cordova-plugin-compat": "^1.2.0", "cordova-plugin-console": "^1.1.0", "cordova-plugin-device": "^1.1.7", "cordova-plugin-fcm-with-dependecy-updated": "^2.2.6", "cordova-plugin-googlemaps": "^2.4.6", "cordova-plugin-inappbrowser": "^3.0.0", "cordova-plugin-ionic-keyboard": "^2.1.3", "cordova-plugin-ionic-webview": "^2.2.0", "cordova-plugin-network-information": "^2.0.1", "cordova-plugin-networkinterface": "^1.2.0", "cordova-plugin-splashscreen": "^5.0.2", "cordova-plugin-statusbar": "^2.4.2", "cordova-plugin-touch-id": "^3.4.0", "cordova-plugin-whitelist": "^1.3.3", "ionic-angular": "^3.5.3", "ionic-plugin-deeplinks": "^1.0.17", "ionicons": "3.0.0", "iso": "^5.2.0", "ngx-bootstrap": "^1.9.3", "rxjs": "^5.4.3", "sw-toolbox": "3.6.0", "zone.js": "^0.8.12" }, "devDependencies": { "@ionic/app-scripts": "^1.3.12", "typescript": "2.2.1" },

また、暫定で以下の部分でループが発生しておりましたところをfalseで返すように致しました。 // return [self line_application_options:app openURL:url options:options]; return false;

とりあえず私の環境では落ちる事はなくなりましたが、上記の処理で別のバグが出るかもしれませんので、上記の処理がどのような場合に必要になるのか教えていただけたら幸いです。

何卒よろしくお願い致します

ogmso avatar Dec 02 '18 12:12 ogmso

確認が遅れてしまい大変申し訳ございません。

https://github.com/EddyVerbruggen/cordova-plugin-googleplus 少し前の話のためよく思い出せないのですが、こちらのプラグインと干渉してしまいGoogleの値が取得できずに対応した記憶があります。

https://github.com/EddyVerbruggen/cordova-plugin-googleplus/commit/ef0a4cf5e5e2588cdf4d3fd2f38d5100c7dc4ddc#diff-f01080edadc48adb5807de2104e230d7 当プラグインの動向を追っていなかったのですが、少しコミットを追ったところこの辺りで解消されている可能性があります。

他の機能に支障なければ対応頂いた内容で問題ないかと思います。 私の方でも無限ループしてクラッシュすることは確認できたのですが、すぐには対応できそうにありません。申し訳ありません。

nrikiji avatar Jan 08 '19 13:01 nrikiji

修正できておりませんが、処理の意図は思い出したので追記しておきます。 別のThird PartyプラグインでAppDelegate#application:openURL:optionsを上書きしているプラグインがあったため当プラグインの同メソッドも呼ばれなくなってしまうため、そのための対応でした。

nrikiji avatar Jan 15 '19 19:01 nrikiji