MAUIでiOSアプリの開発!

MAUIを使ったiOSアプリの開発についての技術的なメモです。

SQLiteのdbファイルをアプリに埋め込む

事前に用意したdbファイルをアプリに埋め込む方法について。

 

以下のサイトを参考にさせていただきました。

Xamarin.FormsでSQLiteのDBを埋め込んでアプリを配布する - nuits.jp blog

 

ポイントは以下です。

・dbファイルをXamarinプロジェクトに追加して、”埋め込みリソース”にする。

iOS上のdbファイルが格納されるパス「Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "sqlite.db");」に、ファイルが存在されるかをチェック

・ファイルが存在しなければ、埋め込んでいたdbファイルをコピーする。

 

こんな感じのコードになりました。

    
public SQLiteDB()
{
    string path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "sqlite.db");

    if (!File.Exists(path))
    {
        var asm = typeof(App).GetTypeInfo().Assembly;
        using (var inStream = asm.GetManifestResourceStream("Test.sqlite.db"))
        {
            using (var outStream = new FileStream(path, FileMode.Create))
            {
                inStream.CopyTo(outStream);
                outStream.Flush();
            }
        }
    }
}