ios - 推特登录异常 flutter

标签 ios firebase flutter twitter twitter-login

我正在研究 flutter 项目,我尝试使用 flutter_twitter 登录 Twitter插入。它适用于 Android,但在使用 iOS 登录时遇到问题。我搜索它但没有成功。还有Exception throw when login in IOS没有帮助我。请帮助我如何解决它。

信息.plist

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb26143136******</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>com.googleusercontent.apps.433638145101-40qg2d9uiq4v5t*********</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>twitterkit-mmjB8lbQe3wsBhx*********></string>
        </array>
      </dict>
</array>

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-share-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
    <string>twitter</string>
    <string>twitterauth</string>
</array>

flutter 代码

 var twitterLogin = new TwitterLogin(
 consumerKey: '**jB8lbQe3wsB****',
 consumerSecret:'***j5DrXVTU45mo6fb**********',
 );

Future<void> loginWithTwitter() async {
final TwitterLoginResult result = await twitterLogin.authorize();

switch (result.status) {
  case TwitterLoginStatus.loggedIn:
    var session = result.session;
    print(session.token);
    print(session.secret);
    break;
  case TwitterLoginStatus.cancelledByUser:
    print("Cancelled");
    break;
  case TwitterLoginStatus.error:
    print(result.errorMessage);
    break;
 }
}

错误日志

      *** First throw call stack:
 (
 0   CoreFoundation                      0x00007fff23baa1ee       __exceptionPreprocess + 350
 1   libobjc.A.dylib                     0x00007fff50864b20    objc_exception_throw + 48
 2   CoreFoundation                      0x00007fff23baa02c +[NSException raise:format:] + 188
 3   TwitterKit                          0x0000000106df38ad -[TWTRTwitter logInWithViewController:completion:] + 649
 4   Runner                              0x00000001023ded4d -[TwitterLoginPlugin authorize:] + 205
 5   Runner                              0x00000001023de83f -[TwitterLoginPlugin handleMethodCall:result:] + 335
 6   Flutter                             0x0000000104d0d4fd __45-[FlutterMethodChannel setMethodCallHandler:]<…>
 Lost connection to device.

最佳答案

你应该只有一个 CFBundleTypeRole 并且在数组中放置来自提供者 ex.google、twitter、facebook 等的所有键。

就像这样:

 <dict>
    <key>CFBundleTypeRole</key>
    <string>Editor</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>com.googleusercontent.apps.433638145101-40qg2d9uiq4v5t*********</string>
      <string>twitterkit-mmjB8lbQe3wsBhx*********></string>
    </array>
  </dict>

关于ios - 推特登录异常 flutter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58762353/

相关文章:

android - 如何使用 TextWatcher 实现 firebase 回收器?

dart - 在 Flutter 中获取设备的宽度和高度

flutter - 应用退出时无法调用 dispose() 方法

ios - 如何在Objective-C中创建多个锯齿状数组

iphone - 如何更改ZBar阅读器的边框?

ios - iTunes Connect 中的 App Store 文件大小警告

ios - iOS模拟器运行Flutter项目出现几个错误

ios - 如何使用 IOS DJI-SDK 以编程方式从无人机下载图像

swift - 如何使用操作存储特定单元格的数据?

firebase - 任务 ':firebase_auth:compileDebugJavaWithJavac' 执行失败