diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 65a00789..4494055e 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -28,6 +28,8 @@ jobs: - name: Build iOS run: | + chmod +x lib/scripts/build.sh + lib/scripts/build.sh flutter build ios --release --no-codesign ln -sf ./build/ios/iphoneos Payload zip -r9 ios-release-no-sign.ipa Payload/runner.app diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 25112a28..35def9d3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -45,7 +45,10 @@ jobs: fi - name: flutter build apk - run: flutter build apk --release --split-per-abi + run: | + chmod +x lib/scripts/build.sh + lib/scripts/build.sh + flutter build apk --release --split-per-abi - name: 上传 uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index 55e2eaf3..7b1ebb10 100644 --- a/.gitignore +++ b/.gitignore @@ -133,4 +133,6 @@ app.*.symbols !**/ios/**/default.perspectivev3 !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages !/dev/ci/**/Gemfile.lock -!.vscode/settings.json \ No newline at end of file +!.vscode/settings.json + +/lib/build_config.dart \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 7087f22b..3bf55098 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:PiliPalaX/build_config.dart'; import 'package:PiliPalaX/utils/cache_manage.dart'; import 'package:flex_seed_scheme/flex_seed_scheme.dart'; import 'package:flutter/services.dart'; @@ -58,6 +59,9 @@ void main() async { SmartDialog.config.loading = SmartConfigLoading(backType: SmartBackType.normal); // 异常捕获 logo记录 + final String buildConfig = ''' +Commit Hash: ${BuildConfig.commitHash} +Build Time: ${BuildConfig.buildTime}'''; final Catcher2Options debugConfig = Catcher2Options( SilentReportMode(), [ @@ -65,13 +69,25 @@ void main() async { ConsoleHandler( enableDeviceParameters: false, enableApplicationParameters: false, + enableCustomParameters: true, ) ], + customParameters: { + 'BuildConfig': buildConfig, + }, ); final Catcher2Options releaseConfig = Catcher2Options( SilentReportMode(), - [FileHandler(await getLogsPath())], + [ + FileHandler(await getLogsPath()), + ConsoleHandler( + enableCustomParameters: true, + ) + ], + customParameters: { + 'BuildConfig': buildConfig, + }, ); Catcher2( diff --git a/lib/pages/about/index.dart b/lib/pages/about/index.dart index 583d311e..2a4b1eba 100644 --- a/lib/pages/about/index.dart +++ b/lib/pages/about/index.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:PiliPalaX/build_config.dart'; import 'package:PiliPalaX/http/constants.dart'; import 'package:PiliPalaX/services/loggeer.dart'; import 'package:cookie_jar/cookie_jar.dart'; @@ -90,6 +91,17 @@ class _AboutPageState extends State { style: subTitleStyle), ), ), + ListTile( + title: Text( + ''' +Commit Hash: ${BuildConfig.commitHash} +Build Time: ${BuildConfig.buildTime}''', + style: TextStyle(fontSize: 14), + ), + leading: const Icon(Icons.info_outline), + onTap: () => Utils.launchURL( + 'https://github.com/bggRGjQaUbCoE/PiliPalaX/commit/${BuildConfig.commitHash}'), + ), // Obx( // () => ListTile( // onTap: () => _aboutController.onUpdate(), diff --git a/lib/scripts/build.sh b/lib/scripts/build.sh index b7586457..515d0e12 100644 --- a/lib/scripts/build.sh +++ b/lib/scripts/build.sh @@ -1 +1,16 @@ -flutter build apk --target-platform android-arm64 --split-per-abi \ No newline at end of file +#!/bin/bash + +if [[ "$OSTYPE" == "darwin"* ]]; then + build_time=$(date -u -v+8H +"%Y-%m-%d %H:%M:%S") +else + build_time=$(date -u +"%Y-%m-%d %H:%M:%S" -d "+8 hours") +fi + +commit_hash=$(git rev-parse HEAD) + +cat < lib/build_config.dart +class BuildConfig { + static const String buildTime = '$build_time'; + static const String commitHash = '$commit_hash'; +} +EOL