Compare commits
No commits in common. "develop_sky" and "v1.0.3" have entirely different histories.
develop_sk
...
v1.0.3
@ -1,251 +0,0 @@
|
|||||||
name: Flutter CI - Basic Setup
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master_sky
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- master_sky
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# 基础设置任务:检出代码、提取版本号
|
|
||||||
basic-setup:
|
|
||||||
name: 🔧 Basic Setup
|
|
||||||
runs-on: sky
|
|
||||||
steps:
|
|
||||||
# 1. 检出代码
|
|
||||||
- name: Checkout Code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
|
|
||||||
# 2. 提取版本号
|
|
||||||
- name: Extract Version
|
|
||||||
id: version
|
|
||||||
run: |
|
|
||||||
# 获取最新的tag(按版本号排序,匹配vX.X.X_sky格式)
|
|
||||||
LATEST_TAG=$(git tag --list "v*.*.*_sky" --sort=-version:refname | head -1)
|
|
||||||
|
|
||||||
# 如果没有找到tag,使用默认值
|
|
||||||
if [ -z "$LATEST_TAG" ]; then
|
|
||||||
LATEST_TAG="v1.0.0_sky"
|
|
||||||
echo "📌 No tags found, using default: $LATEST_TAG"
|
|
||||||
else
|
|
||||||
echo "📌 Latest tag found: $LATEST_TAG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 提取基础版本号(去除_sky后缀)
|
|
||||||
BASE_VERSION=$(echo "$LATEST_TAG" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -1)
|
|
||||||
[ -z "$BASE_VERSION" ] && BASE_VERSION="v1.0.0"
|
|
||||||
echo "📌 Base version: $BASE_VERSION"
|
|
||||||
|
|
||||||
# 解析版本号各部分
|
|
||||||
MAJOR=$(echo $BASE_VERSION | cut -d'.' -f1 | sed 's/v//')
|
|
||||||
MINOR=$(echo $BASE_VERSION | cut -d'.' -f2)
|
|
||||||
PATCH=$(echo $BASE_VERSION | cut -d'.' -f3)
|
|
||||||
echo "📌 Version components: Major=$MAJOR, Minor=$MINOR, Patch=$PATCH"
|
|
||||||
|
|
||||||
# 计算下一个版本号
|
|
||||||
echo "📊 Calculating next version..."
|
|
||||||
|
|
||||||
# 获取当前提交与最新tag之间的所有提交消息
|
|
||||||
COMMIT_MESSAGES=$(git log --oneline --format=%s $LATEST_TAG..HEAD 2>/dev/null || echo "")
|
|
||||||
|
|
||||||
# 统计需要递增的提交次数(过滤重复的提交消息)
|
|
||||||
INCREMENT_COUNT=0
|
|
||||||
if [ -n "$COMMIT_MESSAGES" ]; then
|
|
||||||
# 使用awk过滤重复的提交消息并计数
|
|
||||||
UNIQUE_MESSAGES=$(echo "$COMMIT_MESSAGES" | awk '!seen[$0]++')
|
|
||||||
INCREMENT_COUNT=$(echo "$UNIQUE_MESSAGES" | wc -l)
|
|
||||||
echo "📝 Found $INCREMENT_COUNT unique commit(s) since last tag"
|
|
||||||
else
|
|
||||||
echo "📝 No new commits since last tag"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 计算新的版本号
|
|
||||||
NEW_PATCH=$((PATCH + INCREMENT_COUNT))
|
|
||||||
NEW_MINOR=$MINOR
|
|
||||||
NEW_MAJOR=$MAJOR
|
|
||||||
|
|
||||||
# 处理版本号进位逻辑
|
|
||||||
if [ $NEW_PATCH -ge 1000 ]; then
|
|
||||||
NEW_MINOR=$((NEW_MINOR + NEW_PATCH / 1000))
|
|
||||||
NEW_PATCH=$((NEW_PATCH % 1000))
|
|
||||||
echo "🔄 Patch version overflow, incrementing minor version"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $NEW_MINOR -ge 10 ]; then
|
|
||||||
NEW_MAJOR=$((NEW_MAJOR + NEW_MINOR / 10))
|
|
||||||
NEW_MINOR=$((NEW_MINOR % 10))
|
|
||||||
echo "🔄 Minor version overflow, incrementing major version"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 生成下一个版本号
|
|
||||||
NEXT_VERSION="v${NEW_MAJOR}.${NEW_MINOR}.${NEW_PATCH}"
|
|
||||||
NEXT_TAG="${NEXT_VERSION}_sky"
|
|
||||||
|
|
||||||
echo "🚀 Next version: $NEXT_VERSION"
|
|
||||||
echo "🏷️ Next tag: $NEXT_TAG"
|
|
||||||
echo "📈 Increment count: $INCREMENT_COUNT"
|
|
||||||
|
|
||||||
# 设置输出变量供后续任务使用(Gitea Actions格式)
|
|
||||||
echo "NEXT_VERSION=$NEXT_VERSION" >> $GITEA_OUTPUT
|
|
||||||
echo "NEXT_TAG=$NEXT_TAG" >> $GITEA_OUTPUT
|
|
||||||
echo "INCREMENT_COUNT=$INCREMENT_COUNT" >> $GITEA_OUTPUT
|
|
||||||
|
|
||||||
# 输出版本信息
|
|
||||||
echo "✅ Version extraction completed"
|
|
||||||
# 5. 任务完成通知
|
|
||||||
- name: Task Completion
|
|
||||||
run: |
|
|
||||||
echo "🎉 Basic CI setup completed successfully!"
|
|
||||||
echo ""
|
|
||||||
echo "📋 Tasks executed:"
|
|
||||||
echo " ✅ Code checkout"
|
|
||||||
echo " ✅ Version extraction"
|
|
||||||
echo ""
|
|
||||||
echo "🚀 Next steps: Building Flutter artifacts..."
|
|
||||||
|
|
||||||
# 构建Flutter制品任务
|
|
||||||
build-artifacts:
|
|
||||||
name: 🏗️ Build Flutter Artifacts
|
|
||||||
runs-on: sky
|
|
||||||
needs: basic-setup
|
|
||||||
steps:
|
|
||||||
# 1. 检出代码
|
|
||||||
- name: Checkout Code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
# 4. 构建APK文件
|
|
||||||
- name: Build APK
|
|
||||||
run: |
|
|
||||||
echo "🏗️ Building APK artifact..."
|
|
||||||
|
|
||||||
# 生成当前时间作为build-number(格式:YYYYMMDDHH)
|
|
||||||
BUILD_NUMBER=$(date +%Y%m%d%H)
|
|
||||||
echo "📅 Build number: $BUILD_NUMBER"
|
|
||||||
|
|
||||||
# 获取版本信息(从basic-setup任务传递)
|
|
||||||
echo "🔍 Getting version info from basic-setup job..."
|
|
||||||
|
|
||||||
# 设置默认版本号,如果环境变量为空
|
|
||||||
if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then
|
|
||||||
VERSION_FOR_FILENAME="1-0-0"
|
|
||||||
echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME"
|
|
||||||
else
|
|
||||||
# 格式化版本号用于文件名
|
|
||||||
VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g')
|
|
||||||
echo "✅ Version found: $VERSION_FOR_FILENAME"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 设置APK文件名
|
|
||||||
APK_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.apk"
|
|
||||||
echo "📁 APK filename: $APK_FILENAME"
|
|
||||||
|
|
||||||
# 构建APK,使用新的构建参数
|
|
||||||
flutter build apk --no-tree-shake-icons --release --flavor sky -t lib/main_sky_full.dart --build-number=$BUILD_NUMBER --build-name="sky-star-lock-release-$VERSION_FOR_FILENAME.apk"
|
|
||||||
|
|
||||||
# 重命名APK文件
|
|
||||||
mv build/app/outputs/flutter-apk/app-sky-release.apk "$APK_FILENAME"
|
|
||||||
|
|
||||||
echo "✅ APK build completed: $APK_FILENAME"
|
|
||||||
|
|
||||||
# 5. 构建AAB文件
|
|
||||||
- name: Build AAB
|
|
||||||
run: |
|
|
||||||
echo "🏗️ Building AAB artifact..."
|
|
||||||
|
|
||||||
# 生成当前时间作为build-number(格式:YYYYMMDDHH)
|
|
||||||
BUILD_NUMBER=$(date +%Y%m%d%H)
|
|
||||||
echo "📅 Build number: $BUILD_NUMBER"
|
|
||||||
|
|
||||||
# 获取版本信息(从basic-setup任务传递)
|
|
||||||
echo "🔍 Getting version info from basic-setup job..."
|
|
||||||
|
|
||||||
# 设置默认版本号,如果环境变量为空
|
|
||||||
if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then
|
|
||||||
VERSION_FOR_FILENAME="1-0-0"
|
|
||||||
echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME"
|
|
||||||
else
|
|
||||||
# 格式化版本号用于文件名
|
|
||||||
VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g')
|
|
||||||
echo "✅ Version found: $VERSION_FOR_FILENAME"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 设置AAB文件名
|
|
||||||
AAB_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.aab"
|
|
||||||
echo "📁 AAB filename: $AAB_FILENAME"
|
|
||||||
|
|
||||||
# 构建AAB,使用新的构建参数
|
|
||||||
flutter build appbundle --no-tree-shake-icons --release --flavor sky -t lib/main_sky_full.dart --build-number=$BUILD_NUMBER --build-name="sky-star-lock-release-$VERSION_FOR_FILENAME.aab"
|
|
||||||
|
|
||||||
# 重命名AAB文件
|
|
||||||
mv build/app/outputs/bundle/skyRelease/app-sky-release.aab "$AAB_FILENAME"
|
|
||||||
|
|
||||||
echo "✅ AAB build completed: $AAB_FILENAME"
|
|
||||||
|
|
||||||
# 6. 构建iOS IPA文件(如果支持iOS构建)
|
|
||||||
- name: Build iOS IPA
|
|
||||||
if: runner.os == 'macos'
|
|
||||||
run: |
|
|
||||||
echo "🏗️ Building iOS IPA artifact..."
|
|
||||||
|
|
||||||
# 生成当前时间作为build-number(格式:YYYYMMDDHH)
|
|
||||||
BUILD_NUMBER=$(date +%Y%m%d%H)
|
|
||||||
echo "📅 Build number: $BUILD_NUMBER"
|
|
||||||
|
|
||||||
# 获取版本信息(从basic-setup任务传递)
|
|
||||||
echo "🔍 Getting version info from basic-setup job..."
|
|
||||||
|
|
||||||
# 设置默认版本号,如果环境变量为空
|
|
||||||
if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then
|
|
||||||
VERSION_FOR_FILENAME="1-0-0"
|
|
||||||
echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME"
|
|
||||||
else
|
|
||||||
# 格式化版本号用于文件名
|
|
||||||
VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g')
|
|
||||||
echo "✅ Version found: $VERSION_FOR_FILENAME"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 设置IPA文件名
|
|
||||||
IPA_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.ipa"
|
|
||||||
echo "📁 IPA filename: $IPA_FILENAME"
|
|
||||||
|
|
||||||
# 配置iOS自动签名(CI环境使用自动签名)
|
|
||||||
echo "🔧 Configuring iOS automatic code signing for CI environment..."
|
|
||||||
|
|
||||||
# 构建iOS IPA,使用自动签名模式
|
|
||||||
flutter build ipa --no-tree-shake-icons --release --flavor sky -t lib/main_sky_full.dart --build-number=$BUILD_NUMBER --build-name="sky-star-lock-release-$VERSION_FOR_FILENAME.ipa" --codesign
|
|
||||||
|
|
||||||
# 重命名IPA文件
|
|
||||||
mv build/ios/ipa/*.ipa "$IPA_FILENAME"
|
|
||||||
|
|
||||||
echo "✅ iOS IPA build completed: $IPA_FILENAME"
|
|
||||||
|
|
||||||
# 7. 上传制品
|
|
||||||
- name: Upload Artifacts
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: flutter-artifacts-release
|
|
||||||
path: |
|
|
||||||
sky-star-lock-release-*.apk
|
|
||||||
sky-star-lock-release-*.aab
|
|
||||||
sky-star-lock-release-*.ipa
|
|
||||||
retention-days: 30
|
|
||||||
|
|
||||||
# 8. 构建完成通知
|
|
||||||
- name: Build Completion
|
|
||||||
run: |
|
|
||||||
echo "🎉 Flutter artifacts build completed successfully!"
|
|
||||||
echo ""
|
|
||||||
echo "📦 Artifacts generated:"
|
|
||||||
echo " ✅ APK: sky-star-lock-release-*.apk"
|
|
||||||
echo " ✅ AAB: sky-star-lock-release-*.aab"
|
|
||||||
if [ "${{ runner.os }}" == "macos" ]; then
|
|
||||||
echo " ✅ IPA: sky-star-lock-release-*.ipa"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
echo "🏷️ Version: ${{ needs.basic-setup.outputs.NEXT_VERSION }}"
|
|
||||||
echo "📁 Files available in artifacts section"
|
|
||||||
150
.gitlab-ci.yml
@ -1,10 +1,8 @@
|
|||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- generate_tag_or_version
|
- package
|
||||||
- build-artifacts
|
|
||||||
- release-artifacts
|
- release-artifacts
|
||||||
- notification
|
- notification
|
||||||
- clean-up
|
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
LC_ALL: "en_US.UTF-8"
|
LC_ALL: "en_US.UTF-8"
|
||||||
@ -16,37 +14,11 @@ variables:
|
|||||||
- macos
|
- macos
|
||||||
- flutter
|
- flutter
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH == "develop_sky"
|
- if: $CI_COMMIT_BRANCH == "develop"
|
||||||
- if: $CI_COMMIT_BRANCH == "release_sky"
|
- if: $CI_COMMIT_BRANCH == "release"
|
||||||
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
||||||
- if: $CI_COMMIT_BRANCH == "canary_release_sky"
|
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$/
|
||||||
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?(_sky)?$/
|
|
||||||
|
|
||||||
.notify_rule:
|
|
||||||
tags:
|
|
||||||
- macos
|
|
||||||
- flutter
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH == "develop_sky"
|
|
||||||
- if: $CI_COMMIT_BRANCH == "release_sky"
|
|
||||||
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
|
||||||
|
|
||||||
.generate_tag_rule:
|
|
||||||
tags:
|
|
||||||
- macos
|
|
||||||
- flutter
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH == "master_sky"
|
|
||||||
|
|
||||||
.generate_next_version_rule:
|
|
||||||
tags:
|
|
||||||
- macos
|
|
||||||
- flutter
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH == "develop_sky"
|
|
||||||
- if: $CI_COMMIT_BRANCH == "release_sky"
|
|
||||||
- if: $CI_COMMIT_BRANCH == "canary_release_sky"
|
|
||||||
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
|
||||||
|
|
||||||
.print_env:
|
.print_env:
|
||||||
stage: test
|
stage: test
|
||||||
@ -60,43 +32,15 @@ variables:
|
|||||||
.setup_fastlane_android:
|
.setup_fastlane_android:
|
||||||
extends: .build_rule
|
extends: .build_rule
|
||||||
before_script:
|
before_script:
|
||||||
- export PUB_HOSTED_URL=https://pub.flutter-io.cn
|
- flutter pub get
|
||||||
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
|
- bundle install --gemfile android/Gemfile --quiet
|
||||||
- ls -li
|
|
||||||
- export NEXT_VERSION="$(cat app_new.version)"
|
|
||||||
# - flutter pub get
|
|
||||||
- export PATH="/opt/homebrew/bin:$PATH"
|
|
||||||
- eval "$(rbenv init -)"
|
|
||||||
- rbenv global 2.6.10 # 你实际用的 Ruby 版本
|
|
||||||
- ruby -v
|
|
||||||
- which ruby
|
|
||||||
- gem env
|
|
||||||
- bundle config mirror.https://rubygems.org https://mirrors.aliyun.com/rubygems/
|
|
||||||
- bundle install --gemfile android/Gemfile --path vendor/bundle_android --quiet
|
|
||||||
- flutter clean
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- app_new.version
|
|
||||||
|
|
||||||
.setup_fastlane_ios:
|
.setup_fastlane_ios:
|
||||||
extends: .build_rule
|
extends: .build_rule
|
||||||
before_script:
|
before_script:
|
||||||
- export PUB_HOSTED_URL=https://pub.flutter-io.cn
|
- flutter pub get
|
||||||
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
|
- bundle install --gemfile ios/Gemfile --quiet
|
||||||
- ls -li
|
|
||||||
- export NEXT_VERSION="$(cat app_new.version)"
|
|
||||||
- export PATH="/opt/homebrew/bin:$PATH"
|
|
||||||
- eval "$(rbenv init -)"
|
|
||||||
- rbenv global 2.6.10 # 你实际用的 Ruby 版本
|
|
||||||
- ruby -v
|
|
||||||
- which ruby
|
|
||||||
- gem env
|
|
||||||
- bundle config mirror.https://rubygems.org https://mirrors.aliyun.com/rubygems/
|
|
||||||
- bundle install --gemfile ios/Gemfile --path vendor/bundle_ios --quiet
|
|
||||||
- flutter clean
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- app_new.version
|
|
||||||
|
|
||||||
test_lint_check:
|
test_lint_check:
|
||||||
stage: test
|
stage: test
|
||||||
@ -107,29 +51,8 @@ test_lint_check:
|
|||||||
- macos
|
- macos
|
||||||
- flutter
|
- flutter
|
||||||
|
|
||||||
generate_git_tag:
|
|
||||||
stage: generate_tag_or_version
|
|
||||||
extends: .generate_tag_rule
|
|
||||||
before_script:
|
|
||||||
- bash pre_build.sh sky
|
|
||||||
- project_url=$(echo $CI_PROJECT_URL | sed 's/http:\/\///')
|
|
||||||
- echo "project_url:$project_url"
|
|
||||||
- echo "CI_SERVER_FQDN:$CI_SERVER_FQDN/CI_PROJECT_ROOT_NAMESPACE:$CI_PROJECT_ROOT_NAMESPACE/CI_PROJECT_NAME:$CI_PROJECT_NAME"
|
|
||||||
- git remote set-url origin git@$CI_SERVER_FQDN:$CI_PROJECT_ROOT_NAMESPACE/$CI_PROJECT_NAME.git
|
|
||||||
script:
|
|
||||||
- bash tag_generator.sh generate_tag
|
|
||||||
|
|
||||||
generate_next_version:
|
|
||||||
stage: generate_tag_or_version
|
|
||||||
extends: .generate_next_version_rule
|
|
||||||
script:
|
|
||||||
- bash tag_generator.sh generate_version
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- app_new.version
|
|
||||||
|
|
||||||
build_android:
|
build_android:
|
||||||
stage: build-artifacts
|
stage: package
|
||||||
extends: .setup_fastlane_android
|
extends: .setup_fastlane_android
|
||||||
script: bash android/build.sh
|
script: bash android/build.sh
|
||||||
artifacts:
|
artifacts:
|
||||||
@ -137,7 +60,7 @@ build_android:
|
|||||||
- build/app/outputs/flutter-apk/
|
- build/app/outputs/flutter-apk/
|
||||||
|
|
||||||
build_ios:
|
build_ios:
|
||||||
stage: build-artifacts
|
stage: package
|
||||||
extends: .setup_fastlane_ios
|
extends: .setup_fastlane_ios
|
||||||
script:
|
script:
|
||||||
- bash ios/build.sh
|
- bash ios/build.sh
|
||||||
@ -160,59 +83,44 @@ create-release:
|
|||||||
- if: $CI_COMMIT_TAG
|
- if: $CI_COMMIT_TAG
|
||||||
before_script:
|
before_script:
|
||||||
- echo "start create release"
|
- echo "start create release"
|
||||||
- bash release_description_generator.sh
|
|
||||||
- export RELEASE_DESCRIPTION="$(cat changelog.md)"
|
|
||||||
- echo "${RELEASE_DESCRIPTION}"
|
|
||||||
script:
|
script:
|
||||||
- export StarLock_VERSION=${CI_COMMIT_TAG#*-}
|
- export StarLock_VERSION=${CI_COMMIT_TAG#*-}
|
||||||
- echo "Uploading StarLock-${StarLock_VERSION} packages to
|
- echo "Uploading StarLock-${StarLock_VERSION} packages to
|
||||||
${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/StarLock-${StarLock_VERSION}-*"
|
${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/StarLock-${StarLock_VERSION}-*"
|
||||||
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-xhj-release-${CI_COMMIT_TAG}.apk
|
||||||
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.apk"'
|
||||||
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-xhj-release-${CI_COMMIT_TAG}.aab
|
||||||
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.aab"'
|
||||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.apk
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.apk
|
||||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.apk"'
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.apk"'
|
||||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.aab
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.aab
|
||||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.aab"'
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.aab"'
|
||||||
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-xhj-release-${CI_COMMIT_TAG}.ipa
|
||||||
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.ipa"'
|
||||||
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-sky-release-${CI_COMMIT_TAG}.ipa
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-sky-release-${CI_COMMIT_TAG}.ipa
|
||||||
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.ipa"'
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.ipa"'
|
||||||
release:
|
release:
|
||||||
name: '$CI_COMMIT_TAG'
|
name: '$CI_COMMIT_TAG'
|
||||||
description: '$(cat changelog.md)'
|
description: 'Created Release By GitLab CI/CD'
|
||||||
tag_name: '$CI_COMMIT_TAG'
|
tag_name: '$CI_COMMIT_TAG'
|
||||||
ref: '$CI_COMMIT_TAG'
|
ref: '$CI_COMMIT_TAG'
|
||||||
assets:
|
assets:
|
||||||
links:
|
links:
|
||||||
|
- name: 'xhj apk binary package'
|
||||||
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.apk'
|
||||||
|
link_type: 'package'
|
||||||
|
- name: 'xhj bundle binary package'
|
||||||
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.aab'
|
||||||
|
link_type: 'package'
|
||||||
- name: 'sky apk binary package'
|
- name: 'sky apk binary package'
|
||||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.apk'
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.apk'
|
||||||
link_type: 'package'
|
link_type: 'package'
|
||||||
- name: 'sky bundle binary package'
|
- name: 'sky bundle binary package'
|
||||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.aab'
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.aab'
|
||||||
link_type: 'package'
|
link_type: 'package'
|
||||||
|
- name: 'xhj ipa binary package'
|
||||||
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.ipa'
|
||||||
|
link_type: 'package'
|
||||||
- name: 'sky ipa binary package'
|
- name: 'sky ipa binary package'
|
||||||
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.ipa'
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.ipa'
|
||||||
link_type: 'package'
|
link_type: 'package'
|
||||||
|
|
||||||
notify_success:
|
|
||||||
stage: notification
|
|
||||||
extends: .notify_rule
|
|
||||||
before_script:
|
|
||||||
- printenv | while IFS='=' read -r key value; do echo "$key=$value"; done
|
|
||||||
script:
|
|
||||||
- bash notify.sh success
|
|
||||||
allow_failure: true
|
|
||||||
when: on_success
|
|
||||||
|
|
||||||
notify_failure:
|
|
||||||
stage: notification
|
|
||||||
extends: .notify_rule
|
|
||||||
before_script:
|
|
||||||
- printenv | while IFS='=' read -r key value; do echo "$key=$value"; done
|
|
||||||
script:
|
|
||||||
- bash notify.sh failure
|
|
||||||
allow_failure: true
|
|
||||||
when: on_failure
|
|
||||||
|
|
||||||
clean_up:
|
|
||||||
stage: clean-up
|
|
||||||
extends: .build_rule
|
|
||||||
script:
|
|
||||||
- git reset --hard
|
|
||||||
when: always
|
|
||||||
15
README.md
@ -1,5 +1,5 @@
|
|||||||
# 星锁APP
|
# 星锁APP
|
||||||
测试ci
|
|
||||||
星云项目组旗下的智能锁应用,其中锁相关数据接入星云平台,业务数据接入星锁自有后台。
|
星云项目组旗下的智能锁应用,其中锁相关数据接入星云平台,业务数据接入星锁自有后台。
|
||||||
|
|
||||||
基于Flutter技术架构,支持Android和iOS平台。
|
基于Flutter技术架构,支持Android和iOS平台。
|
||||||
@ -61,7 +61,7 @@ keytool -list -v -keystore android/app/sky.jks
|
|||||||
```
|
```
|
||||||
|
|
||||||
输入密码(在android/app/build.gradle:38可以看到)
|
输入密码(在android/app/build.gradle:38可以看到)
|
||||||
测试ci
|
|
||||||
一般需要的是:证书指纹-SHA1 看起来像 95:6B:***********(共59个字符)
|
一般需要的是:证书指纹-SHA1 看起来像 95:6B:***********(共59个字符)
|
||||||
|
|
||||||
## 编译
|
## 编译
|
||||||
@ -171,14 +171,3 @@ java -jar android/bundletool.jar build-apks --bundle=build/app/outputs/bundle/sk
|
|||||||
```bash
|
```bash
|
||||||
java -jar android/bundletool.jar install-apks --apks=build/app/outputs/bundle/skyRelease/app-sky-release.aab.apks
|
java -jar android/bundletool.jar install-apks --apks=build/app/outputs/bundle/skyRelease/app-sky-release.aab.apks
|
||||||
```
|
```
|
||||||
|
|
||||||
## Jpush相关
|
|
||||||
|
|
||||||
极光推送,目前app这边只依赖极光的透传能力,推送能力通过截取极光拿到的各个厂商的推送token,然后将推送token上报到自己业务服务器直接调用各个厂商推送通道进行消息推送,所以对极光的flutter sdk进行了私有化定制改造,改造点如下:
|
|
||||||
|
|
||||||
* Android,iOS平台原生代码中截取jpush获取到的厂商推送token,将token回传到flutter业务应用层
|
|
||||||
* Android通过Jpush统一集成的各个厂商推送sdk,统一获取到token
|
|
||||||
* iOS通过原生token回调接口获取到token
|
|
||||||
* flutter端,将获取到的厂商token,厂商标识上报到业务服务器
|
|
||||||
|
|
||||||
定制jpush_flutter:http://code-internal.star-lock.cn/StarlockTeam/jpush_flutter
|
|
||||||
BIN
android/.DS_Store
vendored
Executable file
@ -1,6 +1,6 @@
|
|||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
gem "fastlane"
|
gem "fastlane"
|
||||||
gem 'nkf', '0.2.0'
|
|
||||||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||||
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
||||||
|
|||||||
@ -9,23 +9,21 @@ GEM
|
|||||||
public_suffix (>= 2.0.2, < 7.0)
|
public_suffix (>= 2.0.2, < 7.0)
|
||||||
artifactory (3.0.17)
|
artifactory (3.0.17)
|
||||||
atomos (0.1.3)
|
atomos (0.1.3)
|
||||||
aws-eventstream (1.3.2)
|
aws-eventstream (1.3.0)
|
||||||
aws-partitions (1.1107.0)
|
aws-partitions (1.979.0)
|
||||||
aws-sdk-core (3.224.0)
|
aws-sdk-core (3.209.1)
|
||||||
aws-eventstream (~> 1, >= 1.3.0)
|
aws-eventstream (~> 1, >= 1.3.0)
|
||||||
aws-partitions (~> 1, >= 1.992.0)
|
aws-partitions (~> 1, >= 1.651.0)
|
||||||
aws-sigv4 (~> 1.9)
|
aws-sigv4 (~> 1.9)
|
||||||
base64
|
|
||||||
jmespath (~> 1, >= 1.6.1)
|
jmespath (~> 1, >= 1.6.1)
|
||||||
logger
|
aws-sdk-kms (1.94.0)
|
||||||
aws-sdk-kms (1.101.0)
|
aws-sdk-core (~> 3, >= 3.207.0)
|
||||||
aws-sdk-core (~> 3, >= 3.216.0)
|
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sdk-s3 (1.186.1)
|
aws-sdk-s3 (1.166.0)
|
||||||
aws-sdk-core (~> 3, >= 3.216.0)
|
aws-sdk-core (~> 3, >= 3.207.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sigv4 (1.11.0)
|
aws-sigv4 (1.10.0)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
babosa (1.0.4)
|
babosa (1.0.4)
|
||||||
base64 (0.2.0)
|
base64 (0.2.0)
|
||||||
@ -35,7 +33,7 @@ GEM
|
|||||||
commander (4.6.0)
|
commander (4.6.0)
|
||||||
highline (~> 2.0.0)
|
highline (~> 2.0.0)
|
||||||
declarative (0.0.20)
|
declarative (0.0.20)
|
||||||
digest-crc (0.7.0)
|
digest-crc (0.6.5)
|
||||||
rake (>= 12.0.0, < 14.0.0)
|
rake (>= 12.0.0, < 14.0.0)
|
||||||
domain_name (0.5.20190701)
|
domain_name (0.5.20190701)
|
||||||
unf (>= 0.0.5, < 1.0.0)
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
@ -61,8 +59,8 @@ GEM
|
|||||||
faraday-em_synchrony (1.0.0)
|
faraday-em_synchrony (1.0.0)
|
||||||
faraday-excon (1.1.0)
|
faraday-excon (1.1.0)
|
||||||
faraday-httpclient (1.0.1)
|
faraday-httpclient (1.0.1)
|
||||||
faraday-multipart (1.1.0)
|
faraday-multipart (1.0.4)
|
||||||
multipart-post (~> 2.0)
|
multipart-post (~> 2)
|
||||||
faraday-net_http (1.0.2)
|
faraday-net_http (1.0.2)
|
||||||
faraday-net_http_persistent (1.2.0)
|
faraday-net_http_persistent (1.2.0)
|
||||||
faraday-patron (1.0.0)
|
faraday-patron (1.0.0)
|
||||||
@ -70,8 +68,8 @@ GEM
|
|||||||
faraday-retry (1.0.3)
|
faraday-retry (1.0.3)
|
||||||
faraday_middleware (1.2.1)
|
faraday_middleware (1.2.1)
|
||||||
faraday (~> 1.0)
|
faraday (~> 1.0)
|
||||||
fastimage (2.4.0)
|
fastimage (2.3.1)
|
||||||
fastlane (2.227.2)
|
fastlane (2.222.0)
|
||||||
CFPropertyList (>= 2.3, < 4.0.0)
|
CFPropertyList (>= 2.3, < 4.0.0)
|
||||||
addressable (>= 2.8, < 3.0.0)
|
addressable (>= 2.8, < 3.0.0)
|
||||||
artifactory (~> 3.0)
|
artifactory (~> 3.0)
|
||||||
@ -87,7 +85,6 @@ GEM
|
|||||||
faraday-cookie_jar (~> 0.0.6)
|
faraday-cookie_jar (~> 0.0.6)
|
||||||
faraday_middleware (~> 1.0)
|
faraday_middleware (~> 1.0)
|
||||||
fastimage (>= 2.1.0, < 3.0.0)
|
fastimage (>= 2.1.0, < 3.0.0)
|
||||||
fastlane-sirp (>= 1.0.0)
|
|
||||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||||
google-apis-androidpublisher_v3 (~> 0.3)
|
google-apis-androidpublisher_v3 (~> 0.3)
|
||||||
google-apis-playcustomapp_v1 (~> 0.1)
|
google-apis-playcustomapp_v1 (~> 0.1)
|
||||||
@ -111,11 +108,9 @@ GEM
|
|||||||
tty-spinner (>= 0.8.0, < 1.0.0)
|
tty-spinner (>= 0.8.0, < 1.0.0)
|
||||||
word_wrap (~> 1.0.0)
|
word_wrap (~> 1.0.0)
|
||||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||||
xcpretty (~> 0.4.1)
|
xcpretty (~> 0.3.0)
|
||||||
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
||||||
fastlane-plugin-pgyer (0.2.9)
|
fastlane-plugin-pgyer (0.2.9)
|
||||||
fastlane-sirp (1.0.0)
|
|
||||||
sysrandom (~> 1.0)
|
|
||||||
gh_inspector (1.1.3)
|
gh_inspector (1.1.3)
|
||||||
google-apis-androidpublisher_v3 (0.54.0)
|
google-apis-androidpublisher_v3 (0.54.0)
|
||||||
google-apis-core (>= 0.11.0, < 2.a)
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
@ -154,26 +149,23 @@ GEM
|
|||||||
os (>= 0.9, < 2.0)
|
os (>= 0.9, < 2.0)
|
||||||
signet (>= 0.16, < 2.a)
|
signet (>= 0.16, < 2.a)
|
||||||
highline (2.0.3)
|
highline (2.0.3)
|
||||||
http-cookie (1.0.8)
|
http-cookie (1.0.7)
|
||||||
domain_name (~> 0.5)
|
domain_name (~> 0.5)
|
||||||
httpclient (2.9.0)
|
httpclient (2.8.3)
|
||||||
mutex_m
|
|
||||||
jmespath (1.6.2)
|
jmespath (1.6.2)
|
||||||
json (2.7.6)
|
json (2.7.2)
|
||||||
jwt (2.10.1)
|
jwt (2.9.1)
|
||||||
base64
|
base64
|
||||||
logger (1.7.0)
|
|
||||||
mini_magick (4.13.2)
|
mini_magick (4.13.2)
|
||||||
mini_mime (1.1.5)
|
mini_mime (1.1.5)
|
||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
multipart-post (2.4.1)
|
multipart-post (2.4.1)
|
||||||
mutex_m (0.3.0)
|
nanaimo (0.3.0)
|
||||||
nanaimo (0.4.0)
|
|
||||||
naturally (2.2.1)
|
naturally (2.2.1)
|
||||||
nkf (0.2.0)
|
nkf (0.2.0)
|
||||||
optparse (0.6.0)
|
optparse (0.5.0)
|
||||||
os (1.1.4)
|
os (1.1.4)
|
||||||
plist (3.7.2)
|
plist (3.7.1)
|
||||||
public_suffix (5.1.1)
|
public_suffix (5.1.1)
|
||||||
rake (13.2.1)
|
rake (13.2.1)
|
||||||
representable (3.2.0)
|
representable (3.2.0)
|
||||||
@ -181,10 +173,10 @@ GEM
|
|||||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||||
uber (< 0.2.0)
|
uber (< 0.2.0)
|
||||||
retriable (3.1.2)
|
retriable (3.1.2)
|
||||||
rexml (3.4.1)
|
rexml (3.3.7)
|
||||||
rouge (3.28.0)
|
rouge (2.0.7)
|
||||||
ruby2_keywords (0.0.5)
|
ruby2_keywords (0.0.5)
|
||||||
rubyzip (2.4.1)
|
rubyzip (2.3.2)
|
||||||
security (0.1.5)
|
security (0.1.5)
|
||||||
signet (0.18.0)
|
signet (0.18.0)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
@ -194,7 +186,6 @@ GEM
|
|||||||
simctl (1.6.10)
|
simctl (1.6.10)
|
||||||
CFPropertyList
|
CFPropertyList
|
||||||
naturally
|
naturally
|
||||||
sysrandom (1.0.5)
|
|
||||||
terminal-notifier (2.0.0)
|
terminal-notifier (2.0.0)
|
||||||
terminal-table (3.0.2)
|
terminal-table (3.0.2)
|
||||||
unicode-display_width (>= 1.1.1, < 3)
|
unicode-display_width (>= 1.1.1, < 3)
|
||||||
@ -207,15 +198,15 @@ GEM
|
|||||||
unf (0.2.0)
|
unf (0.2.0)
|
||||||
unicode-display_width (2.6.0)
|
unicode-display_width (2.6.0)
|
||||||
word_wrap (1.0.0)
|
word_wrap (1.0.0)
|
||||||
xcodeproj (1.27.0)
|
xcodeproj (1.25.0)
|
||||||
CFPropertyList (>= 2.3.3, < 4.0)
|
CFPropertyList (>= 2.3.3, < 4.0)
|
||||||
atomos (~> 0.1.3)
|
atomos (~> 0.1.3)
|
||||||
claide (>= 1.0.2, < 2.0)
|
claide (>= 1.0.2, < 2.0)
|
||||||
colored2 (~> 3.1)
|
colored2 (~> 3.1)
|
||||||
nanaimo (~> 0.4.0)
|
nanaimo (~> 0.3.0)
|
||||||
rexml (>= 3.3.6, < 4.0)
|
rexml (>= 3.3.2, < 4.0)
|
||||||
xcpretty (0.4.1)
|
xcpretty (0.3.0)
|
||||||
rouge (~> 3.28.0)
|
rouge (~> 2.0.7)
|
||||||
xcpretty-travis-formatter (1.0.1)
|
xcpretty-travis-formatter (1.0.1)
|
||||||
xcpretty (~> 0.2, >= 0.0.7)
|
xcpretty (~> 0.2, >= 0.0.7)
|
||||||
|
|
||||||
@ -225,7 +216,6 @@ PLATFORMS
|
|||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
fastlane
|
fastlane
|
||||||
fastlane-plugin-pgyer
|
fastlane-plugin-pgyer
|
||||||
nkf (= 0.2.0)
|
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
1.17.2
|
1.17.2
|
||||||
|
|||||||
@ -23,9 +23,6 @@ if (flutterVersionName == null) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
//<com>
|
|
||||||
apply plugin: 'com.google.gms.google-services'
|
|
||||||
//</com>
|
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
@ -78,13 +75,6 @@ android {
|
|||||||
keyAlias = 'upload'
|
keyAlias = 'upload'
|
||||||
keyPassword 'xhj8872'
|
keyPassword 'xhj8872'
|
||||||
}
|
}
|
||||||
|
|
||||||
xhj_bundle {
|
|
||||||
storeFile file("xhj_bundle.jks")
|
|
||||||
storePassword 'xhj8872'
|
|
||||||
keyAlias = 'xhj'
|
|
||||||
keyPassword 'xhj8872'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----- BEGIN flavorDimensions (autogenerated by flutter_flavorizr) -----
|
// ----- BEGIN flavorDimensions (autogenerated by flutter_flavorizr) -----
|
||||||
@ -95,105 +85,62 @@ android {
|
|||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.starlock.lock.local"
|
applicationId "com.starlock.lock.local"
|
||||||
signingConfig signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
resValue "string", "app_name", "Star Lock"
|
resValue "string", "app_name", "星锁-local"
|
||||||
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.local"
|
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.local"
|
||||||
}
|
}
|
||||||
dev {
|
dev {
|
||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.starlock.lock.dev"
|
applicationId "com.starlock.lock.dev"
|
||||||
signingConfig signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
resValue "string", "app_name", "Star Lock"
|
resValue "string", "app_name", "星锁-dev"
|
||||||
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.dev"
|
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.dev"
|
||||||
}
|
}
|
||||||
pre {
|
pre {
|
||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.starlock.lock.pre"
|
applicationId "com.starlock.lock.pre"
|
||||||
signingConfig signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
resValue "string", "app_name", "Star Lock-P"
|
resValue "string", "app_name", "星锁"
|
||||||
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.pre"
|
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.pre"
|
||||||
}
|
}
|
||||||
sky {
|
sky {
|
||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.skychip.lock"
|
applicationId "com.skychip.lock"
|
||||||
signingConfig signingConfigs.sky
|
signingConfig signingConfigs.sky
|
||||||
resValue "string", "app_name", "TTLock Pro"
|
resValue "string", "app_name", "锁通通"
|
||||||
manifestPlaceholders = [
|
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock"
|
||||||
JPUSH_PKGNAME : "com.skychip.lock",
|
|
||||||
JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey
|
|
||||||
JPUSH_CHANNEL : "flutter_channel",
|
|
||||||
XIAOMI_APPID : "MI-2882303761520287291",
|
|
||||||
XIAOMI_APPKEY : "MI-5352028744291",
|
|
||||||
OPPO_APPKEY : "OP-ccae67a4a8c1470a8350b0d6a89f8105",
|
|
||||||
OPPO_APPID : "OP-31586713",
|
|
||||||
OPPO_APPSECRET: "OP-2339389233094ca297de7b10213f7bd8",
|
|
||||||
VIVO_APPKEY : "6a18657357d176364a91f50e4c9cd7c4",
|
|
||||||
VIVO_APPID : "105724810",
|
|
||||||
HONOR_APPID : "104437184",
|
|
||||||
]
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-sky.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-sky.pro'
|
||||||
}
|
}
|
||||||
sky_pre {
|
sky_pre {
|
||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.skychip.lock.pre"
|
applicationId "com.skychip.lock.pre"
|
||||||
signingConfig signingConfigs.sky
|
signingConfig signingConfigs.sky
|
||||||
resValue "string", "app_name", "TTLock Pro-P"
|
resValue "string", "app_name", "锁通通-P"
|
||||||
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock.pre"
|
|
||||||
}
|
}
|
||||||
sky_dev {
|
sky_dev {
|
||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.skychip.lock.dev"
|
applicationId "com.skychip.lock.dev"
|
||||||
signingConfig signingConfigs.sky
|
signingConfig signingConfigs.sky
|
||||||
resValue "string", "app_name", "TTLock Pro"
|
resValue "string", "app_name", "锁通通-D"
|
||||||
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock.dev"
|
|
||||||
}
|
}
|
||||||
xhj {
|
xhj {
|
||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.xhjcn.lock"
|
applicationId "com.xhjcn.lock"
|
||||||
signingConfig signingConfigs.xhj
|
signingConfig signingConfigs.xhj
|
||||||
resValue "string", "app_name", "Star Lock"
|
resValue "string", "app_name", "星星锁"
|
||||||
manifestPlaceholders = [
|
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock"
|
||||||
JPUSH_PKGNAME : "com.xhjcn.lock",
|
|
||||||
JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--鑫泓佳AppKey
|
|
||||||
JPUSH_CHANNEL : "flutter_channel",
|
|
||||||
XIAOMI_APPID : "MI-2882303761520314939",
|
|
||||||
XIAOMI_APPKEY : "MI-5312031456939",
|
|
||||||
OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b",
|
|
||||||
OPPO_APPID : "OP-31726001",
|
|
||||||
OPPO_APPSECRET: "OP-05723986bba64183a71530b496922450",
|
|
||||||
VIVO_APPKEY : "75fe8e570425b714e08d0390b14797cb",
|
|
||||||
VIVO_APPID : "105752244",
|
|
||||||
HONOR_APPID : "104458196",
|
|
||||||
]
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro'
|
||||||
}
|
}
|
||||||
|
|
||||||
xhj_bundle {
|
|
||||||
dimension "flavor-type"
|
|
||||||
applicationId "ltd.xhjcn.lock"
|
|
||||||
|
|
||||||
signingConfig signingConfigs.xhj_bundle
|
|
||||||
resValue "string", "app_name", "Star Lock"
|
|
||||||
manifestPlaceholders = [
|
|
||||||
JPUSH_PKGNAME: "ltd.xhjcn.lock",
|
|
||||||
JPUSH_APPKEY : "5ccdb9b8d3faaae66ba5d02e",
|
|
||||||
JPUSH_CHANNEL: "flutter_channel",
|
|
||||||
]
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro'
|
|
||||||
}
|
|
||||||
|
|
||||||
xhj_pre {
|
xhj_pre {
|
||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.xhjcn.lock.pre"
|
applicationId "com.xhjcn.lock.pre"
|
||||||
signingConfig signingConfigs.xhj
|
signingConfig signingConfigs.xhj
|
||||||
resValue "string", "app_name", "Star Lock-P"
|
resValue "string", "app_name", "星星锁-P"
|
||||||
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock.pre"
|
|
||||||
}
|
}
|
||||||
xhj_dev {
|
xhj_dev {
|
||||||
dimension "flavor-type"
|
dimension "flavor-type"
|
||||||
applicationId "com.xhjcn.lock.dev"
|
applicationId "com.xhjcn.lock.dev"
|
||||||
signingConfig signingConfigs.xhj
|
signingConfig signingConfigs.xhj
|
||||||
resValue "string", "app_name", "Star Lock"
|
resValue "string", "app_name", "星星锁-D"
|
||||||
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock.dev"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,7 +173,7 @@ android {
|
|||||||
// You can update the following values to match your application needs.
|
// You can update the following values to match your application needs.
|
||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
|
||||||
minSdkVersion 25
|
minSdkVersion 25
|
||||||
targetSdkVersion 35
|
targetSdkVersion 34
|
||||||
versionCode flutterVersionCode.toInteger()
|
versionCode flutterVersionCode.toInteger()
|
||||||
versionName flutterVersionName
|
versionName flutterVersionName
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
@ -248,22 +195,22 @@ android {
|
|||||||
JPUSH_PKGNAME : "这里不重要,在口味配置",
|
JPUSH_PKGNAME : "这里不重要,在口味配置",
|
||||||
//JPush 上注册的包名对应的 Appkey.
|
//JPush 上注册的包名对应的 Appkey.
|
||||||
// JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey
|
// JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey
|
||||||
JPUSH_APPKEY : "default",//--鑫泓佳AppKey
|
JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--鑫泓佳AppKey
|
||||||
JPUSH_CHANNEL : "default",
|
JPUSH_CHANNEL : "flutter_channel",
|
||||||
|
|
||||||
//若不集成厂商通道,可直接跳过以下配置
|
//若不集成厂商通道,可直接跳过以下配置
|
||||||
//以下为sky的配置
|
//以下为sky的配置
|
||||||
// XIAOMI_APPID : "MI-2882303761520287291",
|
// XIAOMI_APPID : "MI-2882303761520287291",
|
||||||
// XIAOMI_APPKEY : "MI-5352028744291",
|
// XIAOMI_APPKEY : "MI-5352028744291",
|
||||||
//以下均为鑫泓佳的配置
|
//以下均为鑫泓佳的配置
|
||||||
XIAOMI_APPID : "default",
|
XIAOMI_APPID : "MI-2882303761520314939",
|
||||||
XIAOMI_APPKEY : "default",
|
XIAOMI_APPKEY : "MI-5312031456939",
|
||||||
OPPO_APPKEY : "default",
|
OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b",
|
||||||
OPPO_APPID : "default",
|
OPPO_APPID : "OP-31726001",
|
||||||
OPPO_APPSECRET: "default",
|
OPPO_APPSECRET: "OP-05723986bba64183a71530b496922450",
|
||||||
VIVO_APPKEY : "default",
|
VIVO_APPKEY : "75fe8e570425b714e08d0390b14797cb",
|
||||||
VIVO_APPID : "default",
|
VIVO_APPID : "105752244",
|
||||||
HONOR_APPID : "default",
|
HONOR_APPID : "104458196",
|
||||||
]
|
]
|
||||||
splits {
|
splits {
|
||||||
abi {
|
abi {
|
||||||
@ -289,11 +236,7 @@ android {
|
|||||||
productFlavors.dev.signingConfig signingConfigs.debug
|
productFlavors.dev.signingConfig signingConfigs.debug
|
||||||
productFlavors.pre.signingConfig signingConfigs.debug
|
productFlavors.pre.signingConfig signingConfigs.debug
|
||||||
productFlavors.sky.signingConfig signingConfigs.sky
|
productFlavors.sky.signingConfig signingConfigs.sky
|
||||||
productFlavors.sky_dev.signingConfig signingConfigs.sky
|
|
||||||
productFlavors.sky_pre.signingConfig signingConfigs.sky
|
|
||||||
productFlavors.xhj.signingConfig signingConfigs.xhj
|
productFlavors.xhj.signingConfig signingConfigs.xhj
|
||||||
productFlavors.xhj_dev.signingConfig signingConfigs.xhj
|
|
||||||
productFlavors.xhj_pre.signingConfig signingConfigs.xhj
|
|
||||||
}
|
}
|
||||||
release {
|
release {
|
||||||
// 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210)
|
// 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210)
|
||||||
@ -305,11 +248,7 @@ android {
|
|||||||
productFlavors.dev.signingConfig signingConfigs.debug
|
productFlavors.dev.signingConfig signingConfigs.debug
|
||||||
productFlavors.pre.signingConfig signingConfigs.debug
|
productFlavors.pre.signingConfig signingConfigs.debug
|
||||||
productFlavors.sky.signingConfig signingConfigs.sky
|
productFlavors.sky.signingConfig signingConfigs.sky
|
||||||
productFlavors.sky_dev.signingConfig signingConfigs.sky
|
|
||||||
productFlavors.sky_pre.signingConfig signingConfigs.sky
|
|
||||||
productFlavors.xhj.signingConfig signingConfigs.xhj
|
productFlavors.xhj.signingConfig signingConfigs.xhj
|
||||||
productFlavors.xhj_dev.signingConfig signingConfigs.xhj
|
|
||||||
productFlavors.xhj_pre.signingConfig signingConfigs.xhj
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,7 +267,7 @@ dependencies {
|
|||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||||
// implementation('com.amap.api:location:5.6.0')
|
// implementation('com.amap.api:location:5.6.0')
|
||||||
// implementation('com.amap.api:3dmap:8.1.0')
|
// implementation('com.amap.api:3dmap:8.1.0')
|
||||||
// implementation('com.amap.api:3dmap-location-search:latest.integration')
|
implementation('com.amap.api:3dmap-location-search:latest.integration')
|
||||||
|
|
||||||
implementation 'cn.jiguang.sdk:jpush:5.2.3'
|
implementation 'cn.jiguang.sdk:jpush:5.2.3'
|
||||||
// 接入华为厂商
|
// 接入华为厂商
|
||||||
@ -351,21 +290,4 @@ dependencies {
|
|||||||
// implementation(name: 'HiPushSDK-7.0.61.303', ext: 'aar')
|
// implementation(name: 'HiPushSDK-7.0.61.303', ext: 'aar')
|
||||||
//接入 VIVO 厂商
|
//接入 VIVO 厂商
|
||||||
implementation 'cn.jiguang.sdk.plugin:vivo:5.2.3'
|
implementation 'cn.jiguang.sdk.plugin:vivo:5.2.3'
|
||||||
|
|
||||||
// Umeng统计
|
|
||||||
//<cn>
|
|
||||||
implementation 'com.umeng.umsdk:common:9.7.9'
|
|
||||||
implementation 'com.umeng.umsdk:asms:1.8.5'
|
|
||||||
//</cn>
|
|
||||||
//<com>
|
|
||||||
// implementation 'cn.jiguang.sdk.plugin:fcm:5.2.3'
|
|
||||||
// implementation 'com.google.firebase:firebase-messaging:23.0.5'
|
|
||||||
//</com>
|
|
||||||
|
|
||||||
//FCM云消息与极光FCM插件
|
|
||||||
implementation 'com.google.firebase:firebase-messaging:23.2.1'
|
|
||||||
implementation 'cn.jiguang.sdk.plugin:fcm:5.2.2'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,14 +2,14 @@
|
|||||||
"project_info": {
|
"project_info": {
|
||||||
"project_number": "281500445726",
|
"project_number": "281500445726",
|
||||||
"project_id": "skychip2023-ecdff",
|
"project_id": "skychip2023-ecdff",
|
||||||
"storage_bucket": "skychip2023-ecdff.firebasestorage.app"
|
"storage_bucket": "skychip2023-ecdff.appspot.com"
|
||||||
},
|
},
|
||||||
"client": [
|
"client": [
|
||||||
{
|
{
|
||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4d20f",
|
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4d20f",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "com.starlock.lock.local"
|
"package_name": "com.skychip.lock"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [],
|
"oauth_client": [],
|
||||||
|
|||||||
@ -92,22 +92,6 @@
|
|||||||
-dontwarn cn.jiguang.**
|
-dontwarn cn.jiguang.**
|
||||||
-keep class cn.jiguang.** { *; }
|
-keep class cn.jiguang.** { *; }
|
||||||
|
|
||||||
-dontwarn cn.com.chinatelecom.**
|
|
||||||
-keep class cn.com.chinatelecom.** {*;}
|
|
||||||
-dontwarn com.ct.**
|
|
||||||
-keep class com.ct.** {*;}
|
|
||||||
-dontwarn a.a.**
|
|
||||||
-keep class a.a.** {*;}
|
|
||||||
-dontwarn com.cmic.**
|
|
||||||
-keep class com.cmic.** {*;}
|
|
||||||
-dontwarn com.unicom.**
|
|
||||||
-keep class com.unicom.** {*;}
|
|
||||||
-dontwarn com.sdk.**
|
|
||||||
-keep class com.sdk.** {*;}
|
|
||||||
|
|
||||||
-dontwarn com.sdk.**
|
|
||||||
-keep class com.sdk.** {*;}
|
|
||||||
|
|
||||||
-dontwarn com.google.**
|
-dontwarn com.google.**
|
||||||
-keep class com.google.gson.** {*;}
|
-keep class com.google.gson.** {*;}
|
||||||
-keep class com.google.protobuf.** {*;}
|
-keep class com.google.protobuf.** {*;}
|
||||||
@ -144,12 +128,4 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
-keep class com.tencent.mm.sdk.** { *; }
|
-keep class com.tencent.mm.sdk.** { *; }
|
||||||
-keep class com.tencent.mm.opensdk.** { *; }
|
-keep class com.tencent.mm.opensdk.** { *; }
|
||||||
|
|
||||||
-dontwarn com.tencent.bugly.**
|
|
||||||
-keep public class com.tencent.bugly.**{*;}
|
|
||||||
|
|
||||||
-keep class com.umeng.** { *; }
|
|
||||||
-keep class com.umeng.**$* { *; }
|
|
||||||
-keep class com.umeng.message.** { *; }
|
|
||||||
-keep class com.umeng.message.**$* { *; }
|
|
||||||
@ -92,22 +92,6 @@
|
|||||||
-dontwarn cn.jiguang.**
|
-dontwarn cn.jiguang.**
|
||||||
-keep class cn.jiguang.** { *; }
|
-keep class cn.jiguang.** { *; }
|
||||||
|
|
||||||
-dontwarn cn.com.chinatelecom.**
|
|
||||||
-keep class cn.com.chinatelecom.** {*;}
|
|
||||||
-dontwarn com.ct.**
|
|
||||||
-keep class com.ct.** {*;}
|
|
||||||
-dontwarn a.a.**
|
|
||||||
-keep class a.a.** {*;}
|
|
||||||
-dontwarn com.cmic.**
|
|
||||||
-keep class com.cmic.** {*;}
|
|
||||||
-dontwarn com.unicom.**
|
|
||||||
-keep class com.unicom.** {*;}
|
|
||||||
-dontwarn com.sdk.**
|
|
||||||
-keep class com.sdk.** {*;}
|
|
||||||
|
|
||||||
-dontwarn com.sdk.**
|
|
||||||
-keep class com.sdk.** {*;}
|
|
||||||
|
|
||||||
-dontwarn com.google.**
|
-dontwarn com.google.**
|
||||||
-keep class com.google.gson.** {*;}
|
-keep class com.google.gson.** {*;}
|
||||||
-keep class com.google.protobuf.** {*;}
|
-keep class com.google.protobuf.** {*;}
|
||||||
@ -144,12 +128,4 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
-keep class com.tencent.mm.sdk.** { *; }
|
-keep class com.tencent.mm.sdk.** { *; }
|
||||||
-keep class com.tencent.mm.opensdk.** { *; }
|
-keep class com.tencent.mm.opensdk.** { *; }
|
||||||
|
|
||||||
-dontwarn com.tencent.bugly.**
|
|
||||||
-keep public class com.tencent.bugly.**{*;}
|
|
||||||
|
|
||||||
-keep class com.umeng.** { *; }
|
|
||||||
-keep class com.umeng.**$* { *; }
|
|
||||||
-keep class com.umeng.message.** { *; }
|
|
||||||
-keep class com.umeng.message.**$* { *; }
|
|
||||||
28
android/app/proguard-rules.pro
vendored
@ -92,27 +92,6 @@
|
|||||||
-dontwarn cn.jiguang.**
|
-dontwarn cn.jiguang.**
|
||||||
-keep class cn.jiguang.** { *; }
|
-keep class cn.jiguang.** { *; }
|
||||||
|
|
||||||
-dontwarn cn.jpush.**
|
|
||||||
-keep class cn.jpush.** {*;}
|
|
||||||
-dontwarn cn.jiguang.**
|
|
||||||
-keep class cn.jiguang.** {*;}
|
|
||||||
|
|
||||||
-dontwarn cn.com.chinatelecom.**
|
|
||||||
-keep class cn.com.chinatelecom.** {*;}
|
|
||||||
-dontwarn com.ct.**
|
|
||||||
-keep class com.ct.** {*;}
|
|
||||||
-dontwarn a.a.**
|
|
||||||
-keep class a.a.** {*;}
|
|
||||||
-dontwarn com.cmic.**
|
|
||||||
-keep class com.cmic.** {*;}
|
|
||||||
-dontwarn com.unicom.**
|
|
||||||
-keep class com.unicom.** {*;}
|
|
||||||
-dontwarn com.sdk.**
|
|
||||||
-keep class com.sdk.** {*;}
|
|
||||||
|
|
||||||
-dontwarn com.sdk.**
|
|
||||||
-keep class com.sdk.** {*;}
|
|
||||||
|
|
||||||
-dontwarn com.google.**
|
-dontwarn com.google.**
|
||||||
-keep class com.google.gson.** {*;}
|
-keep class com.google.gson.** {*;}
|
||||||
-keep class com.google.protobuf.** {*;}
|
-keep class com.google.protobuf.** {*;}
|
||||||
@ -149,9 +128,4 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
-keep class com.tencent.mm.sdk.** { *; }
|
-keep class com.tencent.mm.sdk.** { *; }
|
||||||
-keep class com.tencent.mm.opensdk.** { *; }
|
-keep class com.tencent.mm.opensdk.** { *; }
|
||||||
|
|
||||||
-keep class com.umeng.** { *; }
|
|
||||||
-keep class com.umeng.**$* { *; }
|
|
||||||
-keep class com.umeng.message.** { *; }
|
|
||||||
-keep class com.umeng.message.**$* { *; }
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">Star Lock</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">星锁-dev</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">Star Lock</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">星锁</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="com.skychip.lock">
|
package="com.example.star_lock">
|
||||||
|
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.BLUETOOTH_SCAN"
|
android:name="android.permission.BLUETOOTH_SCAN"
|
||||||
@ -8,10 +8,10 @@
|
|||||||
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||||
|
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30" />-->
|
||||||
|
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="30" />-->
|
||||||
<!--允许访问网络,必选权限-->
|
<!--允许访问网络,必选权限-->
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<!--申请调用A-GPS模块-->
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
|
||||||
<!--允许获取精确位置,精准定位必选-->
|
<!--允许获取精确位置,精准定位必选-->
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
<!--允许获取粗略位置,粗略定位必选-->
|
<!--允许获取粗略位置,粗略定位必选-->
|
||||||
@ -29,13 +29,11 @@
|
|||||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||||
<!--允许读设备日志,用于问题排查-->
|
<!--允许读设备日志,用于问题排查-->
|
||||||
<uses-permission android:name="android.permission.READ_LOGS" />
|
<uses-permission android:name="android.permission.READ_LOGS" />
|
||||||
<!--联系人-->
|
|
||||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
|
||||||
|
|
||||||
<!--相机-->
|
<!--相机-->
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||||
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||||
@ -61,7 +59,7 @@
|
|||||||
<uses-permission android:name="com.hihonor.permission.sec.SDK_LAUNCHER" />
|
<uses-permission android:name="com.hihonor.permission.sec.SDK_LAUNCHER" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".App"
|
android:name="android.app.Application"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:requestLegacyExternalStorage="true"
|
android:requestLegacyExternalStorage="true"
|
||||||
@ -80,32 +78,50 @@
|
|||||||
<meta-data
|
<meta-data
|
||||||
android:name="flutterEmbedding"
|
android:name="flutterEmbedding"
|
||||||
android:value="2" />
|
android:value="2" />
|
||||||
<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
|
|
||||||
android:resource="@mipmap/ic_launcher" />
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
||||||
android:value="1" /> <!-- 将您的通知渠道ID替换为您的实际ID -->
|
android:value="1" /> <!-- 将您的通知渠道ID替换为您的实际ID -->
|
||||||
<!-- <meta-data-->
|
<meta-data
|
||||||
<!-- android:name="com.huawei.hms.client.appid"-->
|
android:name="com.huawei.hms.client.appid"
|
||||||
<!-- android:value="110798531" />-->
|
android:value="110798531" />
|
||||||
<!-- <meta-data-->
|
<meta-data
|
||||||
<!-- android:name="com.huawei.hms.client.cpid"-->
|
android:name="com.huawei.hms.client.cpid"
|
||||||
<!-- android:value="1406555529261648640" />-->
|
android:value="1406555529261648640" />
|
||||||
<!-- <meta-data-->
|
<meta-data
|
||||||
<!-- android:name="OPPO_APPKEY"-->
|
android:name="OPPO_APPKEY"
|
||||||
<!-- android:value="OP-47f668c9943248118502aa58d066393b" />-->
|
android:value="OP-47f668c9943248118502aa58d066393b" />
|
||||||
|
|
||||||
<!-- <meta-data-->
|
<meta-data
|
||||||
<!-- android:name="OPPO_APPID"-->
|
android:name="OPPO_APPID"
|
||||||
<!-- android:value="OP-31726001" />-->
|
android:value="OP-31726001" />
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="OPPO_APPSECRET"
|
||||||
|
android:value="OP-05723986bba64183a71530b496922450" />
|
||||||
|
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="com.huawei.hms.client.appid"
|
||||||
|
android:value="110798531" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.huawei.hms.client.cpid"
|
||||||
|
android:value="1406555529261648640" />
|
||||||
|
<meta-data
|
||||||
|
android:name="OPPO_APPKEY"
|
||||||
|
android:value="OP-47f668c9943248118502aa58d066393b" />
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="OPPO_APPID"
|
||||||
|
android:value="OP-31726001" />
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="OPPO_APPSECRET"
|
||||||
|
android:value="OP-05723986bba64183a71530b496922450" />
|
||||||
|
|
||||||
<!-- <meta-data-->
|
|
||||||
<!-- android:name="OPPO_APPSECRET"-->
|
|
||||||
<!-- android:value="OP-05723986bba64183a71530b496922450" />-->
|
|
||||||
|
|
||||||
<service
|
<service
|
||||||
android:name="com.huawei.hms.push.HmsMessageService"
|
android:name="com.huawei.hms.push.HmsMessageService"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
|
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
@ -113,8 +129,8 @@
|
|||||||
|
|
||||||
|
|
||||||
<receiver
|
<receiver
|
||||||
android:name="com.huawei.hms.support.api.push.PushReceiver"
|
android:name="com.huawei.hms.support.api.push.PushReceiver"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.huawei.android.push.intent.REGISTRATION" />
|
<action android:name="com.huawei.android.push.intent.REGISTRATION" />
|
||||||
<action android:name="com.huawei.android.push.intent.RECEIVE" />
|
<action android:name="com.huawei.android.push.intent.RECEIVE" />
|
||||||
@ -147,7 +163,7 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</service> <!--兼容Q版本-->
|
</service> <!--兼容Q版本-->
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name="com.skychip.lock.MainActivity"
|
||||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
@ -177,18 +193,6 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
</activity>
|
</activity>
|
||||||
<meta-data
|
|
||||||
android:name="BUGLY_ENABLE_DEBUG"
|
|
||||||
android:value="true" />
|
|
||||||
|
|
||||||
<!-- 添加 Umeng SDK 的服务 -->
|
|
||||||
<service android:name="com.umeng.message.UmengIntentService" android:exported="false"/>
|
|
||||||
<receiver android:name="com.umeng.message.NotificationProxyBroadcastReceiver" android:exported="true" android:permission="android.permission.BROADCAST_PACKAGE_REMOVED">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
|
|
||||||
<data android:scheme="package"/>
|
|
||||||
</intent-filter>
|
|
||||||
</receiver>
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<umeng_config>
|
|
||||||
<appkey>671244cf80464b33f6df9648</appkey>
|
|
||||||
<channel>Product</channel>
|
|
||||||
</umeng_config>
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
package com.skychip.lock
|
|
||||||
|
|
||||||
import io.flutter.app.FlutterApplication
|
|
||||||
import android.util.Log
|
|
||||||
import cn.jiguang.api.utils.JCollectionAuth;
|
|
||||||
|
|
||||||
class App : FlutterApplication() {
|
|
||||||
|
|
||||||
override fun onCreate() {
|
|
||||||
super.onCreate()
|
|
||||||
Log.d("MyApplication", "Application has started")
|
|
||||||
JCollectionAuth.setAuth(getApplicationContext(), false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -16,10 +16,7 @@ class MainActivity : FlutterActivity() {
|
|||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
GeneratedPluginRegistrant.registerWith(flutterEngine!!)
|
GeneratedPluginRegistrant.registerWith(flutterEngine!!)
|
||||||
MethodChannel(
|
MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result ->
|
||||||
flutterEngine?.dartExecutor!!.binaryMessenger,
|
|
||||||
"starLockFlutterSend"
|
|
||||||
).setMethodCallHandler { call, result ->
|
|
||||||
if (call.method == "loadNativeShare") {
|
if (call.method == "loadNativeShare") {
|
||||||
val map = call.arguments as Map<String, String>
|
val map = call.arguments as Map<String, String>
|
||||||
val shareText = map["shareText"]
|
val shareText = map["shareText"]
|
||||||
@ -29,7 +26,7 @@ class MainActivity : FlutterActivity() {
|
|||||||
} else {
|
} else {
|
||||||
shareText(shareText, "分享")
|
shareText(shareText, "分享")
|
||||||
}
|
}
|
||||||
} else if (call.method == "sendGetBlueStatus") {
|
} else if (call.method == "sendGetBlueStatus") {
|
||||||
// 蓝牙是否开启
|
// 蓝牙是否开启
|
||||||
// println("收到原生的信息了 methodmethodmethod: ${call.method}")
|
// println("收到原生的信息了 methodmethodmethod: ${call.method}")
|
||||||
val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()
|
val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()
|
||||||
@ -47,10 +44,7 @@ class MainActivity : FlutterActivity() {
|
|||||||
status = "-1"
|
status = "-1"
|
||||||
}
|
}
|
||||||
val flutterEngine: FlutterEngine? = this.flutterEngine // 获取你的 FlutterEngine 实例
|
val flutterEngine: FlutterEngine? = this.flutterEngine // 获取你的 FlutterEngine 实例
|
||||||
MethodChannel(
|
MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterReceive").invokeMethod("getBlueStatus", status)
|
||||||
flutterEngine?.dartExecutor!!.binaryMessenger,
|
|
||||||
"starLockFlutterReceive"
|
|
||||||
).invokeMethod("getBlueStatus", status)
|
|
||||||
} else {
|
} else {
|
||||||
result.notImplemented() // 没有实现的方法
|
result.notImplemented() // 没有实现的方法
|
||||||
}
|
}
|
||||||
@ -96,10 +90,7 @@ class MainActivity : FlutterActivity() {
|
|||||||
|
|
||||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||||
GeneratedPluginRegistrant.registerWith(flutterEngine)
|
GeneratedPluginRegistrant.registerWith(flutterEngine)
|
||||||
MethodChannel(
|
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result ->
|
||||||
flutterEngine.dartExecutor.binaryMessenger,
|
|
||||||
"starLockFlutterSend"
|
|
||||||
).setMethodCallHandler { call, result ->
|
|
||||||
if (call.method == "loadNativeShare") {
|
if (call.method == "loadNativeShare") {
|
||||||
val map = call.arguments as Map<String, String>
|
val map = call.arguments as Map<String, String>
|
||||||
val shareText = map["shareText"]
|
val shareText = map["shareText"]
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 214 B |
@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<!-- 设置背景颜色为透明 -->
|
|
||||||
<solid android:color="@android:color/transparent"/>
|
|
||||||
</shape>
|
|
||||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
@ -1,3 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
tools:keep="@drawable/sky_login_btn_normal,@drawable/xhj_login_btn_normal,@drawable/icon_left_grey,@drawable/check,@drawable/uncheck"/>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">Star Lock</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">星锁</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">Star Lock</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">星锁</string>
|
|
||||||
</resources>
|
|
||||||
@ -26,21 +26,21 @@
|
|||||||
"SG_back":"connect-ws-dra.hispace.dbankcloud.com"
|
"SG_back":"connect-ws-dra.hispace.dbankcloud.com"
|
||||||
},
|
},
|
||||||
"client":{
|
"client":{
|
||||||
"cp_id":"30086000764882919",
|
"cp_id":"30086000752967166",
|
||||||
"product_id":"388421841222019909",
|
"product_id":"388421841222116270",
|
||||||
"client_id":"1376040077926370048",
|
"client_id":"1406555529261648640",
|
||||||
"client_secret":"FE068E768F2B897A291DFFD186E0C0E495BE4BE6CCD7C5973B6C02ADF9178916",
|
"client_secret":"843E8191B02B692239726CF0ED990E1EC2B31928F825AA012B932A128FD2C516",
|
||||||
"project_id":"388421841222019909",
|
"project_id":"388421841222116270",
|
||||||
"app_id":"110413691",
|
"app_id":"110798531",
|
||||||
"api_key":"DAEDAG1Mu4qubka2IheS5XVoQQIyqAr2tU+VyLcUukdN4iHjP9FZRI16fUIhWz+lsz8si57hQ/gjoNNvQBmgglsT5jnXFcnY4nF1wQ==",
|
"api_key":"DQEDAALnPCtuCgoYOyZfsIDa9/YZZhQ+buDGpypeurXhQUGMajWcVyYLQgXXqV3x2HbI6oyG+Wm2Gf+1hPs6j+wA3B6ylYAXG4aAQA==",
|
||||||
"package_name":"com.skychip.lock"
|
"package_name":"com.skychip.lock"
|
||||||
},
|
},
|
||||||
"oauth_client":{
|
"oauth_client":{
|
||||||
"client_id":"110413691",
|
"client_id":"110798531",
|
||||||
"client_type":1
|
"client_type":1
|
||||||
},
|
},
|
||||||
"app_info":{
|
"app_info":{
|
||||||
"app_id":"110413691",
|
"app_id":"110798531",
|
||||||
"package_name":"com.skychip.lock"
|
"package_name":"com.skychip.lock"
|
||||||
},
|
},
|
||||||
"service":{
|
"service":{
|
||||||
@ -81,15 +81,15 @@
|
|||||||
{
|
{
|
||||||
"package_name":"com.skychip.lock",
|
"package_name":"com.skychip.lock",
|
||||||
"client":{
|
"client":{
|
||||||
"app_id":"110413691"
|
"app_id":"110798531"
|
||||||
},
|
},
|
||||||
"app_info":{
|
"app_info":{
|
||||||
"package_name":"com.skychip.lock",
|
"package_name":"com.skychip.lock",
|
||||||
"app_id":"110413691"
|
"app_id":"110798531"
|
||||||
},
|
},
|
||||||
"oauth_client":{
|
"oauth_client":{
|
||||||
"client_type":1,
|
"client_type":1,
|
||||||
"client_id":"110413691"
|
"client_id":"110798531"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "281500445726",
|
|
||||||
"project_id": "skychip2023-ecdff",
|
|
||||||
"storage_bucket": "skychip2023-ecdff.firebasestorage.app"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4d20f",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.skychip.lock"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4d20f",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.starlock.lock.local"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
BIN
android/app/src/sky/res/mipmap-hdpi/ic_launcher.png
Executable file → Normal file
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
android/app/src/sky/res/mipmap-mdpi/ic_launcher.png
Executable file → Normal file
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
android/app/src/sky/res/mipmap-xhdpi/ic_launcher.png
Executable file → Normal file
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 5.8 KiB |
BIN
android/app/src/sky/res/mipmap-xxhdpi/ic_launcher.png
Executable file → Normal file
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 12 KiB |
BIN
android/app/src/sky/res/mipmap-xxxhdpi/ic_launcher.png
Executable file → Normal file
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 27 KiB |
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">TTLock Pro</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">锁通通</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "281500445726",
|
|
||||||
"project_id": "skychip2023-ecdff",
|
|
||||||
"storage_bucket": "skychip2023-ecdff.firebasestorage.app"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4d20f",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.skychip.lock.dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4d20f",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.starlock.lock.local"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "281500445726",
|
|
||||||
"project_id": "skychip2023-ecdff",
|
|
||||||
"storage_bucket": "skychip2023-ecdff.firebasestorage.app"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4d",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.skychip.lock.pre"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.starlock.lock.local"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">TTLock Pro-P</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">锁通通-P</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "28150044todo",
|
|
||||||
"project_id": "skychip2023-etodo",
|
|
||||||
"storage_bucket": "skychip2023-etodo.firebasestorage.app"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4todo",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.xhjcn.lock"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0todo"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4todo",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.xhjcn.lock.local"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4Dank9todo"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">Star Lock</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">星星锁</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,96 +0,0 @@
|
|||||||
{
|
|
||||||
"agcgw":{
|
|
||||||
"backurl":"connect-drcn.hispace.hicloud.com",
|
|
||||||
"url":"connect-drcn.dbankcloud.cn",
|
|
||||||
"websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com",
|
|
||||||
"websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn"
|
|
||||||
},
|
|
||||||
"agcgw_all":{
|
|
||||||
"CN":"connect-drcn.dbankcloud.cn",
|
|
||||||
"CN_back":"connect-drcn.hispace.hicloud.com",
|
|
||||||
"DE":"connect-dre.dbankcloud.cn",
|
|
||||||
"DE_back":"connect-dre.hispace.hicloud.com",
|
|
||||||
"RU":"connect-drru.hispace.dbankcloud.ru",
|
|
||||||
"RU_back":"connect-drru.hispace.dbankcloud.cn",
|
|
||||||
"SG":"connect-dra.dbankcloud.cn",
|
|
||||||
"SG_back":"connect-dra.hispace.hicloud.com"
|
|
||||||
},
|
|
||||||
"websocketgw_all":{
|
|
||||||
"CN":"connect-ws-drcn.hispace.dbankcloud.cn",
|
|
||||||
"CN_back":"connect-ws-drcn.hispace.dbankcloud.com",
|
|
||||||
"DE":"connect-ws-dre.hispace.dbankcloud.cn",
|
|
||||||
"DE_back":"connect-ws-dre.hispace.dbankcloud.com",
|
|
||||||
"RU":"connect-ws-drru.hispace.dbankcloud.ru",
|
|
||||||
"RU_back":"connect-ws-drru.hispace.dbankcloud.cn",
|
|
||||||
"SG":"connect-ws-dra.hispace.dbankcloud.cn",
|
|
||||||
"SG_back":"connect-ws-dra.hispace.dbankcloud.com"
|
|
||||||
},
|
|
||||||
"client":{
|
|
||||||
"cp_id":"30086000752967166",
|
|
||||||
"product_id":"388421841222116270",
|
|
||||||
"client_id":"1406555529261648640",
|
|
||||||
"client_secret":"843E8191B02B692239726CF0ED990E1EC2B31928F825AA012B932A128FD2C516",
|
|
||||||
"project_id":"388421841222116270",
|
|
||||||
"app_id":"110798531",
|
|
||||||
"api_key":"DQEDAALnPCtuCgoYOyZfsIDa9/YZZhQ+buDGpypeurXhQUGMajWcVyYLQgXXqV3x2HbI6oyG+Wm2Gf+1hPs6j+wA3B6ylYAXG4aAQA==",
|
|
||||||
"package_name":"ltd.xhjcn.lock"
|
|
||||||
},
|
|
||||||
"oauth_client":{
|
|
||||||
"client_id":"110798531",
|
|
||||||
"client_type":1
|
|
||||||
},
|
|
||||||
"app_info":{
|
|
||||||
"app_id":"110798531",
|
|
||||||
"package_name":"ltd.xhjcn.lock"
|
|
||||||
},
|
|
||||||
"service":{
|
|
||||||
"analytics":{
|
|
||||||
"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
|
|
||||||
"collector_url_ru":"datacollector-drru.dt.dbankcloud.ru,datacollector-drru.dt.hicloud.com",
|
|
||||||
"collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn",
|
|
||||||
"collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn",
|
|
||||||
"collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
|
|
||||||
"resource_id":"p1",
|
|
||||||
"channel_id":""
|
|
||||||
},
|
|
||||||
"edukit":{
|
|
||||||
"edu_url":"edukit.cloud.huawei.com.cn",
|
|
||||||
"dh_url":"edukit.cloud.huawei.com.cn"
|
|
||||||
},
|
|
||||||
"search":{
|
|
||||||
"url":"https://search-drcn.cloud.huawei.com"
|
|
||||||
},
|
|
||||||
"cloudstorage":{
|
|
||||||
"storage_url_sg_back":"https://agc-storage-dra.cloud.huawei.asia",
|
|
||||||
"storage_url_ru_back":"https://agc-storage-drru.cloud.huawei.ru",
|
|
||||||
"storage_url_ru":"https://agc-storage-drru.cloud.huawei.ru",
|
|
||||||
"storage_url_de_back":"https://agc-storage-dre.cloud.huawei.eu",
|
|
||||||
"storage_url_de":"https://ops-dre.agcstorage.link",
|
|
||||||
"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn",
|
|
||||||
"storage_url_sg":"https://ops-dra.agcstorage.link",
|
|
||||||
"storage_url_cn_back":"https://agc-storage-drcn.cloud.huawei.com.cn",
|
|
||||||
"storage_url_cn":"https://agc-storage-drcn.platform.dbankcloud.cn"
|
|
||||||
},
|
|
||||||
"ml":{
|
|
||||||
"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"region":"CN",
|
|
||||||
"configuration_version":"3.0",
|
|
||||||
"appInfos":[
|
|
||||||
{
|
|
||||||
"package_name":"ltd.xhjcn.lock",
|
|
||||||
"client":{
|
|
||||||
"app_id":"110798531"
|
|
||||||
},
|
|
||||||
"app_info":{
|
|
||||||
"package_name":"ltd.xhjcn.lock",
|
|
||||||
"app_id":"110798531"
|
|
||||||
},
|
|
||||||
"oauth_client":{
|
|
||||||
"client_type":1,
|
|
||||||
"client_id":"110798531"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "448746601330",
|
|
||||||
"project_id": "smart-lock-12b8c",
|
|
||||||
"storage_bucket": "smart-lock-12b8c.firebasestorage.app"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:448746601330:android:1a8056175e1dad5e317beb",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "ltd.xhjcn.lock"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyAm8dJlBY5hjslJDVDBNd2bkWrJlGjAMqw"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 8.4 KiB |
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">Star Lock</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">星星锁</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "28150044todo",
|
|
||||||
"project_id": "skychip2023-etodo",
|
|
||||||
"storage_bucket": "skychip2023-etodo.firebasestorage.app"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4todo",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.xhjcn.lock"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0todo"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4todo",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.xhjcn.lock.local"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4Dank9todo"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "28150044todo",
|
|
||||||
"project_id": "skychip2023-etodo",
|
|
||||||
"storage_bucket": "skychip2023-etodo.firebasestorage.app"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4todo",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.xhjcn.lock.pre"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0todo"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4todo",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.xhjcn.lock.pre"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4Dank9todo"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">Star Lock-P</string>
|
|
||||||
</resources>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">星星锁-P</string>
|
|
||||||
</resources>
|
|
||||||
@ -8,21 +8,18 @@ export ENV_BUILD_WORKSPACE=${CI_PROJECT_DIR}
|
|||||||
echo "GITLAB_WORKSPACE: ${CI_PROJECT_DIR}"
|
echo "GITLAB_WORKSPACE: ${CI_PROJECT_DIR}"
|
||||||
cd ${CI_PROJECT_DIR}/android
|
cd ${CI_PROJECT_DIR}/android
|
||||||
echo "ENV_BUILD_TAG:${ENV_BUILD_TAG},ENV_BUILD_BRANCH:${ENV_BUILD_BRANCH}"
|
echo "ENV_BUILD_TAG:${ENV_BUILD_TAG},ENV_BUILD_BRANCH:${ENV_BUILD_BRANCH}"
|
||||||
# 只支持 v1.2.3_sky 这种tag格式
|
regex='^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$'
|
||||||
regex='^v[0-9]+\.[0-9]+\.[0-9]+_sky$'
|
if [[ $ENV_BUILD_TAG =~ $regex ]]; then
|
||||||
if [[ "${ENV_BUILD_BRANCH}" == "canary_release_sky" ]]; then
|
echo "===Building xhj release==="
|
||||||
echo "===build canary_release: ${NEXT_VERSION}"
|
bundle exec fastlane release flavor:xhj --verbose
|
||||||
export ENV_BUILD_TAG=${NEXT_VERSION}
|
bundle exec fastlane release flavor:sky --verbose
|
||||||
bundle exec fastlane release_apk flavor:sky --verbose
|
elif [[ "${ENV_BUILD_BRANCH}" == "develop" ]]; then
|
||||||
elif [[ $ENV_BUILD_TAG =~ $regex ]]; then
|
echo "===Building xhj dev==="
|
||||||
echo "===build release===$ENV_BUILD_TAG"
|
bundle exec fastlane beta flavor:xhj env:dev --verbose
|
||||||
bundle exec fastlane release_apk flavor:sky --verbose
|
|
||||||
bundle exec fastlane release_bundle flavor:sky --verbose
|
|
||||||
elif [[ "${ENV_BUILD_BRANCH}" == "develop_sky" ]]; then
|
|
||||||
echo "===build dev===${NEXT_VERSION}"
|
|
||||||
bundle exec fastlane beta flavor:sky env:dev --verbose
|
bundle exec fastlane beta flavor:sky env:dev --verbose
|
||||||
elif [[ "${ENV_BUILD_BRANCH}" == "release_sky" || "${ENV_BUILD_BRANCH}" == "feat_devops_sky" ]] ; then
|
elif [[ "${ENV_BUILD_BRANCH}" == "release" ]] || [[ "${ENV_BUILD_BRANCH}" == "feat_devops" ]] ; then
|
||||||
echo "===build pre===${NEXT_VERSION}"
|
echo "===Building xhj pre==="
|
||||||
|
bundle exec fastlane beta flavor:xhj env:pre --verbose
|
||||||
bundle exec fastlane beta flavor:sky env:pre --verbose
|
bundle exec fastlane beta flavor:sky env:pre --verbose
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
@ -18,12 +18,10 @@ default_platform(:android)
|
|||||||
$env_key_project_root = 'ENV_BUILD_WORKSPACE'
|
$env_key_project_root = 'ENV_BUILD_WORKSPACE'
|
||||||
$env_current_branch = 'ENV_BUILD_BRANCH'
|
$env_current_branch = 'ENV_BUILD_BRANCH'
|
||||||
$env_current_tag = 'ENV_BUILD_TAG'
|
$env_current_tag = 'ENV_BUILD_TAG'
|
||||||
$env_next_version = 'NEXT_VERSION'
|
|
||||||
|
|
||||||
$path_dir_build = File.join(ENV[$env_key_project_root],'')
|
$path_dir_build = File.join(ENV[$env_key_project_root],'')
|
||||||
$current_branch = ENV[$env_current_branch]
|
$current_branch = ENV[$env_current_branch]
|
||||||
$current_tag = ENV[$env_current_tag]
|
$current_tag = ENV[$env_current_tag]
|
||||||
$next_version = ENV[$env_next_version]
|
|
||||||
|
|
||||||
$path_apk_output_dir = File.join($path_dir_build, 'build/app/outputs/flutter-apk')
|
$path_apk_output_dir = File.join($path_dir_build, 'build/app/outputs/flutter-apk')
|
||||||
$path_bundle_output_dir = File.join($path_dir_build, 'build/app/outputs/bundle')
|
$path_bundle_output_dir = File.join($path_dir_build, 'build/app/outputs/bundle')
|
||||||
@ -44,6 +42,10 @@ platform :android do
|
|||||||
print_header '🏁 Before All'
|
print_header '🏁 Before All'
|
||||||
print_log $current_branch
|
print_log $current_branch
|
||||||
print_log $current_tag
|
print_log $current_tag
|
||||||
|
print_log $path_file_preview_apk_default
|
||||||
|
print_log $path_file_release_apk_default
|
||||||
|
print_log $path_file_preview_apk_copy
|
||||||
|
print_log $path_file_release_apk_copy
|
||||||
Dir.chdir "../.." do
|
Dir.chdir "../.." do
|
||||||
sh('pwd')
|
sh('pwd')
|
||||||
end
|
end
|
||||||
@ -51,24 +53,23 @@ platform :android do
|
|||||||
|
|
||||||
desc "Submit a new Beta Build to Pgy Beta"
|
desc "Submit a new Beta Build to Pgy Beta"
|
||||||
lane :beta do |options|
|
lane :beta do |options|
|
||||||
|
flavor = options[:flavor]
|
||||||
env = options[:env]
|
env = options[:env]
|
||||||
|
UI.user_error!("flavor is required") unless flavor
|
||||||
UI.user_error!("env is required") unless env
|
UI.user_error!("env is required") unless env
|
||||||
print_log "build sky on #{env}"
|
print_log "build #{flavor} on #{env}"
|
||||||
build_number = Time.now.strftime("%Y%m%d%H")
|
build_number = Time.now.strftime("%Y%m%d%H")
|
||||||
print_log "BuildNo #{build_number}"
|
print_log "BuildNo #{build_number}"
|
||||||
build_version = $next_version
|
build_version = '1.0.0'
|
||||||
print_log "build_version #{build_version}"
|
print_log "build_version #{build_version}"
|
||||||
commit_hash = last_git_commit
|
commit_hash = last_git_commit
|
||||||
short_hash = commit_hash[:abbreviated_commit_hash]
|
short_hash = commit_hash[:abbreviated_commit_hash]
|
||||||
print_log "last_git_commit_short_hash #{short_hash}"
|
print_log "last_git_commit_short_hash #{short_hash}"
|
||||||
remove_zone_pre_build(zone:"com")
|
|
||||||
Dir.chdir "../.." do
|
Dir.chdir "../.." do
|
||||||
sh("flutter","clean")
|
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}_#{env}", "-t", "lib/main_#{flavor}_#{env}.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||||
sh("flutter","pub","get")
|
|
||||||
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "sky_#{env}", "-t", "lib/main_sky_#{env}.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
|
||||||
end
|
end
|
||||||
old_file_path = File.join($path_apk_output_dir, "app-sky_#{env}-release.apk")
|
old_file_path = File.join($path_apk_output_dir, "app-#{flavor}_#{env}-release.apk")
|
||||||
new_file_path = File.join($path_apk_output_dir, "starlock-sky-preview-#{build_version}.apk")
|
new_file_path = File.join($path_apk_output_dir, "starlock-#{flavor}-preview-#{build_version}.apk")
|
||||||
File.rename(old_file_path, new_file_path)
|
File.rename(old_file_path, new_file_path)
|
||||||
logs = changelog_from_git_commits(
|
logs = changelog_from_git_commits(
|
||||||
pretty: '- %s (%cn)',
|
pretty: '- %s (%cn)',
|
||||||
@ -79,8 +80,10 @@ platform :android do
|
|||||||
end
|
end
|
||||||
|
|
||||||
desc "Build & upload a new version to Gitlab Release"
|
desc "Build & upload a new version to Gitlab Release"
|
||||||
lane :release_apk do |options|
|
lane :release do |options|
|
||||||
print_log "build sky"
|
flavor = options[:flavor]
|
||||||
|
UI.user_error!("flavor is required") unless flavor
|
||||||
|
print_log "build flavor for: #{flavor}"
|
||||||
build_number = Time.now.strftime("%Y%m%d%H")
|
build_number = Time.now.strftime("%Y%m%d%H")
|
||||||
print_log "BuildNo #{build_number}"
|
print_log "BuildNo #{build_number}"
|
||||||
build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0]
|
build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0]
|
||||||
@ -88,33 +91,17 @@ platform :android do
|
|||||||
commit_hash = last_git_commit
|
commit_hash = last_git_commit
|
||||||
short_hash = commit_hash[:abbreviated_commit_hash]
|
short_hash = commit_hash[:abbreviated_commit_hash]
|
||||||
print_log "last_git_commit_short_hash #{short_hash}"
|
print_log "last_git_commit_short_hash #{short_hash}"
|
||||||
remove_zone_pre_build(zone:"com")
|
|
||||||
Dir.chdir "../.." do
|
Dir.chdir "../.." do
|
||||||
sh("flutter","pub","get")
|
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}", "-t", "lib/main_#{flavor}_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||||
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "sky", "-t", "lib/main_sky_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
|
||||||
end
|
end
|
||||||
old_apk_file_path = File.join($path_apk_output_dir, "app-sky-release.apk")
|
old_apk_file_path = File.join($path_apk_output_dir, "app-#{flavor}-release.apk")
|
||||||
new_apk_file_path = File.join($path_apk_output_dir, "starlock-sky-release-"+$current_tag+".apk")
|
new_apk_file_path = File.join($path_apk_output_dir, "starlock-#{flavor}-release-"+$current_tag+".apk")
|
||||||
File.rename(old_apk_file_path, new_apk_file_path)
|
File.rename(old_apk_file_path, new_apk_file_path)
|
||||||
end
|
|
||||||
|
|
||||||
desc "Build & upload a new version to Gitlab Release"
|
|
||||||
lane :release_bundle do |options|
|
|
||||||
print_log "build sky"
|
|
||||||
build_number = Time.now.strftime("%Y%m%d%H")
|
|
||||||
print_log "BuildNo #{build_number}"
|
|
||||||
build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0]
|
|
||||||
print_log "buildVersion #{build_version}"
|
|
||||||
commit_hash = last_git_commit
|
|
||||||
short_hash = commit_hash[:abbreviated_commit_hash]
|
|
||||||
print_log "last_git_commit_short_hash #{short_hash}"
|
|
||||||
remove_zone_pre_build(zone:"cn")
|
|
||||||
Dir.chdir "../.." do
|
Dir.chdir "../.." do
|
||||||
sh("flutter","pub","get")
|
sh("flutter", "build", "appbundle", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}", "-t", "lib/main_#{flavor}_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
||||||
sh("flutter", "build", "appbundle", "--no-tree-shake-icons", "--release", "--flavor", "sky", "-t", "lib/main_sky_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
|
|
||||||
end
|
end
|
||||||
old_bundle_file_path = File.join($path_bundle_output_dir , "/skyRelease/app-sky-release.aab")
|
old_bundle_file_path = File.join($path_bundle_output_dir , "/#{flavor}Release/app-#{flavor}-release.aab")
|
||||||
new_bundle_file_path = File.join($path_bundle_output_dir , "/skyRelease/starlock-sky-release-"+$current_tag+".aab")
|
new_bundle_file_path = File.join($path_bundle_output_dir , "/#{flavor}Release/starlock-#{flavor}-release-"+$current_tag+".aab")
|
||||||
File.rename(old_bundle_file_path, new_bundle_file_path)
|
File.rename(old_bundle_file_path, new_bundle_file_path)
|
||||||
sh('cp',new_bundle_file_path,$path_apk_output_dir)
|
sh('cp',new_bundle_file_path,$path_apk_output_dir)
|
||||||
end
|
end
|
||||||
@ -133,45 +120,4 @@ platform :android do
|
|||||||
File.delete(file)
|
File.delete(file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
lane :remove_zone_pre_build do |options|
|
|
||||||
sh("git", "reset", "--hard")
|
|
||||||
zone = options[:zone]
|
|
||||||
UI.user_error!("Please provide valid 'zone'") unless zone
|
|
||||||
pathList=["pubspec.yaml","/android/app/build.gradle","/lib/apm"]
|
|
||||||
extensions = [".dart",".gradle"] #options[:extensions]
|
|
||||||
if pathList.empty? || extensions.empty?
|
|
||||||
UI.user_error!("Please provide valid 'paths' and 'extensions' arrays.")
|
|
||||||
end
|
|
||||||
puts "start prepare zone: #{zone},pathList:#{pathList},extensions:#{extensions}"
|
|
||||||
regexp_List = [/#<#{zone}>.*?#<\/#{zone}>/m,/\/\/\<#{zone}\>.*?\/\/\<\/#{zone}\>/m]
|
|
||||||
UI.message("Processed RegExpList: #{regexp_List}")
|
|
||||||
def process_file(file_path, regexpList)
|
|
||||||
content = File.read(file_path)
|
|
||||||
regexpList.each do |tag|
|
|
||||||
content = content.gsub(tag,'')
|
|
||||||
end
|
|
||||||
File.write(file_path, content)
|
|
||||||
UI.message("Processed file: #{file_path},content :\n #{content}")
|
|
||||||
end
|
|
||||||
|
|
||||||
pathList.each do |path|
|
|
||||||
realPath = File.join($path_dir_build, path)
|
|
||||||
if File.directory?(realPath)
|
|
||||||
Dir.glob("#{realPath}/**/*").each do |file|
|
|
||||||
if File.directory?(file)
|
|
||||||
UI.message("Find child dir path: #{file}")
|
|
||||||
elsif extensions.include?(File.extname(file))
|
|
||||||
process_file(file,regexp_List)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elsif File.file?(realPath)
|
|
||||||
process_file(realPath,regexp_List)
|
|
||||||
else
|
|
||||||
UI.message("Invalid path: #{realPath}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
UI.success("All matching content removed from specified files.")
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -2,5 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
|||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
#distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
|
||||||
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.4-all.zip
|
|
||||||
|
|||||||
BIN
assets/.DS_Store
vendored
Executable file
@ -1,119 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
|
||||||
<title>play</title>
|
|
||||||
</head>
|
|
||||||
<style>
|
|
||||||
html {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
/* 防止滚动条出现 */
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
width: 100vw;
|
|
||||||
height: 100vh;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
background-color: white;
|
|
||||||
overflow: hidden;
|
|
||||||
/* 防止滚动条出现 */
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
#player {
|
|
||||||
object-fit: cover;
|
|
||||||
width: 100vw;
|
|
||||||
height: 100vh;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<video autoplay muted poster="images/loader-thumb.jpg" id="player">
|
|
||||||
</video>
|
|
||||||
<script src="jmuxer.min.js"></script>
|
|
||||||
<script>
|
|
||||||
|
|
||||||
if (typeof JMuxer === 'undefined') {
|
|
||||||
console.error("JMuxer is not defined. Check if jmuxer.min.js is loaded correctly.");
|
|
||||||
} else {
|
|
||||||
console.log("JMuxer loaded successfully.");
|
|
||||||
}
|
|
||||||
let jmuxer;
|
|
||||||
window.onload = function () {
|
|
||||||
try {
|
|
||||||
jmuxer = new JMuxer({
|
|
||||||
node: 'player',
|
|
||||||
mode: 'video',
|
|
||||||
debug: false,
|
|
||||||
readfpsfromtrack: true,
|
|
||||||
flushingTime: 0, // 立即刷新
|
|
||||||
clearBuffer: true, // 丢弃延迟帧
|
|
||||||
fps: 25, // 强制指定帧率
|
|
||||||
onReady: () => {
|
|
||||||
console.log('播放器初始化完成');
|
|
||||||
// 通知Flutter端准备就绪
|
|
||||||
window.Flutter.postMessage('ready');
|
|
||||||
},
|
|
||||||
onMissingVideoFrames: (missingFrames) => {
|
|
||||||
// console.log('Missing video frames:', missingFrames);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
console.error("Error initializing JMuxer:", e);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Feed data from Flutter
|
|
||||||
function feedDataFromFlutter(data) {
|
|
||||||
const buffer = new Uint8Array(data);
|
|
||||||
jmuxer.feed({
|
|
||||||
video: buffer,
|
|
||||||
duration: 40 // 每帧持续时间40ms(25fps)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Optional: notify Flutter
|
|
||||||
function notifyFlutter(message) {
|
|
||||||
if (window.Flutter) {
|
|
||||||
window.Flutter.postMessage(message);
|
|
||||||
} else {
|
|
||||||
console.log("Flutter interface not found. Message: " + message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to return to Flutter page
|
|
||||||
function returnToFlutter() {
|
|
||||||
notifyFlutter("Returning to Flutter page");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加清理方法
|
|
||||||
function cleanupJMuxer() {
|
|
||||||
if (jmuxer) {
|
|
||||||
try {
|
|
||||||
jmuxer.destroy();
|
|
||||||
jmuxer = null;
|
|
||||||
console.log('JMuxer cleaned up successfully');
|
|
||||||
window.Flutter.postMessage('cleanup_complete');
|
|
||||||
} catch (e) {
|
|
||||||
console.error('Error cleaning up JMuxer:', e);
|
|
||||||
window.Flutter.postMessage('cleanup_error');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
1
assets/html/jmuxer.min.js
vendored
@ -1 +0,0 @@
|
|||||||
{"flutter":{"platforms":{"android":{"default":{"projectId":"skychip2023-ecdff","appId":"1:281500445726:android:468195b9cc68dd6cc4d20f","fileOutput":"android/app/google-services.json"}},"ios":{"default":{"projectId":"skychip2023-ecdff","appId":"1:281500445726:ios:b194ccffb92fb86cc4d20f","uploadDebugSymbols":false,"fileOutput":"ios/Runner/GoogleService-Info.plist"}},"dart":{"lib/firebase_options.dart":{"projectId":"skychip2023-ecdff","configurations":{"android":"1:281500445726:android:468195b9cc68dd6cc4d20f","ios":"1:281500445726:ios:b194ccffb92fb86cc4d20f"}}}}}}
|
|
||||||
BIN
images/.DS_Store
vendored
Executable file
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 349 B |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 159 KiB |
|
Before Width: | Height: | Size: 354 KiB |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
BIN
ios/.DS_Store
vendored
Executable file
1
ios/.gitignore
vendored
@ -7,7 +7,6 @@
|
|||||||
**/*sync/
|
**/*sync/
|
||||||
.sconsign.dblite
|
.sconsign.dblite
|
||||||
.tags*
|
.tags*
|
||||||
.DS_Store
|
|
||||||
**/.vagrant/
|
**/.vagrant/
|
||||||
**/DerivedData/
|
**/DerivedData/
|
||||||
Icon?
|
Icon?
|
||||||
|
|||||||
@ -3,6 +3,5 @@ source "https://rubygems.org"
|
|||||||
gem "fastlane"
|
gem "fastlane"
|
||||||
gem 'cocoapods', '1.14.3'
|
gem 'cocoapods', '1.14.3'
|
||||||
gem 'public_suffix', '~> 4.0'
|
gem 'public_suffix', '~> 4.0'
|
||||||
gem 'nkf', '0.2.0'
|
|
||||||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||||
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
||||||
|
|||||||
@ -282,7 +282,6 @@ DEPENDENCIES
|
|||||||
cocoapods (= 1.14.3)
|
cocoapods (= 1.14.3)
|
||||||
fastlane
|
fastlane
|
||||||
fastlane-plugin-pgyer
|
fastlane-plugin-pgyer
|
||||||
nkf (= 0.2.0)
|
|
||||||
public_suffix (~> 4.0)
|
public_suffix (~> 4.0)
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
|
|||||||
@ -1,31 +0,0 @@
|
|||||||
import Foundation
|
|
||||||
import UIKit
|
|
||||||
import LiveCommunicationKit
|
|
||||||
|
|
||||||
@objc class LCKBridge: NSObject {
|
|
||||||
@objc static func presentCallInterfaceFromRootVC(_ rootVC: UIViewController, callerName: String) {
|
|
||||||
if #available(iOS 17.4, *) {
|
|
||||||
// 配置ConversationManager
|
|
||||||
let config = ConversationManager.Configuration(
|
|
||||||
ringtoneName: "notes_of_the_optimistic",
|
|
||||||
iconTemplateImageData: UIImage(named: "AppIcon")?.pngData(),
|
|
||||||
maximumConversationGroups: 1,
|
|
||||||
maximumConversationsPerConversationGroup: 1,
|
|
||||||
includesConversationInRecents: false,
|
|
||||||
supportsVideo: false,
|
|
||||||
supportedHandleTypes: [.generic, .phoneNumber, .emailAddress]
|
|
||||||
)
|
|
||||||
let manager = ConversationManager(configuration: config)
|
|
||||||
let local = Handle(type: .generic, value: callerName, displayName: callerName)
|
|
||||||
let update = Conversation.Update(localMember: local, members: [local], activeRemoteMembers: [local])
|
|
||||||
Task {
|
|
||||||
do {
|
|
||||||
try await manager.reportNewIncomingConversation(uuid: UUID(), update: update)
|
|
||||||
print("成功报告新来电")
|
|
||||||
} catch {
|
|
||||||
print("报告新来电失败: \(error.localizedDescription)")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||