我现在正在尝试将 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
解决我的问题希望能有所帮助
| 归档时间: |
|
| 查看次数: |
854 次 |
| 最近记录: |