iOS的Flutter风格在运行时给出了SharedPreference错误

时间:2019-07-27 13:31:36

标签: ios flutter

尝试使用构建模式运行iOS风格时遇到问题

 /Labs/Workspace/Flutter/camp-flutter/ios/Runner/GeneratedPluginRegistrant.m:6:9: fatal error:
    'shared_preferences/SharedPreferencesPlugin.h' file not found
    #import <shared_preferences/SharedPreferencesPlugin.h>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.

Flutter Doctor输出

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.14.5 18F132, locale en-IN)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
[✓] iOS tools - develop for iOS devices
[✓] Android Studio (version 3.4)
[✓] VS Code (version 1.36.1)
[✓] Connected device (1 available)

• No issues found!

其他信息

我们正在使用用于iOS构建的风格和方案,并使用以下命令来运行应用程序

flutter run --flavor abcd --target lib/main/abcd_main.dart

3 个答案:

答案 0 :(得分:1)

我认为,可以通过两种方式解决此问题。他们在下面。

我检查了一个项目,发现SharedPreferencesPlugin.h具有以下代码。

// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#import <Flutter/Flutter.h>

@interface FLTSharedPreferencesPlugin : NSObject <FlutterPlugin>
@end

此文件位于位置: .h file's location (mysiyaram是项目名称)

现在,您可能有两种方法可以解决此问题。 方案A:您使用上面的代码手动创建文件。它不包含任何特定于版本的信息。

计划B:创建另一个虚拟项目,在其中添加共享的首选项。并将文件(或文件夹结构)从虚拟项目复制到您的项目。

注意:由于我不知道结构解决方案,因此请采用此选项作为解决方法。

答案 1 :(得分:0)

嗯,假设我们可以通过将flutter从1.2更改为1.5来运行构建样式,那会不会更容易?

您使用一个构建委托,您的构建配置将使用一个新的目标标志,该标志通过dart文件指向您的新构建样式。.请参阅我的中等职位以及其他一些在ti上谈论ti的人...

BuildExtensions

唯一的麻烦是您偶尔会擦拭模拟器或设备,因为它具有较旧的构建风格,但通常可以使用

答案 2 :(得分:0)

我刚刚尝试了调试和发布版本,此解决方法有一些规则:

文件夹以添加.h文件 在模拟器上调试=> ios/Debug-iphonesimulator 在iOS上调试=>'ios / Debug-iphoneos' 在iOS上发布=>'ios / Release-iphoneos'

顺便说一句,使用此变通办法,我可以使用许多第3个库以所有模式构建项目。