扑Xcode中加入第一方的依赖后构建失败

问题描述 投票:2回答:3

同时建立使用Android Studio和颤振SDK的应用程序,我决定让shared_preferences插件和玩它。不久之后,我注意到,虽然这个应用程序在Android设备上运行的罚款,也不会建立到模拟器上运行。在试图找出解决的办法,我尝试直接从Xcode中运行,但再一次,它也没有出现。

继错误,我打开GeneratedPluginRegistrant.m文件,其中编辑器中只是说“shared_preferences /找不到SharedPreferencesPlugin.h文件”

在终端运行flutter doctor没有给出任何有用的信息和运行pod install没有帮助。

我也尝试添加FlutterFire插件,它们都产生相同的结果。

任何帮助表示赞赏!

flutter flutter-dependencies
3个回答
4
投票

我认为这是一个已知的问题https://github.com/flutter/flutter/issues/15099#issuecomment-372375566

要在#15437应用修复的修复着陆前,添加[这些行]到ios/Podfile创建基于SWIFT的扑项目。

我认为手段https://github.com/mravn-google/flutter/blob/e0c73220a6f69d341ce436244212277d83bc189b/packages/flutter_tools/templates/cocoapods/Podfile-swift#L70-L73

 # workaround for https://github.com/CocoaPods/CocoaPods/issues/7463
 target.headers_build_phase.files.each do |file|
   file.settings = { 'ATTRIBUTES' => ['Public'] }
 end

1
投票

我也有这个问题了很多天,我的iOS应用颤振和做了几乎所有在这里和在github上解释。

我的解决办法(1)“扑升级”后称“扑运行”(也必须运行模拟器或该命令的正确工作连接设备)和(2)通过命令行应用程序的成功建设,后提到以上,通过产品和Xcode将其关闭,并建立以常规方式 - >生成。


0
投票

Shared Preference的概念是特定的Android和iOS的不可用。如果你想保存的东西,我建议你使用Method Channel(Platform Channel)Flutter将其发送至本机层并保存。

对于iOS使用userDefaults来保存数据。

附加信息:

如何使用共享偏好来保存数据?

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
Editor editor = pref.edit();

editor.putBoolean("key_name", true); // Storing boolean - true/false
editor.putString("key_name", "string value"); // Storing string
editor.putInt("key_name", "int value"); // Storing integer
editor.putFloat("key_name", "float value"); // Storing float
editor.putLong("key_name", "long value"); // Storing long

editor.commit(); // Don't forget to commit when your changes are done.

检索数据

// returns stored preference value
// If value is not present return second param value - In this case null
pref.getString("key_name", null); // getting String
pref.getInt("key_name", null); // getting Integer
pref.getFloat("key_name", null); // getting Float
pref.getLong("key_name", null); // getting Long
pref.getBoolean("key_name", null); // getting boolean

如何使用userDefaults来保存数据?

NSString *valueToSave = @"someValue";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave 
forKey:@"preferenceName"];
[[NSUserDefaults standardUserDefaults] synchronize];

若要检索保存的数据

NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@"preferenceName"];

更新:

有一个扑plugin它做到这一点对我们来说。

添加到您的pubspec.yaml文件

dependencies:
shared_preferences: "^0.4.0"

而在命令行中的项目的根目录中运行。

$ flutter packages get

现在,在你的飞镖代码,你可以使用,

import 'package:shared_preferences/shared_preferences.dart';
© www.soinside.com 2019 - 2024. All rights reserved.