-
Notifications
You must be signed in to change notification settings - Fork 43
Expand file tree
/
Copy pathREADME.md
More file actions
executable file
·107 lines (69 loc) · 4.91 KB
/
README.md
File metadata and controls
executable file
·107 lines (69 loc) · 4.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
[](https://search.maven.org/search?q=g:%22dev.vyp.stringcare%22%20AND%20a:%22library%22)
**StringCare Android** v5.0.0 — Compile-time obfuscation for strings and assets; runtime reveal in your app. GroupId: `dev.vyp.stringcare`.
Full documentation is in the [docs/](docs/) directory (getting started, configuration, API, publishing, troubleshooting).
<p align="center"><img width="10%" vspace="10" src="https://github.com/StringCare/AndroidLibrary/raw/develop/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png"></p>
<h3 align="center" style="margin-bottom:30px" vspace="20">StringCare Android Library</h3>
<p align="center"><img width="10%" vspace="20" src="https://github.com/StringCare/AndroidLibrary/raw/develop/white.png"></p>
### Installation (Kotlin DSL)
**1. Plugin** — In the project root `settings.gradle.kts`:
```kotlin
pluginManagement {
repositories {
gradlePluginPortal()
mavenCentral()
google()
}
}
// If publishing locally: includeBuild("../path/to/stringcare-android/plugin")
```
In the app (or module) `build.gradle.kts`:
```kotlin
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("dev.vyp.stringcare.plugin")
}
stringcare {
debug = false
skip = false
assetsFiles = mutableListOf("*.json")
stringFiles = mutableListOf("strings.xml")
srcFolders = mutableListOf("src/main")
}
```
**2. Library** — In the same module:
```kotlin
dependencies {
implementation("dev.vyp.stringcare:library:5.0.0")
}
```
For **Groovy** use `buildscript` / `apply plugin: 'dev.vyp.stringcare.plugin'` and `implementation 'dev.vyp.stringcare:library:5.0.0'`. See [Migration from 4.x](MIGRATION.md) if upgrading.
#### [Flutter Support](https://github.com/StringCare/stringcare)
#### [What Is StringCare](https://github.com/StringCare/AndroidLibrary/wiki/What-is-StringCare)
#### [Migration from 4.x to 5.0](MIGRATION.md)
#### [Implementation](https://github.com/StringCare/AndroidLibrary/wiki/Implementation)
#### [Strings Usage](https://github.com/StringCare/AndroidLibrary/wiki/Strings-Usage)
#### [Assets Usage](https://github.com/StringCare/AndroidLibrary/wiki/Assets-Usage)
#### [Configuration](https://github.com/StringCare/AndroidLibrary/wiki/Configuration)
#### [Publish APK](https://github.com/StringCare/AndroidLibrary/wiki/Publish-APK)
#### [Limitations](https://github.com/StringCare/AndroidLibrary/wiki/Limitations)
#### [Compatibility](https://github.com/StringCare/AndroidLibrary/wiki/Compatibility)
#### [Tasks](https://github.com/StringCare/AndroidLibrary/wiki/Tasks)
#### [Resource Tips](https://github.com/StringCare/AndroidLibrary/wiki/Resource-Tips)
**Build / CI:** This project uses the JNI native library as a Git submodule (`stringcare-jni`, e.g. stringcare-android-c). Clone with submodules: `git clone --recurse-submodules ...` or run `git submodule update --init --recursive` after clone. CI workflows must use `checkout` with `submodules: true`.
**Plugin host natives:** With submodule `stringcare-jni` and `dist/` built, the plugin mirrors the whole **`dist/`** tree (e.g. **`macos/`**, **`linux/`**, **`windows/`**) into the JAR on each **`preparePluginNativeLibraries`**. To sync that tree into **`plugin/.../internal/jni/`**, run **`./gradlew syncPluginNativesFromDist`** (root) or **`./gradlew -p plugin syncDistNativesToPluginJni`**. macOS: universal `libsignKey.dylib`; Linux/Windows: x64 + arm64 `*.so` / `*.dll`.
**Publishing (release workflow):** See [CONTRIBUTING.md](CONTRIBUTING.md) for required secrets: `NEXUS_USERNAME`, `NEXUS_PASSWORD`, `GPG_KEY_ID`, `GPG_PASSPHRASE`, `PAT`. When dispatching the release workflow, set **Publish Maven** to `true` to run the publish job (publishes both `dev.vyp.stringcare:library` and `dev.vyp.stringcare:plugin`).
<p align="center"><img width="10%" vspace="20" src="https://github.com/StringCare/AndroidLibrary/raw/develop/white.png"></p>
<p align="center"><img width="40%" vspace="20" src="https://raw.githubusercontent.com/efraespada/AndroidStringObfuscator/develop/sample.png"> <img width="40%" vspace="20" src="https://raw.githubusercontent.com/efraespada/AndroidStringObfuscator/develop/sample2.png"></p>
<p align="center"><img width="10%" vspace="20" src="https://github.com/StringCare/AndroidLibrary/raw/develop/white.png"></p>
License
-------
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.