public bool WillFinishLaunching(UIApplication application, NSDictionary launchOptions) { SQLitePCL.Batteries_V2.Init(); var appVersion = application.GetBundleVersion(); AppCenter.Start("60ed8f1c-4c08-4598-beef-c169eb0c2e53", typeof(Analytics), typeof(Crashes)); Globals.Loggers = new LoggerFactory().AddSentry(config => { config.Dsn = "https://[email protected]/5174354"; config.Environment = "iOS"; config.Release = appVersion; }); var databasePath = Path.Combine(Paths.SharedLibrary, "Preferences.sqlite3"); Globals.Database = new SQLiteConnection(databasePath, SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.FullMutex); Globals.Database.CreateTable <KeyValueModel>(); Globals.Database.CreateTable <CloudModel>(); Globals.Database.CreateTable <PLAsset>(); Globals.Database.CreateTable <AlibabaOSS>(); Globals.Database.CreateTable <AzureBlob>(); Globals.Database.CreateTable <WebApp>(); Globals.Database.SaveSetting(UserSettings.PhotoBackupInterval, "1"); if (Globals.Database.Find <KeyValueModel>(UserSettings.EnableSharing) is null) { Globals.Database.SaveSetting(UserSettings.EnableSharing, "1"); } var sharingEnabled = false; if (Globals.Database.CheckSetting(UserSettings.EnableSharing, "1")) { sharingEnabled = true; UIApplication.SharedApplication.IdleTimerDisabled = true; } Paths.CreateCommonDirectories(); Globals.FileSystem = new SandboxedFileSystem(sharingEnabled ? Paths.Documents : null); if (PHPhotoLibrary.AuthorizationStatus == PHAuthorizationStatus.Authorized && Globals.Database.CheckSetting(UserSettings.EnbalePhotoSharing, "1")) { Globals.FileSystem.ArePhotosShared = true; } if (PHPhotoLibrary.AuthorizationStatus == PHAuthorizationStatus.Authorized && Globals.Database.CheckSetting(UserSettings.AutoBackupPhotos, "1")) { Globals.BackupWorker = new PhotoLibraryExporter(); } var appsPath = Paths.WebApps; Directory.CreateDirectory(appsPath); Globals.Storage = new AppleDataStorage(); Globals.CloudManager = new PCLocalService(Globals.Storage, Globals.Loggers, Globals.FileSystem, appsPath); Task.Run(async() => { if (!Globals.Database.CheckSetting(UserSettings.LastInstalledVersion, appVersion)) { await Globals.CloudManager.InstallApps().ConfigureAwait(false); Globals.Database.SaveSetting(UserSettings.LastInstalledVersion, appVersion); } Globals.CloudManager.StartService(); }); return(true); }