我目前正在使用Visual Studio Mac 2019来构建我的iOs Xamarin Forms应用程序。
我的应用程序Akavache存储持久性数据,特别是我使用其BlobCache的凭据。安全存储器,但遗憾的是,数据无法持久存在。
我发现我应该添加以下任一项:1.链接器类
using System;
using Akavache.Sqlite3;
namespace NameSpace.iOS
{
[Preserve]
public static class LinkerPreserve
{
static LinkerPreserve()
{
var persistentName = typeof(SQLitePersistentBlobCache).FullName;
var encryptedName = typeof(SQLiteEncryptedBlobCache).FullName;
}
}
public class PreserveAttribute : Attribute
{
}
}
或
2.初始化程序
Akavache.Registrations.Start("FollowTheDrop");
Akavache:保存的价值在iOS应用程序重新启动后不可用
但每次我在上面添加解决方案时,在构建期间都会出现以下错误
MTOUCH:错误MT2101:无法解析引用"System.Int32"SQLitePCL.raw::sqlite3_bind_blob(SQLitePCL.sqlite3_stmt,System.Int32,System.Byte[](',从方法"System.Void"中引用Akavache.Sqlite3.BulkInsertSqliteOperation/<gt;c_DisplayClass7_0::b_0(('在'SQLitePCLRaw.core中,版本=1.1.13.388,文化=中性,PublicKeyToken=1488e028ca7ab535'。
我是否遗漏了导致此错误的内容?
它是通过更新下面的相互依赖的Nuget包来解决的:
- Akavache 9.0.1
- 飞溅14.3.1
- 连射2.4.47
最后,当添加链接器静态类时,请考虑添加一个Preserve属性,如下所示:
[Preserve]
public static class LinkerPreserve
{
static LinkerPreserve()
{
var persistentName = typeof(SQLitePersistentBlobCache).FullName;
var encryptedName = typeof(SQLiteEncryptedBlobCache).FullName;
}
}
public class PreserveAttribute : Attribute
{
}