mobile: 提交 android/ios 平台脚手架与打包配置(B-58)

- flutter create 生成的 android/ ios/ 脚手架入库,服务器/使用者无需再装 Flutter
- AndroidManifest:补 INTERNET/录音/存储权限,应用名改「畅联」,开 usesCleartextTraffic(内网 http/ws)
- iOS Info.plist:麦克风/相册用途说明、ATS 放行内网明文、显示名「畅联」
- gradle:阿里云镜像优先(本网络 maven.google.com 不可达);统一 Java/Kotlin 编译目标 17;
  抬升 livekit_client compileSdk 到 36 以满足 flutter_webrtc 的 AAR 校验
- README 更新为「直接打包」流程
This commit is contained in:
KIMI
2026-08-15 13:22:25 +08:00
parent 7ce40e356f
commit d481e1bc2f
65 changed files with 1653 additions and 10 deletions
+30
View File
@@ -0,0 +1,30 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility in the flutter_test package. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:changlian/main.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(const MyApp());
// Verify that our counter starts at 0.
expect(find.text('0'), findsOneWidget);
expect(find.text('1'), findsNothing);
// Tap the '+' icon and trigger a frame.
await tester.tap(find.byIcon(Icons.add));
await tester.pump();
// Verify that our counter has incremented.
expect(find.text('0'), findsNothing);
expect(find.text('1'), findsOneWidget);
});
}