56 lines
2.6 KiB
Makefile
56 lines
2.6 KiB
Makefile
.PHONY: runner run test lint apk ipa build-web rename_release_apk jinzhi_shorebird_android jinzhi_shorebird_ios jinzhi_shorebird_android_patch jinzhi_shorebird_ios_patch
|
|
|
|
WEB_API_URL ?= https://jinzhi.api.local
|
|
WEB_BASE_HREF ?= /flutter/
|
|
SHOREBIRD_TOKEN_FILE ?= $(HOME)/.shorebird_tokens/jinzhi.env
|
|
SHOREBIRD = if [ ! -f "$(SHOREBIRD_TOKEN_FILE)" ]; then echo "错误: 缺少 Shorebird token 文件: $(SHOREBIRD_TOKEN_FILE)"; exit 1; fi; set -a; . "$(SHOREBIRD_TOKEN_FILE)"; set +a; shorebird
|
|
GITVERSION := $(shell git describe --tags --always --dirty 2>/dev/null || git rev-parse --short HEAD)
|
|
RELEASE_VERSION ?= latest
|
|
PATCH_TRACK ?= staging
|
|
COMMON_DART_DEFINES := --dart-define="GITVERSION=$(GITVERSION)"
|
|
APP_VERSION := $(shell sed -n 's/^version: *//p' pubspec.yaml | head -n 1)
|
|
APK_VERSION_NAME := $(subst .,,${word 1,$(subst +, ,$(APP_VERSION))})
|
|
APK_VERSION_CODE := $(word 2,$(subst +, ,$(APP_VERSION)))
|
|
RELEASE_APK := jinzhi-$(APK_VERSION_NAME)-$(APK_VERSION_CODE)-release.apk
|
|
RELEASE_APK_DIR := build/app/outputs/flutter-apk
|
|
|
|
runner:
|
|
dart run build_runner build --delete-conflicting-outputs
|
|
|
|
run:
|
|
flutter run $(COMMON_DART_DEFINES) --dart-define=JINZHI_API_BASE_URL=http://localhost:8088
|
|
|
|
test:
|
|
flutter test
|
|
|
|
lint:
|
|
flutter analyze
|
|
|
|
apk:
|
|
flutter build apk --obfuscate --split-debug-info=./build/symbos $(COMMON_DART_DEFINES) --release --target-platform android-arm64
|
|
$(MAKE) rename_release_apk
|
|
|
|
rename_release_apk:
|
|
@test -f "$(RELEASE_APK_DIR)/app-release.apk" || (echo "错误: 未找到 release APK: $(RELEASE_APK_DIR)/app-release.apk"; exit 1)
|
|
cp "$(RELEASE_APK_DIR)/app-release.apk" "$(RELEASE_APK_DIR)/$(RELEASE_APK)"
|
|
@echo "Release APK: $(RELEASE_APK_DIR)/$(RELEASE_APK)"
|
|
|
|
ipa:
|
|
flutter build ipa --obfuscate --split-debug-info=./build/symbos $(COMMON_DART_DEFINES) --release
|
|
|
|
jinzhi_shorebird_android:
|
|
$(SHOREBIRD) release android --flutter-version=3.35.6 --split-debug-info=./build/symbos --target-platform android-arm64 --artifact apk -- --dart-define="GITVERSION=$(GITVERSION)"
|
|
$(MAKE) rename_release_apk
|
|
|
|
jinzhi_shorebird_ios:
|
|
$(SHOREBIRD) release ios --flutter-version=3.35.6 --split-debug-info=./build/symbos -- --dart-define="GITVERSION=$(GITVERSION)"
|
|
|
|
jinzhi_shorebird_android_patch:
|
|
$(SHOREBIRD) patch --platforms=android --release-version=$(RELEASE_VERSION) --split-debug-info=./build/symbos --track=$(PATCH_TRACK) -- --dart-define="GITVERSION=$(GITVERSION)"
|
|
|
|
jinzhi_shorebird_ios_patch:
|
|
$(SHOREBIRD) patch --platforms=ios --release-version=$(RELEASE_VERSION) --split-debug-info=./build/symbos --track=$(PATCH_TRACK) -- --dart-define="GITVERSION=$(GITVERSION)"
|
|
|
|
build-web:
|
|
API_BASE_URL=$(WEB_API_URL) BASE_HREF=$(WEB_BASE_HREF) bash scripts/build_web.sh
|