Create a Tauri v2 plugin that uses EncryptedSharedPreferences (Android Keystore) on Android and the system keychain (keyring crate) on desktop. This replaces the direct onyx-core keyring calls in the Tauri app, which failed on Android because keyring-storage was feature-gated to desktop only. - New plugin crate at apps/tauri/tauri-plugin-credentials/ with Kotlin Android code and Rust desktop fallback - Update all Tauri credential commands to use the plugin API - Add security-crypto dependency for Android and ProGuard rule for Tink - Remove onyx-core/keyring-storage dependency from Tauri app features
42 lines
984 B
Prolog
42 lines
984 B
Prolog
-keep class app.tauri.** {
|
|
@app.tauri.JniMethod public <methods>;
|
|
native <methods>;
|
|
}
|
|
|
|
-keep class app.tauri.plugin.JSArray {
|
|
public <init>(...);
|
|
}
|
|
|
|
-keepclassmembers class org.json.JSONArray {
|
|
public put(...);
|
|
}
|
|
|
|
-keep class app.tauri.plugin.JSObject {
|
|
public <init>(...);
|
|
public put(...);
|
|
}
|
|
|
|
-keep @app.tauri.annotation.TauriPlugin public class * {
|
|
@app.tauri.annotation.Command public <methods>;
|
|
@app.tauri.annotation.PermissionCallback <methods>;
|
|
@app.tauri.annotation.ActivityCallback <methods>;
|
|
@app.tauri.annotation.Permission <methods>;
|
|
public <init>(...);
|
|
}
|
|
|
|
-keep @app.tauri.annotation.InvokeArg public class * {
|
|
*;
|
|
}
|
|
|
|
-keep @com.fasterxml.jackson.databind.annotation.JsonDeserialize public class * {
|
|
*;
|
|
}
|
|
|
|
-keep @com.fasterxml.jackson.databind.annotation.JsonSerialize public class * {
|
|
*;
|
|
}
|
|
|
|
-keep class * extends com.fasterxml.jackson.databind.JsonDeserializer { *; }
|
|
|
|
-keep class * extends com.fasterxml.jackson.databind.JsonSerializer { *; }
|