diff --git a/mobile/src-tauri/Cargo.lock b/mobile/src-tauri/Cargo.lock index 1a04e177..81fe7712 100644 --- a/mobile/src-tauri/Cargo.lock +++ b/mobile/src-tauri/Cargo.lock @@ -5487,6 +5487,7 @@ version = "0.1.0" dependencies = [ "anyhow", "iroh", + "rustls", "serde", "serde_json", "tauri", diff --git a/mobile/src-tauri/Cargo.toml b/mobile/src-tauri/Cargo.toml index acb569e8..2e812aa4 100644 --- a/mobile/src-tauri/Cargo.toml +++ b/mobile/src-tauri/Cargo.toml @@ -26,6 +26,7 @@ tty7-mobile-proto = { path = "../../crates/tty7-mobile-proto" } anyhow = "1" iroh = "1.2" +rustls = { version = "0.23", default-features = false, features = ["ring"] } serde = { version = "1", features = ["derive"] } serde_json = "1" tauri = { version = "2", features = [] } diff --git a/mobile/src-tauri/src/lib.rs b/mobile/src-tauri/src/lib.rs index 9af6ee91..fa2aabdb 100644 --- a/mobile/src-tauri/src/lib.rs +++ b/mobile/src-tauri/src/lib.rs @@ -392,6 +392,11 @@ async fn pane_close(state: State<'_, Arc>, handle: u32) -> CmdResult<( #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { + // iroh builds its reqwest client with `rustls-no-provider`, which panics + // unless a process-wide provider is installed first. `ring` is the one + // already in the tree. An `Err` means one is installed, which is fine. + let _ = rustls::crypto::ring::default_provider().install_default(); + tauri::Builder::default() .setup(|app| { let dir = app.path().app_data_dir()?; diff --git a/mobile/src-tauri/tauri.conf.json b/mobile/src-tauri/tauri.conf.json index b0dbf488..a4ccf9b3 100644 --- a/mobile/src-tauri/tauri.conf.json +++ b/mobile/src-tauri/tauri.conf.json @@ -31,6 +31,11 @@ "icons/128x128@2x.png", "icons/icon.icns", "icons/icon.ico" - ] + ], + "iOS": { + "frameworks": [ + "SystemConfiguration" + ] + } } }