diff --git a/.changes/update-info-plist.md b/.changes/update-info-plist.md new file mode 100644 index 000000000000..b86c500a34fb --- /dev/null +++ b/.changes/update-info-plist.md @@ -0,0 +1,5 @@ +--- +"tauri-plugin": minor:feat +--- + +Added `build::mobile::update_info_plist` to allow a plugin to update the iOS project Info.plist file. diff --git a/crates/tauri-plugin/src/build/mobile.rs b/crates/tauri-plugin/src/build/mobile.rs index 070c615b3124..2ff795aca796 100644 --- a/crates/tauri-plugin/src/build/mobile.rs +++ b/crates/tauri-plugin/src/build/mobile.rs @@ -31,6 +31,23 @@ pub fn update_entitlements(f: F) -> Result<() Ok(()) } +#[cfg(target_os = "macos")] +pub fn update_info_plist(f: F) -> Result<()> { + if let (Some(project_path), Ok(app_name)) = ( + var_os("TAURI_IOS_PROJECT_PATH").map(PathBuf::from), + std::env::var("TAURI_IOS_APP_NAME"), + ) { + update_plist_file( + project_path + .join(format!("{app_name}_iOS")) + .join("Info.plist"), + f, + )?; + } + + Ok(()) +} + pub fn update_android_manifest(block_identifier: &str, parent: &str, insert: String) -> Result<()> { if let Some(project_path) = var_os("TAURI_ANDROID_PROJECT_PATH").map(PathBuf::from) { let manifest_path = project_path.join("app/src/main/AndroidManifest.xml");