diff --git a/.changes/proguard.md b/.changes/proguard.md new file mode 100644 index 000000000..69cd62acc --- /dev/null +++ b/.changes/proguard.md @@ -0,0 +1,5 @@ +--- +"wry": "patch" +--- + +On Android, generate a `proguard-wry.pro` file that could be used to keep the necessary symbols for wry when using minification. diff --git a/build.rs b/build.rs index f116eae18..37994df6c 100644 --- a/build.rs +++ b/build.rs @@ -82,7 +82,18 @@ fn main() { &std::env::var(&class_init_env).unwrap_or_default(), ); - let mut out = String::from("/* THIS FILE IS AUTO-GENERATED. DO NOT MODIFY!! */\n\n"); + let auto_generated_comment = match file + .path() + .extension() + .unwrap_or_default() + .to_str() + .unwrap_or_default() + { + "pro" => "# THIS FILE IS AUTO-GENERATED. DO NOT MODIFY!!\n\n", + "kt" => "/* THIS FILE IS AUTO-GENERATED. DO NOT MODIFY!! */\n\n", + _ => "String::new()", + }; + let mut out = String::from(auto_generated_comment); out.push_str(&content); fs::write(kotlin_out_dir.join(file.file_name()), out).expect("Failed to write kotlin file"); diff --git a/src/webview/android/kotlin/proguard-wry.pro b/src/webview/android/kotlin/proguard-wry.pro new file mode 100644 index 000000000..6573208c4 --- /dev/null +++ b/src/webview/android/kotlin/proguard-wry.pro @@ -0,0 +1,36 @@ +# Copyright 2020-2023 Tauri Programme within The Commons Conservancy +# SPDX-License-Identifier: Apache-2.0 +# SPDX-License-Identifier: MIT + +-keep class {{package}}.* { + native ; +} + +-keep class {{package}}.WryActivity { + {{package}}.RustWebView m_webview; + + public (...); + + void setM_webview({{package}}.RustWebView); + {{package}}.RustWebView getM_webview(); + + java.lang.Class getAppClass(...); + java.lang.String getVersion(); +} + +-keep class {{package}}.Ipc { + public (...); + + @android.webkit.JavascriptInterface public ; +} + +-keep class {{package}}.RustWebView { + public (...); + + void loadUrlMainThread(...); + void setAutoPlay(...); +} + +-keep class {{package}}.RustWebChromeClient,{{package}}.RustWebViewClient { + public (...); +} \ No newline at end of file