Skip to content

Commit 199d8f1

Browse files
committed
init
0 parents  commit 199d8f1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+4085
-0
lines changed

.gitignore

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Miscellaneous
2+
*.class
3+
*.log
4+
*.pyc
5+
*.swp
6+
.DS_Store
7+
.atom/
8+
.buildlog/
9+
.history
10+
.svn/
11+
migrate_working_dir/
12+
13+
# IntelliJ related
14+
*.iml
15+
*.ipr
16+
*.iws
17+
.idea/
18+
19+
# The .vscode folder contains launch configuration and tasks you configure in
20+
# VS Code which you may wish to be included in version control, so this line
21+
# is commented out by default.
22+
#.vscode/
23+
24+
# Flutter/Dart/Pub related
25+
**/doc/api/
26+
**/ios/Flutter/.last_build_id
27+
.dart_tool/
28+
.flutter-plugins
29+
.flutter-plugins-dependencies
30+
.packages
31+
.pub-cache/
32+
.pub/
33+
/build/
34+
35+
# Symbolication related
36+
app.*.symbols
37+
38+
# Obfuscation related
39+
app.*.map.json
40+
41+
# Android Studio will place build artifacts here
42+
/android/app/debug
43+
/android/app/profile
44+
/android/app/release
45+

.metadata

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled and should not be manually edited.
5+
6+
version:
7+
revision: "d693b4b9dbac2acd4477aea4555ca6dcbea44ba2"
8+
channel: "stable"
9+
10+
project_type: app
11+
12+
# Tracks metadata for the flutter migrate command
13+
migration:
14+
platforms:
15+
- platform: root
16+
create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2
17+
base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2
18+
- platform: android
19+
create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2
20+
base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2
21+
22+
# User provided section
23+
24+
# List of Local paths (relative to this file) that should be
25+
# ignored by the migrate tool.
26+
#
27+
# Files that are not part of the templates will be ignored by default.
28+
unmanaged_files:
29+
- 'lib/main.dart'
30+
- 'ios/Runner.xcodeproj/project.pbxproj'

BUILD_INSTRUCTIONS.md

Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
# 构建说明
2+
3+
本文档提供详细的构建步骤和故障排除指南。
4+
5+
## 前置要求
6+
7+
### 必需软件
8+
9+
1. **Flutter SDK 3.0+**
10+
```bash
11+
flutter --version # 检查版本
12+
```
13+
14+
2. **Android Studio****Android SDK**
15+
- Android SDK Platform 23+
16+
- Android SDK Build-Tools 36.0.0
17+
- Android SDK Command-line Tools
18+
19+
3. **Java Development Kit (JDK) 11+**
20+
```bash
21+
java -version # 检查版本
22+
```
23+
24+
4. **Gradle 8.11.1+**
25+
- 项目已包含Gradle Wrapper,会自动下载
26+
27+
## 构建步骤
28+
29+
### 1. 克隆项目
30+
31+
```bash
32+
git clone <repository-url>
33+
cd wx-crypt
34+
```
35+
36+
### 2. 安装Flutter依赖
37+
38+
```bash
39+
flutter pub get
40+
```
41+
42+
### 3. 检查环境
43+
44+
```bash
45+
flutter doctor
46+
```
47+
48+
确保所有检查项都通过(或至少Android相关项通过)。
49+
50+
### 4. 构建APK
51+
52+
#### 调试版
53+
54+
```bash
55+
flutter build apk
56+
```
57+
58+
#### 发布版(推荐)
59+
60+
```bash
61+
flutter clean
62+
flutter pub get
63+
flutter build apk --release
64+
```
65+
66+
构建完成后,APK文件位于:
67+
```
68+
build/app/outputs/flutter-apk/app-release.apk
69+
```
70+
71+
### 5. 安装APK
72+
73+
```bash
74+
# 使用adb安装
75+
adb install build/app/outputs/flutter-apk/app-release.apk
76+
77+
# 或直接传输到设备手动安装
78+
```
79+
80+
## 常见构建问题
81+
82+
### 1. Gradle版本不兼容
83+
84+
**错误信息:**
85+
```
86+
Your project's Gradle version is incompatible with the Java version
87+
```
88+
89+
**解决方案:**
90+
- 确保使用Java 11或更高版本
91+
- 检查 `android/gradle/wrapper/gradle-wrapper.properties` 中的Gradle版本
92+
- 当前项目使用Gradle 8.11.1
93+
94+
### 2. Android Gradle Plugin版本问题
95+
96+
**错误信息:**
97+
```
98+
Plugin [id: 'com.android.application'] was not found
99+
```
100+
101+
**解决方案:**
102+
- 检查 `android/build.gradle` 中的AGP版本
103+
- 当前项目使用AGP 8.9.1
104+
- 确保网络连接正常,可以访问Maven仓库
105+
106+
### 3. Build Tools版本缺失
107+
108+
**错误信息:**
109+
```
110+
Failed to find Build Tools revision 35.0.0
111+
```
112+
113+
**解决方案:**
114+
- 使用Android SDK Manager安装Build Tools 36.0.0
115+
- 或让Gradle自动选择可用版本(当前配置已支持)
116+
117+
### 4. 网络下载失败
118+
119+
**错误信息:**
120+
```
121+
Could not GET 'https://dl.google.com/...' Remote host terminated the handshake
122+
```
123+
124+
**解决方案:**
125+
- 配置代理或VPN
126+
- 使用国内镜像(项目已配置Aliyun Maven镜像)
127+
- 检查网络连接
128+
129+
### 5. Kotlin编译错误
130+
131+
**错误信息:**
132+
```
133+
Unresolved reference: xxx
134+
```
135+
136+
**解决方案:**
137+
- 检查Kotlin版本兼容性
138+
- 当前项目使用Kotlin 2.1.0
139+
- 运行 `flutter clean` 后重新构建
140+
141+
### 6. BouncyCastle依赖问题
142+
143+
**错误信息:**
144+
```
145+
Could not resolve: org.bouncycastle:bcpg-jdk15on
146+
```
147+
148+
**解决方案:**
149+
- 检查网络连接
150+
- 确保 `android/app/build.gradle` 中正确配置了BouncyCastle依赖
151+
- 当前版本:`bcpg-jdk15on``bcprov-jdk15on`
152+
153+
## 调试技巧
154+
155+
### 查看详细日志
156+
157+
```bash
158+
# Flutter日志
159+
flutter run --verbose
160+
161+
# Android日志
162+
adb logcat | grep PGPEncryptionHelper
163+
adb logcat | grep Flutter
164+
```
165+
166+
### 清理构建缓存
167+
168+
```bash
169+
# 清理Flutter构建
170+
flutter clean
171+
172+
# 清理Gradle缓存
173+
cd android
174+
./gradlew clean
175+
cd ..
176+
177+
# 清理所有
178+
rm -rf build/
179+
rm -rf android/.gradle/
180+
rm -rf android/app/build/
181+
```
182+
183+
### 检查依赖
184+
185+
```bash
186+
# 检查Flutter依赖
187+
flutter pub outdated
188+
189+
# 检查Android依赖
190+
cd android
191+
./gradlew dependencies
192+
```
193+
194+
## 性能优化
195+
196+
### 减小APK大小
197+
198+
1. **启用代码混淆**(已配置)
199+
2. **启用资源压缩**(已配置)
200+
3. **使用Split APKs**(可选)
201+
202+
```bash
203+
# 构建Split APKs(按ABI)
204+
flutter build apk --split-per-abi
205+
```
206+
207+
### 构建时间优化
208+
209+
1. **启用Gradle缓存**
210+
2. **使用Gradle Daemon**
211+
3. **配置代理加速下载**
212+
213+
## 签名配置(可选)
214+
215+
如果需要发布到应用商店,需要配置签名:
216+
217+
1. 创建密钥库:
218+
```bash
219+
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
220+
```
221+
222+
2. 配置签名(编辑 `android/app/build.gradle`):
223+
```gradle
224+
android {
225+
...
226+
signingConfigs {
227+
release {
228+
storeFile file('path/to/key.jks')
229+
storePassword 'your-store-password'
230+
keyAlias 'key'
231+
keyPassword 'your-key-password'
232+
}
233+
}
234+
buildTypes {
235+
release {
236+
signingConfig signingConfigs.release
237+
}
238+
}
239+
}
240+
```
241+
242+
## 验证构建
243+
244+
构建完成后,验证APK:
245+
246+
```bash
247+
# 检查APK信息
248+
aapt dump badging build/app/outputs/flutter-apk/app-release.apk
249+
250+
# 安装并测试
251+
adb install -r build/app/outputs/flutter-apk/app-release.apk
252+
```
253+
254+
## 环境变量(可选)
255+
256+
可以设置以下环境变量加速构建:
257+
258+
```bash
259+
# Gradle JVM参数
260+
export GRADLE_OPTS="-Xmx2048m -XX:MaxPermSize=512m"
261+
262+
# Android SDK路径
263+
export ANDROID_HOME=$HOME/Library/Android/sdk
264+
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
265+
```
266+
267+
## 故障排除检查清单
268+
269+
- [ ] Flutter SDK版本正确(3.0+)
270+
- [ ] Java版本正确(11+)
271+
- [ ] Android SDK已安装并配置
272+
- [ ] 网络连接正常(可以访问Maven仓库)
273+
- [ ] 已运行 `flutter pub get`
274+
- [ ] 已运行 `flutter clean`(如果遇到奇怪错误)
275+
- [ ] Gradle版本兼容(8.11.1+)
276+
- [ ] Android Gradle Plugin版本正确(8.9.1)
277+
- [ ] Kotlin版本正确(2.1.0)
278+
- [ ] 所有依赖都已下载
279+
280+
## 获取帮助
281+
282+
如果遇到问题:
283+
284+
1. 查看完整错误日志
285+
2. 运行 `flutter doctor -v` 检查环境
286+
3. 查看本文档的故障排除部分
287+
4. 提交Issue并附上错误日志

0 commit comments

Comments
 (0)