Ios Twitter登录因TWTRInvalidInitializationException崩溃

Ios Twitter登录因TWTRInvalidInitializationException崩溃,ios,swift,twitter,Ios,Swift,Twitter,当我尝试使用twitter登录时,我的应用程序崩溃,并显示一条错误消息 在应用程序设置中未设置有效的Twitter工具包URL方案的情况下尝试登录或喜欢推文。有关更多信息,请参阅。 我已经使用fabric应用了twitter登录。但是在将我的代码从swift 2.3转换为swift 3后,它开始崩溃。我也更新了我的pods,并重新应用了在没有fabric的情况下再次登录的步骤,因为fabric现在没有显示twitter选项。但崩溃仍然存在。如果我理解正确,您将Twitter与Fabric一起使用

当我尝试使用twitter登录时,我的应用程序崩溃,并显示一条错误消息

在应用程序设置中未设置有效的Twitter工具包URL方案的情况下尝试登录或喜欢推文。有关更多信息,请参阅。


我已经使用fabric应用了twitter登录。但是在将我的代码从swift 2.3转换为swift 3后,它开始崩溃。我也更新了我的pods,并重新应用了在没有fabric的情况下再次登录的步骤,因为fabric现在没有显示twitter选项。但崩溃仍然存在。

如果我理解正确,您将Twitter与Fabric一起使用,因此我假设您的AppDelegate中有类似的内容:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    Fabric.with([Twitter.self])    
    return true
}
请注意,由于谷歌收购了Fabric,您应该使用:

Twitter.sharedInstance().start(withConsumerKey:"yourAppKey", consumerSecret:"yourAppSecret")
您还应该将Info.plist配置为包含TwitterKit的URL方案,如下所示:

  • 在CbundleUrlSchemes中,您应该具有具有此值的字符串键 “twitterkit yourAppKey”
  • 在LSApplicationQueriesSchemes中,您可以 应该添加“twitter”和“twitterauth”
  • 供参考:


    注:请确保CbundleUrlSchemes中的“twitterkit yourAppKey”是第0项,当前版本(3.0.3)中存在一些奇怪的错误,如果不是第一项,它就会崩溃。

    如上面所述,我正在这样做,它崩溃了:

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fbmykey</string>
                <string>twitterkit-mykey</string>
            </array>
        </dict>
    </array>
    
    CbundleUrlTypes
    循环流化床锅炉方案
    fbmykey
    twitterkit mykey
    
    然后换成这个,它就起作用了:

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>twitterkit-mykey</string>
                <string>fbmykey</string>
            </array>
        </dict>
    </array>
    
    CbundleUrlTypes
    循环流化床锅炉方案
    twitterkit mykey
    fbmykey
    
    最后一部分(确保
    twitterkit-{yourAppKey}
    是第0项)为我做了这件事,谢谢!他们为Twitter.sharedInstance().start()提供的代码(…无法复制粘贴。您必须手动将密钥放入。我只是在没有查看的情况下复制粘贴了它,他们在代码示例中设置了假密钥和密码。