使用 Flutter 安装 `flutter_twitter_login` 和 `TwitterKit` 的问题

fp.*_*key 7 cocoapods flutter

我现在正在尝试将 Flutter 制作的应用程序构建到 iOS 上。但是,我遇到了包括所有依赖项在内的问题(如下所示)。当我第一次构建应用程序时,它会运行pod install并且一切正常,直到它开始运行预安装挂钩,在那里我收到一大块错误消息(如下)。我可以从中看出我有一些问题flutter_twitter_login(其中一条错误消息说明了有关 twitter 的内容),并且我的 podfile 存在问题(错误消息要求我调出最低版本的 iOS)。此外,如果我尝试再次运行它(更改 podfile 以便它不会抱怨最低版本的事情),它会给我一个错误,说它找不到<TwitterKit/TwitterKit.h>(下面的完整错误消息)。

我试图通过构建复制此示例程序flutter_twitter_login,它是能够建立具有完全相同的发现pubspec.yaml。我还注意到,在 中/path/to/project/ios/Pods/TwitterKit/iOS/TwitterKit.framework/Headers/,并不TwitterKit.h像错误所说的那样,而是在我为复制错误而制作的项目中。

所以我认为 cocoapods 安装 TwitterKit 的方式有问题,而且我收到抱怨没有在自动生成的 podfile 中调用最低 iOS 版本的事实表明,它的制作方式有些有趣。但是,我不确定如何继续调试,因为问题显然不pubspec.yaml在于 ,因为我拥有的文件可以成功构建其他项目,而且我的理解是 podfile 直接来自pubspec.yaml.

代码片段和错误消息

我有这个pubspec.yaml(除此之外的所有内容都来自模板):

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^0.2.5
  firebase_analytics: ^1.0.4
  http: "^0.11.3+17"
  firebase_auth: 0.6.2+1
  google_sign_in: ^3.2.1
  flutter_twitter_login: "^1.1.0"
  fluttertoast: ^2.0.7
  flutter_svg: ^0.6.1+1
Run Code Online (Sandbox Code Playgroud)

cocoapods 运行预安装钩子时的大块错误消息:

      - Running pre install hooks
    [!] The 'Pods-Runner' target has transitive dependencies that include static binaries: (/path/to/project/ios/Pods/TwitterKit/iOS/TwitterKit.framework)

    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:81:in `block (2 levels) in verify_no_static_framework_transitive_dependencies'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:73:in `each'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:73:in `block in verify_no_static_framework_transitive_dependencies'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:70:in `each'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:70:in `verify_no_static_framework_transitive_dependencies'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer/xcode/target_validator.rb:36:in `validate!'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer.rb:415:in `validate_targets'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/installer.rb:118:in `install!'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command/install.rb:41:in `run'
    /Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:52:in `run'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/bin/pod:55:in `<top (required)>'
    /usr/local/Cellar/cocoapods/1.5.3/libexec/bin/pod:22:in `load'
    /usr/local/Cellar/cocoapods/1.5.3/libexec/bin/pod:22:in `<main>'

Error output from CocoaPods:
?

    [!] Automatically assigning platform `ios` with version `8.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
Run Code Online (Sandbox Code Playgroud)

找不到TwitterKit.h

Error output from Xcode build:
?
    ** BUILD FAILED **


Xcode's output:
?
    /path/to/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_twitter_login-1.1.0/ios/Classes/TwitterLoginPlugin.m:2:9: fatal error: 'TwitterKit/TwitterKit.h' file not found
    #import <TwitterKit/TwitterKit.h>
            ^~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.
Run Code Online (Sandbox Code Playgroud)

小智 0

我遇到了类似的问题,我在这里找到答案, 在此处输入链接描述

所以重要的部分是

change #import <TwitterKit/TwitterKit.h> to #import <TwitterKit/TWTRKit.h>
in file TwitterLoginPlugin.m 
Run Code Online (Sandbox Code Playgroud)

之后去

flutter_twitter_login.podspec
Run Code Online (Sandbox Code Playgroud)

并添加这2个框架

TwitterKit.framework,TwitterCore.framework
Run Code Online (Sandbox Code Playgroud)

就像照片中一样 在此输入图像描述

之后再次运行 pod install

解决我的问题希望能有所帮助