#iOSで現在動かなくなっています
cordova-line-login-pluginを使っている場合の話になりますが、2020年6月27日現在、sdkErrorCodeの3003エラーが出てしまい、動かなくなっています。
修正が開始されました。
7月14日現在、sdkの5.5.1までは動くようになっているようです。
詳しくは下記を参照してください。
https://github.com/nrikiji/cordova-line-login-plugin/issues/55
#結論
line-sdk-ios-swiftの最新バージョンに、cordova-line-login-pluginが追い付いていないことが原因です。
拍車をかけてしまっているのが、cordova-plugin-carthage-supportの存在です。
cordova prepare ios実行時に、carthage updateを行ってくれる便利な存在ですが、最新版があると強制的に取ってきます。
Cartfileの中を見ると、記述が以下のようになっています。
github "line/line-sdk-ios-swift" ~> 5.0
この記述が、5.0から6.0の間の最新版をいれるようにしているので、cordova prepare iosを実行してしまうと、sdkの最新版が入ってしまい、不具合が出てしまいます。
以下は例ですが、まだ正常に動いていた頃のバージョンを指定してあげてください。
github "line/line-sdk-ios-swift" == 5.3.0
#もしも上手く行かなかったら
この後に、cordova prepare iosを実行して、もしもsdkのバージョンが最新版になってしまったら…
まずは、プロジェクト直下のCartfile以外のCarthage関係のファイルとCarthageフォルダ以下を消して下さい。
Cartfile内の記述を再度修正して、Cartfileのあるフォルダで以下のコマンドを実行してください。
これで指定したバージョンがCarthageフォルダ内にインストールされます。
carthage bootstrap --platform iOS
cordova-plugin-carthage-supportが邪魔をしてくるので、少し改造をします。
modify_pbxproj.js内で、carthage updateを行っている個所をコメントアウトします。
具体的には以下のようにします。
//if (changeCartfile(cartfilePath, tmpCartfilePath)) {
// cmd = "carthage update --platform iOS"
//} else {
cmd = "carthage bootstrap --platform iOS --cache-builds"
//}
fs.writeFileSync(cartfilePath, cartfiles.join("\r\n"))
改造したものを外において、インストールし直してください。
こうしておけば、cordova prepare ios実行時に強制的にアップデートされることはなくなります。
#まとめ
あくまで対処療法なので、cordova-line-login-pluginが最新版のline-sdk-ios-swiftに対応するまでの回避策としてお使い下さい。
#参考URL
https://qiita.com/s-harada/items/47295d653ef0cf34d540
https://github.com/nrikiji/cordova-line-login-plugin
https://github.com/nrikiji/cordova-plugin-carthage-support
https://github.com/line/line-sdk-ios-swift
https://github.com/Carthage/Carthage