Compare commits
No commits in common. "develop_sky" and "1.0.63+2024061302" have entirely different histories.
develop_sk
...
1.0.63+202
@ -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"
|
||||
2
.gitignore
vendored
@ -35,6 +35,7 @@
|
||||
*.lock
|
||||
|
||||
# Web related
|
||||
lib/generated_plugin_registrant.dart
|
||||
|
||||
# Symbolication related
|
||||
app.*.symbols
|
||||
@ -57,6 +58,7 @@ flutter_plugins/*/example/ios/Flutter/flutter_export_environment.sh
|
||||
/flutter_plugins/flutter_html-2.1.5/example/ios/Runner/GeneratedPluginRegistrant.h
|
||||
/flutter_plugins/flutter_html-2.1.5/example/ios/Runner/GeneratedPluginRegistrant.m
|
||||
/flutter_plugins/flutter_html-2.1.5/example/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
|
||||
/flutter_plugins/flutter_html-2.1.5/example/lib/generated_plugin_registrant.dart
|
||||
https://build_sh.sh
|
||||
ios/Runner.app.dSYM.zip
|
||||
ios/Runner.ipa
|
||||
|
||||
218
.gitlab-ci.yml
@ -1,218 +0,0 @@
|
||||
stages:
|
||||
- test
|
||||
- generate_tag_or_version
|
||||
- build-artifacts
|
||||
- release-artifacts
|
||||
- notification
|
||||
- clean-up
|
||||
|
||||
variables:
|
||||
LC_ALL: "en_US.UTF-8"
|
||||
LANG: "en_US.UTF-8"
|
||||
|
||||
|
||||
.build_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]+/
|
||||
- if: $CI_COMMIT_BRANCH == "canary_release_sky"
|
||||
- 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:
|
||||
stage: test
|
||||
extends: .build_rule
|
||||
before_script:
|
||||
- java --version
|
||||
- printenv | while IFS='=' read -r key value; do echo "$key=$value"; done
|
||||
after_script:
|
||||
- echo "finished"
|
||||
|
||||
.setup_fastlane_android:
|
||||
extends: .build_rule
|
||||
before_script:
|
||||
- export PUB_HOSTED_URL=https://pub.flutter-io.cn
|
||||
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
|
||||
- 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:
|
||||
extends: .build_rule
|
||||
before_script:
|
||||
- export PUB_HOSTED_URL=https://pub.flutter-io.cn
|
||||
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
|
||||
- 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:
|
||||
stage: test
|
||||
extends: .print_env
|
||||
script:
|
||||
- echo "run lint check or per-test here"
|
||||
tags:
|
||||
- macos
|
||||
- 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:
|
||||
stage: build-artifacts
|
||||
extends: .setup_fastlane_android
|
||||
script: bash android/build.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- build/app/outputs/flutter-apk/
|
||||
|
||||
build_ios:
|
||||
stage: build-artifacts
|
||||
extends: .setup_fastlane_ios
|
||||
script:
|
||||
- bash ios/build.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- build/app/outputs/flutter-ipa
|
||||
|
||||
create-release:
|
||||
stage: release-artifacts
|
||||
extends: .build_rule
|
||||
dependencies:
|
||||
- build_android
|
||||
- build_ios
|
||||
needs:
|
||||
- job: build_android
|
||||
artifacts: true
|
||||
- job: build_ios
|
||||
artifacts: true
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
before_script:
|
||||
- echo "start create release"
|
||||
- bash release_description_generator.sh
|
||||
- export RELEASE_DESCRIPTION="$(cat changelog.md)"
|
||||
- echo "${RELEASE_DESCRIPTION}"
|
||||
script:
|
||||
- export StarLock_VERSION=${CI_COMMIT_TAG#*-}
|
||||
- echo "Uploading StarLock-${StarLock_VERSION} packages to
|
||||
${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-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
|
||||
"${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-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:
|
||||
name: '$CI_COMMIT_TAG'
|
||||
description: '$(cat changelog.md)'
|
||||
tag_name: '$CI_COMMIT_TAG'
|
||||
ref: '$CI_COMMIT_TAG'
|
||||
assets:
|
||||
links:
|
||||
- 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'
|
||||
link_type: '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'
|
||||
link_type: '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'
|
||||
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
|
||||
测试ci
|
||||
|
||||
星云项目组旗下的智能锁应用,其中锁相关数据接入星云平台,业务数据接入星锁自有后台。
|
||||
|
||||
基于Flutter技术架构,支持Android和iOS平台。
|
||||
@ -61,7 +61,7 @@ keytool -list -v -keystore android/app/sky.jks
|
||||
```
|
||||
|
||||
输入密码(在android/app/build.gradle:38可以看到)
|
||||
测试ci
|
||||
|
||||
一般需要的是:证书指纹-SHA1 看起来像 95:6B:***********(共59个字符)
|
||||
|
||||
## 编译
|
||||
@ -171,14 +171,3 @@ java -jar android/bundletool.jar build-apks --bundle=build/app/outputs/bundle/sk
|
||||
```bash
|
||||
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 +0,0 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "fastlane"
|
||||
gem 'nkf', '0.2.0'
|
||||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
||||
@ -1,231 +0,0 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
CFPropertyList (3.0.7)
|
||||
base64
|
||||
nkf
|
||||
rexml
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
artifactory (3.0.17)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.3.2)
|
||||
aws-partitions (1.1107.0)
|
||||
aws-sdk-core (3.224.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.992.0)
|
||||
aws-sigv4 (~> 1.9)
|
||||
base64
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
logger
|
||||
aws-sdk-kms (1.101.0)
|
||||
aws-sdk-core (~> 3, >= 3.216.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.186.1)
|
||||
aws-sdk-core (~> 3, >= 3.216.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.11.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
base64 (0.2.0)
|
||||
claide (1.1.0)
|
||||
colored (1.2)
|
||||
colored2 (3.1.2)
|
||||
commander (4.6.0)
|
||||
highline (~> 2.0.0)
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.7.0)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
dotenv (2.8.1)
|
||||
emoji_regex (3.2.3)
|
||||
excon (0.109.0)
|
||||
faraday (1.10.4)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0)
|
||||
faraday-multipart (~> 1.0)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.0)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
faraday-retry (~> 1.0)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-cookie_jar (0.0.7)
|
||||
faraday (>= 0.8.0)
|
||||
http-cookie (~> 1.0.0)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.1.0)
|
||||
multipart-post (~> 2.0)
|
||||
faraday-net_http (1.0.2)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday-retry (1.0.3)
|
||||
faraday_middleware (1.2.1)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.4.0)
|
||||
fastlane (2.227.2)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
aws-sdk-s3 (~> 1.0)
|
||||
babosa (>= 1.0.3, < 2.0.0)
|
||||
bundler (>= 1.12.0, < 3.0.0)
|
||||
colored (~> 1.2)
|
||||
commander (~> 4.6)
|
||||
dotenv (>= 2.1.1, < 3.0.0)
|
||||
emoji_regex (>= 0.1, < 4.0)
|
||||
excon (>= 0.71.0, < 1.0.0)
|
||||
faraday (~> 1.0)
|
||||
faraday-cookie_jar (~> 0.0.6)
|
||||
faraday_middleware (~> 1.0)
|
||||
fastimage (>= 2.1.0, < 3.0.0)
|
||||
fastlane-sirp (>= 1.0.0)
|
||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||
google-apis-androidpublisher_v3 (~> 0.3)
|
||||
google-apis-playcustomapp_v1 (~> 0.1)
|
||||
google-cloud-env (>= 1.6.0, < 2.0.0)
|
||||
google-cloud-storage (~> 1.31)
|
||||
highline (~> 2.0)
|
||||
http-cookie (~> 1.0.5)
|
||||
json (< 3.0.0)
|
||||
jwt (>= 2.1.0, < 3)
|
||||
mini_magick (>= 4.9.4, < 5.0.0)
|
||||
multipart-post (>= 2.0.0, < 3.0.0)
|
||||
naturally (~> 2.2)
|
||||
optparse (>= 0.1.1, < 1.0.0)
|
||||
plist (>= 3.1.0, < 4.0.0)
|
||||
rubyzip (>= 2.0.0, < 3.0.0)
|
||||
security (= 0.1.5)
|
||||
simctl (~> 1.6.3)
|
||||
terminal-notifier (>= 2.0.0, < 3.0.0)
|
||||
terminal-table (~> 3)
|
||||
tty-screen (>= 0.6.3, < 1.0.0)
|
||||
tty-spinner (>= 0.8.0, < 1.0.0)
|
||||
word_wrap (~> 1.0.0)
|
||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||
xcpretty (~> 0.4.1)
|
||||
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
||||
fastlane-plugin-pgyer (0.2.9)
|
||||
fastlane-sirp (1.0.0)
|
||||
sysrandom (~> 1.0)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.54.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-core (0.11.3)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
httpclient (>= 2.8.1, < 3.a)
|
||||
mini_mime (~> 1.0)
|
||||
representable (~> 3.0)
|
||||
retriable (>= 2.0, < 4.a)
|
||||
rexml
|
||||
google-apis-iamcredentials_v1 (0.17.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-playcustomapp_v1 (0.13.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-storage_v1 (0.29.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-cloud-core (1.6.1)
|
||||
google-cloud-env (>= 1.0, < 3.a)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.6.0)
|
||||
faraday (>= 0.17.3, < 3.0)
|
||||
google-cloud-errors (1.3.1)
|
||||
google-cloud-storage (1.45.0)
|
||||
addressable (~> 2.8)
|
||||
digest-crc (~> 0.4)
|
||||
google-apis-iamcredentials_v1 (~> 0.1)
|
||||
google-apis-storage_v1 (~> 0.29.0)
|
||||
google-cloud-core (~> 1.6)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
mini_mime (~> 1.0)
|
||||
googleauth (1.8.1)
|
||||
faraday (>= 0.17.3, < 3.a)
|
||||
jwt (>= 1.4, < 3.0)
|
||||
multi_json (~> 1.11)
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (>= 0.16, < 2.a)
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.8)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.9.0)
|
||||
mutex_m
|
||||
jmespath (1.6.2)
|
||||
json (2.7.6)
|
||||
jwt (2.10.1)
|
||||
base64
|
||||
logger (1.7.0)
|
||||
mini_magick (4.13.2)
|
||||
mini_mime (1.1.5)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.4.1)
|
||||
mutex_m (0.3.0)
|
||||
nanaimo (0.4.0)
|
||||
naturally (2.2.1)
|
||||
nkf (0.2.0)
|
||||
optparse (0.6.0)
|
||||
os (1.1.4)
|
||||
plist (3.7.2)
|
||||
public_suffix (5.1.1)
|
||||
rake (13.2.1)
|
||||
representable (3.2.0)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.4.1)
|
||||
rouge (3.28.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.4.1)
|
||||
security (0.1.5)
|
||||
signet (0.18.0)
|
||||
addressable (~> 2.8)
|
||||
faraday (>= 0.17.5, < 3.a)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
simctl (1.6.10)
|
||||
CFPropertyList
|
||||
naturally
|
||||
sysrandom (1.0.5)
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
trailblazer-option (0.1.2)
|
||||
tty-cursor (0.7.1)
|
||||
tty-screen (0.8.2)
|
||||
tty-spinner (0.9.3)
|
||||
tty-cursor (~> 0.7)
|
||||
uber (0.1.0)
|
||||
unf (0.2.0)
|
||||
unicode-display_width (2.6.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.27.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.4.0)
|
||||
rexml (>= 3.3.6, < 4.0)
|
||||
xcpretty (0.4.1)
|
||||
rouge (~> 3.28.0)
|
||||
xcpretty-travis-formatter (1.0.1)
|
||||
xcpretty (~> 0.2, >= 0.0.7)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
fastlane
|
||||
fastlane-plugin-pgyer
|
||||
nkf (= 0.2.0)
|
||||
|
||||
BUNDLED WITH
|
||||
1.17.2
|
||||
@ -1,13 +0,0 @@
|
||||
apply plugin: 'AndResGuard'
|
||||
|
||||
andResGuard {
|
||||
whiteList = [
|
||||
"R.xml.jpush*",
|
||||
"R.drawable.jpush*",
|
||||
"R.layout.jpush*",
|
||||
"R.layout.push*",
|
||||
"R.string.jg*",
|
||||
"R.style.MyDialogStyle",
|
||||
"R.style.JPushTheme"
|
||||
]
|
||||
}
|
||||
@ -23,43 +23,39 @@ if (flutterVersionName == null) {
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
//<com>
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
//</com>
|
||||
apply plugin: 'kotlin-android'
|
||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||
apply plugin: 'com.android.application'
|
||||
//apply plugin: 'android-junk-code'
|
||||
apply plugin: 'android-junk-code'
|
||||
apply plugin: 'com.huawei.agconnect'
|
||||
apply from: 'and_res_guard.gradle'
|
||||
|
||||
//androidJunkCode {
|
||||
// variantConfig {
|
||||
// release {
|
||||
// //注意:这里的release是变体名称,如果没有设置productFlavors就是buildType名称,如果有设置productFlavors就是flavor+buildType,例如(freeRelease、proRelease)
|
||||
// packageBase = "cn.hx.plugin.ui" //生成java类根包名
|
||||
// packageCount = 30 //生成包数量
|
||||
// activityCountPerPackage = 3 //每个包下生成Activity类数量
|
||||
// excludeActivityJavaFile = false
|
||||
// //是否排除生成Activity的Java文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题
|
||||
// otherCountPerPackage = 50 //每个包下生成其它类的数量
|
||||
// methodCountPerClass = 20 //每个类下生成方法数量
|
||||
// resPrefix = "junk_" //生成的layout、drawable、string等资源名前缀
|
||||
// drawableCount = 300 //生成drawable资源数量
|
||||
// stringCount = 300 //生成string数量
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
androidJunkCode {
|
||||
variantConfig {
|
||||
release {
|
||||
//注意:这里的release是变体名称,如果没有设置productFlavors就是buildType名称,如果有设置productFlavors就是flavor+buildType,例如(freeRelease、proRelease)
|
||||
packageBase = "cn.hx.plugin.ui" //生成java类根包名
|
||||
packageCount = 30 //生成包数量
|
||||
activityCountPerPackage = 3 //每个包下生成Activity类数量
|
||||
excludeActivityJavaFile = false
|
||||
//是否排除生成Activity的Java文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题
|
||||
otherCountPerPackage = 50 //每个包下生成其它类的数量
|
||||
methodCountPerClass = 20 //每个类下生成方法数量
|
||||
resPrefix = "junk_" //生成的layout、drawable、string等资源名前缀
|
||||
drawableCount = 300 //生成drawable资源数量
|
||||
stringCount = 300 //生成string数量
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
android {
|
||||
signingConfigs {
|
||||
// 这里“debug”不是一个自定义变量,而是一个特定的关键词,凡是使用--debug模式,都会引用到这里
|
||||
// 目前看来,debug模式没办法在buildTypes里面按flavors指定编译签名,所有口味的debug模式只能用同一个签名
|
||||
debug {
|
||||
storeFile file("starlock.keystore")
|
||||
storePassword '123456'
|
||||
keyAlias = 'starlock'
|
||||
keyPassword '123456'
|
||||
storeFile file("starlock.keystore")
|
||||
storePassword '123456'
|
||||
keyAlias = 'starlock'
|
||||
keyPassword '123456'
|
||||
// storeFile file("xhj.jks")
|
||||
// storePassword 'xhj8872'
|
||||
// keyAlias = 'upload'
|
||||
@ -78,13 +74,6 @@ android {
|
||||
keyAlias = 'upload'
|
||||
keyPassword 'xhj8872'
|
||||
}
|
||||
|
||||
xhj_bundle {
|
||||
storeFile file("xhj_bundle.jks")
|
||||
storePassword 'xhj8872'
|
||||
keyAlias = 'xhj'
|
||||
keyPassword 'xhj8872'
|
||||
}
|
||||
}
|
||||
|
||||
// ----- BEGIN flavorDimensions (autogenerated by flutter_flavorizr) -----
|
||||
@ -95,105 +84,36 @@ android {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.starlock.lock.local"
|
||||
signingConfig signingConfigs.debug
|
||||
resValue "string", "app_name", "Star Lock"
|
||||
resValue "string", "app_name", "星锁-local"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.local"
|
||||
}
|
||||
dev {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.starlock.lock.dev"
|
||||
signingConfig signingConfigs.debug
|
||||
resValue "string", "app_name", "Star Lock"
|
||||
resValue "string", "app_name", "星锁-dev"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.dev"
|
||||
}
|
||||
pre {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.starlock.lock.pre"
|
||||
signingConfig signingConfigs.debug
|
||||
resValue "string", "app_name", "Star Lock-P"
|
||||
resValue "string", "app_name", "星锁"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.pre"
|
||||
}
|
||||
sky {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.skychip.lock"
|
||||
signingConfig signingConfigs.sky
|
||||
resValue "string", "app_name", "TTLock Pro"
|
||||
manifestPlaceholders = [
|
||||
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'
|
||||
}
|
||||
sky_pre {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.skychip.lock.pre"
|
||||
signingConfig signingConfigs.sky
|
||||
resValue "string", "app_name", "TTLock Pro-P"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock.pre"
|
||||
}
|
||||
sky_dev {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.skychip.lock.dev"
|
||||
signingConfig signingConfigs.sky
|
||||
resValue "string", "app_name", "TTLock Pro"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock.dev"
|
||||
resValue "string", "app_name", "锁通通"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock"
|
||||
}
|
||||
xhj {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.xhjcn.lock"
|
||||
signingConfig signingConfigs.xhj
|
||||
resValue "string", "app_name", "Star Lock"
|
||||
manifestPlaceholders = [
|
||||
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'
|
||||
}
|
||||
|
||||
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 {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.xhjcn.lock.pre"
|
||||
signingConfig signingConfigs.xhj
|
||||
resValue "string", "app_name", "Star Lock-P"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock.pre"
|
||||
}
|
||||
xhj_dev {
|
||||
dimension "flavor-type"
|
||||
applicationId "com.xhjcn.lock.dev"
|
||||
signingConfig signingConfigs.xhj
|
||||
resValue "string", "app_name", "Star Lock"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock.dev"
|
||||
resValue "string", "app_name", "星星锁"
|
||||
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock"
|
||||
}
|
||||
}
|
||||
|
||||
@ -202,7 +122,7 @@ android {
|
||||
compileSdkVersion flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
lintOptions {
|
||||
lintOptions{
|
||||
checkReleaseBuilds false
|
||||
abortOnError false
|
||||
}
|
||||
@ -226,10 +146,9 @@ android {
|
||||
// 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.
|
||||
minSdkVersion 25
|
||||
targetSdkVersion 35
|
||||
targetSdkVersion 33
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
|
||||
// 为减少体积,使用不同架构分包发布编译选项 flutter build apk --split-per-abi
|
||||
// 所以需要禁用ndk在同一个个包中包含多个架构
|
||||
@ -248,22 +167,22 @@ android {
|
||||
JPUSH_PKGNAME : "这里不重要,在口味配置",
|
||||
//JPush 上注册的包名对应的 Appkey.
|
||||
// JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey
|
||||
JPUSH_APPKEY : "default",//--鑫泓佳AppKey
|
||||
JPUSH_CHANNEL : "default",
|
||||
JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--鑫泓佳AppKey
|
||||
JPUSH_CHANNEL : "flutter_channel",
|
||||
|
||||
//若不集成厂商通道,可直接跳过以下配置
|
||||
//以下为sky的配置
|
||||
// XIAOMI_APPID : "MI-2882303761520287291",
|
||||
// XIAOMI_APPKEY : "MI-5352028744291",
|
||||
//以下均为鑫泓佳的配置
|
||||
XIAOMI_APPID : "default",
|
||||
XIAOMI_APPKEY : "default",
|
||||
OPPO_APPKEY : "default",
|
||||
OPPO_APPID : "default",
|
||||
OPPO_APPSECRET: "default",
|
||||
VIVO_APPKEY : "default",
|
||||
VIVO_APPID : "default",
|
||||
HONOR_APPID : "default",
|
||||
XIAOMI_APPID : "MI-2882303761520314939",
|
||||
XIAOMI_APPKEY : "MI-5312031456939",
|
||||
OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b",
|
||||
OPPO_APPID : "OP-31726001",
|
||||
OPPO_APPSECRET : "OP-05723986bba64183a71530b496922450",
|
||||
// VIVO_APPKEY : "vivo的APPKEY",
|
||||
// VIVO_APPID : "vivo的APPID",
|
||||
HONOR_APPID : "110798531",
|
||||
]
|
||||
splits {
|
||||
abi {
|
||||
@ -279,7 +198,7 @@ android {
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
release {
|
||||
// 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210)
|
||||
// 为release模式设置混淆可以解决地图闪退问题
|
||||
// 真实的解决办法
|
||||
@ -289,33 +208,7 @@ android {
|
||||
productFlavors.dev.signingConfig signingConfigs.debug
|
||||
productFlavors.pre.signingConfig signingConfigs.debug
|
||||
productFlavors.sky.signingConfig signingConfigs.sky
|
||||
productFlavors.sky_dev.signingConfig signingConfigs.sky
|
||||
productFlavors.sky_pre.signingConfig signingConfigs.sky
|
||||
productFlavors.xhj.signingConfig signingConfigs.xhj
|
||||
productFlavors.xhj_dev.signingConfig signingConfigs.xhj
|
||||
productFlavors.xhj_pre.signingConfig signingConfigs.xhj
|
||||
}
|
||||
release {
|
||||
// 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210)
|
||||
// 为release模式设置混淆可以解决地图闪退问题
|
||||
// 真实的解决办法
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
productFlavors.local.signingConfig signingConfigs.debug
|
||||
productFlavors.dev.signingConfig signingConfigs.debug
|
||||
productFlavors.pre.signingConfig signingConfigs.debug
|
||||
productFlavors.sky.signingConfig signingConfigs.sky
|
||||
productFlavors.sky_dev.signingConfig signingConfigs.sky
|
||||
productFlavors.sky_pre.signingConfig signingConfigs.sky
|
||||
productFlavors.xhj.signingConfig signingConfigs.xhj
|
||||
productFlavors.xhj_dev.signingConfig signingConfigs.xhj
|
||||
productFlavors.xhj_pre.signingConfig signingConfigs.xhj
|
||||
}
|
||||
}
|
||||
|
||||
applicationVariants.all { variant ->
|
||||
variant.outputs.all {
|
||||
outputFileName = "app-starlock-${variant.buildType.name}-${variant.flavorName}-${defaultConfig.versionName}.apk"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -326,9 +219,8 @@ flutter {
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
// implementation('com.amap.api:location:5.6.0')
|
||||
// implementation('com.amap.api:3dmap:8.1.0')
|
||||
// implementation('com.amap.api:3dmap-location-search:latest.integration')
|
||||
implementation('com.amap.api:location:5.6.0')
|
||||
implementation('com.amap.api:3dmap:8.1.0')
|
||||
|
||||
implementation 'cn.jiguang.sdk:jpush:5.2.3'
|
||||
// 接入华为厂商
|
||||
@ -340,32 +232,10 @@ dependencies {
|
||||
//接入OPPO厂商
|
||||
implementation 'cn.jiguang.sdk.plugin:oppo:5.2.3'
|
||||
//引入 libs 中的 aar,如果项目中有此依赖不需要重复引用
|
||||
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
|
||||
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
|
||||
//OPPO 3.1.0 aar 及其以上版本需要添加以下依赖
|
||||
implementation 'com.google.code.gson:gson:2.6.2'
|
||||
implementation 'commons-codec:commons-codec:1.6'
|
||||
implementation 'androidx.annotation:annotation:1.1.0'
|
||||
// 接入荣耀厂商
|
||||
implementation 'cn.jiguang.sdk.plugin:honor:5.2.3'
|
||||
//需要单独引入荣耀厂商 aar ,请下载官网 SDK 包并把 jpush-android-xxx-release/third-push/honor/libs 下的 aar 文件单独拷贝一份到应用 module/libs 下
|
||||
// implementation(name: 'HiPushSDK-7.0.61.303', ext: 'aar')
|
||||
//接入 VIVO 厂商
|
||||
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_number": "281500445726",
|
||||
"project_id": "skychip2023-ecdff",
|
||||
"storage_bucket": "skychip2023-ecdff.firebasestorage.app"
|
||||
"storage_bucket": "skychip2023-ecdff.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4d20f",
|
||||
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4d20f",
|
||||
"android_client_info": {
|
||||
"package_name": "com.starlock.lock.local"
|
||||
"package_name": "com.skychip.lock"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
|
||||
@ -1,650 +0,0 @@
|
||||
ʻ
|
||||
ʼ
|
||||
ʽ
|
||||
ʾ
|
||||
ʿ
|
||||
ˆ
|
||||
ˈ
|
||||
ˉ
|
||||
ˊ
|
||||
ˋ
|
||||
ˎ
|
||||
ˏ
|
||||
ˑ
|
||||
י
|
||||
ـ
|
||||
ٴ
|
||||
ᐧ
|
||||
ᴵ
|
||||
ᵎ
|
||||
ᵔ
|
||||
ᵢ
|
||||
ⁱ
|
||||
ﹳ
|
||||
ﹶ
|
||||
゙
|
||||
゙゙
|
||||
ᐧᐧ
|
||||
ᴵᴵ
|
||||
ʻʻ
|
||||
ʽʽ
|
||||
ʼʼ
|
||||
ʿʿ
|
||||
ʾʾ
|
||||
ــ
|
||||
ˆˆ
|
||||
ˉˉ
|
||||
ˈˈ
|
||||
ˋˋ
|
||||
ˊˊ
|
||||
ˏˏ
|
||||
ˎˎ
|
||||
ˑˑ
|
||||
ᵔᵔ
|
||||
יי
|
||||
ᵎᵎ
|
||||
ᵢᵢ
|
||||
ⁱⁱ
|
||||
ﹳﹳ
|
||||
ٴٴ
|
||||
ﹶﹶ
|
||||
ʻʼ
|
||||
ʻʽ
|
||||
ʻʾ
|
||||
ʻʿ
|
||||
ʻˆ
|
||||
ʻˈ
|
||||
ʻˉ
|
||||
ʻˊ
|
||||
ʻˋ
|
||||
ʻˎ
|
||||
ʻˏ
|
||||
ʻˑ
|
||||
ʻי
|
||||
ʻـ
|
||||
ʻٴ
|
||||
ʻᐧ
|
||||
ʻᴵ
|
||||
ʻᵎ
|
||||
ʻᵔ
|
||||
ʻᵢ
|
||||
ʻⁱ
|
||||
ʻﹳ
|
||||
ʻﹶ
|
||||
ʻ゙
|
||||
ʼʻ
|
||||
ʼʽ
|
||||
ʼʾ
|
||||
ʼʿ
|
||||
ʼˆ
|
||||
ʼˈ
|
||||
ʼˉ
|
||||
ʼˊ
|
||||
ʼˋ
|
||||
ʼˎ
|
||||
ʼˏ
|
||||
ʼˑ
|
||||
ʼי
|
||||
ʼـ
|
||||
ʼٴ
|
||||
ʼᐧ
|
||||
ʼᴵ
|
||||
ʼᵎ
|
||||
ʼᵔ
|
||||
ʼᵢ
|
||||
ʼⁱ
|
||||
ʼﹳ
|
||||
ʼﹶ
|
||||
ʼ゙
|
||||
ʽʻ
|
||||
ʽʼ
|
||||
ʽʾ
|
||||
ʽʿ
|
||||
ʽˆ
|
||||
ʽˈ
|
||||
ʽˉ
|
||||
ʽˊ
|
||||
ʽˋ
|
||||
ʽˎ
|
||||
ʽˏ
|
||||
ʽˑ
|
||||
ʽי
|
||||
ʽـ
|
||||
ʽٴ
|
||||
ʽᐧ
|
||||
ʽᴵ
|
||||
ʽᵎ
|
||||
ʽᵔ
|
||||
ʽᵢ
|
||||
ʽⁱ
|
||||
ʽﹳ
|
||||
ʽﹶ
|
||||
ʽ゙
|
||||
ʾʻ
|
||||
ʾʼ
|
||||
ʾʽ
|
||||
ʾʿ
|
||||
ʾˆ
|
||||
ʾˈ
|
||||
ʾˉ
|
||||
ʾˊ
|
||||
ʾˋ
|
||||
ʾˎ
|
||||
ʾˏ
|
||||
ʾˑ
|
||||
ʾי
|
||||
ʾـ
|
||||
ʾٴ
|
||||
ʾᐧ
|
||||
ʾᴵ
|
||||
ʾᵎ
|
||||
ʾᵔ
|
||||
ʾᵢ
|
||||
ʾⁱ
|
||||
ʾﹳ
|
||||
ʾﹶ
|
||||
ʾ゙
|
||||
ʿʻ
|
||||
ʿʼ
|
||||
ʿʽ
|
||||
ʿʾ
|
||||
ʿˆ
|
||||
ʿˈ
|
||||
ʿˉ
|
||||
ʿˊ
|
||||
ʿˋ
|
||||
ʿˎ
|
||||
ʿˏ
|
||||
ʿˑ
|
||||
ʿי
|
||||
ʿـ
|
||||
ʿٴ
|
||||
ʿᐧ
|
||||
ʿᴵ
|
||||
ʿᵎ
|
||||
ʿᵔ
|
||||
ʿᵢ
|
||||
ʿⁱ
|
||||
ʿﹳ
|
||||
ʿﹶ
|
||||
ʿ゙
|
||||
ˆʻ
|
||||
ˆʼ
|
||||
ˆʽ
|
||||
ˆʾ
|
||||
ˆʿ
|
||||
ˆˈ
|
||||
ˆˉ
|
||||
ˆˊ
|
||||
ˆˋ
|
||||
ˆˎ
|
||||
ˆˏ
|
||||
ˆˑ
|
||||
ˆי
|
||||
ˆـ
|
||||
ˆٴ
|
||||
ˆᐧ
|
||||
ˆᴵ
|
||||
ˆᵎ
|
||||
ˆᵔ
|
||||
ˆᵢ
|
||||
ˆⁱ
|
||||
ˆﹳ
|
||||
ˆﹶ
|
||||
ˆ゙
|
||||
ˈʻ
|
||||
ˈʼ
|
||||
ˈʽ
|
||||
ˈʾ
|
||||
ˈʿ
|
||||
ˈˆ
|
||||
ˈˉ
|
||||
ˈˊ
|
||||
ˈˋ
|
||||
ˈˎ
|
||||
ˈˏ
|
||||
ˈˑ
|
||||
ˈי
|
||||
ˈـ
|
||||
ˈٴ
|
||||
ˈᐧ
|
||||
ˈᴵ
|
||||
ˈᵎ
|
||||
ˈᵔ
|
||||
ˈᵢ
|
||||
ˈⁱ
|
||||
ˈﹳ
|
||||
ˈﹶ
|
||||
ˈ゙
|
||||
ˉʻ
|
||||
ˉʼ
|
||||
ˉʽ
|
||||
ˉʾ
|
||||
ˉʿ
|
||||
ˉˆ
|
||||
ˉˈ
|
||||
ˉˊ
|
||||
ˉˋ
|
||||
ˉˎ
|
||||
ˉˏ
|
||||
ˉˑ
|
||||
ˉי
|
||||
ˉـ
|
||||
ˉٴ
|
||||
ˉᐧ
|
||||
ˉᴵ
|
||||
ˉᵎ
|
||||
ˉᵔ
|
||||
ˉᵢ
|
||||
ˉⁱ
|
||||
ˉﹳ
|
||||
ˉﹶ
|
||||
ˉ゙
|
||||
ˊʻ
|
||||
ˊʼ
|
||||
ˊʽ
|
||||
ˊʾ
|
||||
ˊʿ
|
||||
ˊˆ
|
||||
ˊˈ
|
||||
ˊˉ
|
||||
ˊˋ
|
||||
ˊˎ
|
||||
ˊˏ
|
||||
ˊˑ
|
||||
ˊי
|
||||
ˊـ
|
||||
ˊٴ
|
||||
ˊᐧ
|
||||
ˊᴵ
|
||||
ˊᵎ
|
||||
ˊᵔ
|
||||
ˊᵢ
|
||||
ˊⁱ
|
||||
ˊﹳ
|
||||
ˊﹶ
|
||||
ˊ゙
|
||||
ˋʻ
|
||||
ˋʼ
|
||||
ˋʽ
|
||||
ˋʾ
|
||||
ˋʿ
|
||||
ˋˆ
|
||||
ˋˈ
|
||||
ˋˉ
|
||||
ˋˊ
|
||||
ˋˎ
|
||||
ˋˏ
|
||||
ˋˑ
|
||||
ˋי
|
||||
ˋـ
|
||||
ˋٴ
|
||||
ˋᐧ
|
||||
ˋᴵ
|
||||
ˋᵎ
|
||||
ˋᵔ
|
||||
ˋᵢ
|
||||
ˋⁱ
|
||||
ˋﹳ
|
||||
ˋﹶ
|
||||
ˋ゙
|
||||
ˎʻ
|
||||
ˎʼ
|
||||
ˎʽ
|
||||
ˎʾ
|
||||
ˎʿ
|
||||
ˎˆ
|
||||
ˎˈ
|
||||
ˎˉ
|
||||
ˎˊ
|
||||
ˎˋ
|
||||
ˎˏ
|
||||
ˎˑ
|
||||
ˎי
|
||||
ˎـ
|
||||
ˎٴ
|
||||
ˎᐧ
|
||||
ˎᴵ
|
||||
ˎᵎ
|
||||
ˎᵔ
|
||||
ˎᵢ
|
||||
ˎⁱ
|
||||
ˎﹳ
|
||||
ˎﹶ
|
||||
ˎ゙
|
||||
ˏʻ
|
||||
ˏʼ
|
||||
ˏʽ
|
||||
ˏʾ
|
||||
ˏʿ
|
||||
ˏˆ
|
||||
ˏˈ
|
||||
ˏˉ
|
||||
ˏˊ
|
||||
ˏˋ
|
||||
ˏˎ
|
||||
ˏˑ
|
||||
ˏי
|
||||
ˏـ
|
||||
ˏٴ
|
||||
ˏᐧ
|
||||
ˏᴵ
|
||||
ˏᵎ
|
||||
ˏᵔ
|
||||
ˏᵢ
|
||||
ˏⁱ
|
||||
ˏﹳ
|
||||
ˏﹶ
|
||||
ˏ゙
|
||||
ˑʻ
|
||||
ˑʼ
|
||||
ˑʽ
|
||||
ˑʾ
|
||||
ˑʿ
|
||||
ˑˆ
|
||||
ˑˈ
|
||||
ˑˉ
|
||||
ˑˊ
|
||||
ˑˋ
|
||||
ˑˎ
|
||||
ˑˏ
|
||||
ˑי
|
||||
ˑـ
|
||||
ˑٴ
|
||||
ˑᐧ
|
||||
ˑᴵ
|
||||
ˑᵎ
|
||||
ˑᵔ
|
||||
ˑᵢ
|
||||
ˑⁱ
|
||||
ˑﹳ
|
||||
ˑﹶ
|
||||
ˑ゙
|
||||
יʻ
|
||||
יʼ
|
||||
יʽ
|
||||
יʾ
|
||||
יʿ
|
||||
יˆ
|
||||
יˈ
|
||||
יˉ
|
||||
יˊ
|
||||
יˋ
|
||||
יˎ
|
||||
יˏ
|
||||
יˑ
|
||||
יـ
|
||||
יٴ
|
||||
יᐧ
|
||||
יᴵ
|
||||
יᵎ
|
||||
יᵔ
|
||||
יᵢ
|
||||
יⁱ
|
||||
יﹳ
|
||||
יﹶ
|
||||
י゙
|
||||
ـʻ
|
||||
ـʼ
|
||||
ـʽ
|
||||
ـʾ
|
||||
ـʿ
|
||||
ـˆ
|
||||
ـˈ
|
||||
ـˉ
|
||||
ـˊ
|
||||
ـˋ
|
||||
ـˎ
|
||||
ـˏ
|
||||
ـˑ
|
||||
ـי
|
||||
ـٴ
|
||||
ـᐧ
|
||||
ـᴵ
|
||||
ـᵎ
|
||||
ـᵔ
|
||||
ـᵢ
|
||||
ـⁱ
|
||||
ـﹳ
|
||||
ـﹶ
|
||||
ـ゙
|
||||
ٴʻ
|
||||
ٴʼ
|
||||
ٴʽ
|
||||
ٴʾ
|
||||
ٴʿ
|
||||
ٴˆ
|
||||
ٴˈ
|
||||
ٴˉ
|
||||
ٴˊ
|
||||
ٴˋ
|
||||
ٴˎ
|
||||
ٴˏ
|
||||
ٴˑ
|
||||
ٴי
|
||||
ٴـ
|
||||
ٴᐧ
|
||||
ٴᴵ
|
||||
ٴᵎ
|
||||
ٴᵔ
|
||||
ٴᵢ
|
||||
ٴⁱ
|
||||
ٴﹳ
|
||||
ٴﹶ
|
||||
ٴ゙
|
||||
ᐧʻ
|
||||
ᐧʼ
|
||||
ᐧʽ
|
||||
ᐧʾ
|
||||
ᐧʿ
|
||||
ᐧˆ
|
||||
ᐧˈ
|
||||
ᐧˉ
|
||||
ᐧˊ
|
||||
ᐧˋ
|
||||
ᐧˎ
|
||||
ᐧˏ
|
||||
ᐧˑ
|
||||
ᐧי
|
||||
ᐧـ
|
||||
ᐧٴ
|
||||
ᐧᴵ
|
||||
ᐧᵎ
|
||||
ᐧᵔ
|
||||
ᐧᵢ
|
||||
ᐧⁱ
|
||||
ᐧﹳ
|
||||
ᐧﹶ
|
||||
ᐧ゙
|
||||
ᴵʻ
|
||||
ᴵʼ
|
||||
ᴵʽ
|
||||
ᴵʾ
|
||||
ᴵʿ
|
||||
ᴵˆ
|
||||
ᴵˈ
|
||||
ᴵˉ
|
||||
ᴵˊ
|
||||
ᴵˋ
|
||||
ᴵˎ
|
||||
ᴵˏ
|
||||
ᴵˑ
|
||||
ᴵי
|
||||
ᴵـ
|
||||
ᴵٴ
|
||||
ᴵᐧ
|
||||
ᴵᵎ
|
||||
ᴵᵔ
|
||||
ᴵᵢ
|
||||
ᴵⁱ
|
||||
ᴵﹳ
|
||||
ᴵﹶ
|
||||
ᴵ゙
|
||||
ᵎʻ
|
||||
ᵎʼ
|
||||
ᵎʽ
|
||||
ᵎʾ
|
||||
ᵎʿ
|
||||
ᵎˆ
|
||||
ᵎˈ
|
||||
ᵎˉ
|
||||
ᵎˊ
|
||||
ᵎˋ
|
||||
ᵎˎ
|
||||
ᵎˏ
|
||||
ᵎˑ
|
||||
ᵎי
|
||||
ᵎـ
|
||||
ᵎٴ
|
||||
ᵎᐧ
|
||||
ᵎᴵ
|
||||
ᵎᵔ
|
||||
ᵎᵢ
|
||||
ᵎⁱ
|
||||
ᵎﹳ
|
||||
ᵎﹶ
|
||||
ᵎ゙
|
||||
ᵔʻ
|
||||
ᵔʼ
|
||||
ᵔʽ
|
||||
ᵔʾ
|
||||
ᵔʿ
|
||||
ᵔˆ
|
||||
ᵔˈ
|
||||
ᵔˉ
|
||||
ᵔˊ
|
||||
ᵔˋ
|
||||
ᵔˎ
|
||||
ᵔˏ
|
||||
ᵔˑ
|
||||
ᵔי
|
||||
ᵔـ
|
||||
ᵔٴ
|
||||
ᵔᐧ
|
||||
ᵔᴵ
|
||||
ᵔᵎ
|
||||
ᵔᵢ
|
||||
ᵔⁱ
|
||||
ᵔﹳ
|
||||
ᵔﹶ
|
||||
ᵔ゙
|
||||
ᵢʻ
|
||||
ᵢʼ
|
||||
ᵢʽ
|
||||
ᵢʾ
|
||||
ᵢʿ
|
||||
ᵢˆ
|
||||
ᵢˈ
|
||||
ᵢˉ
|
||||
ᵢˊ
|
||||
ᵢˋ
|
||||
ᵢˎ
|
||||
ᵢˏ
|
||||
ᵢˑ
|
||||
ᵢי
|
||||
ᵢـ
|
||||
ᵢٴ
|
||||
ᵢᐧ
|
||||
ᵢᴵ
|
||||
ᵢᵎ
|
||||
ᵢᵔ
|
||||
ᵢⁱ
|
||||
ᵢﹳ
|
||||
ᵢﹶ
|
||||
ᵢ゙
|
||||
ⁱʻ
|
||||
ⁱʼ
|
||||
ⁱʽ
|
||||
ⁱʾ
|
||||
ⁱʿ
|
||||
ⁱˆ
|
||||
ⁱˈ
|
||||
ⁱˉ
|
||||
ⁱˊ
|
||||
ⁱˋ
|
||||
ⁱˎ
|
||||
ⁱˏ
|
||||
ⁱˑ
|
||||
ⁱי
|
||||
ⁱـ
|
||||
ⁱٴ
|
||||
ⁱᐧ
|
||||
ⁱᴵ
|
||||
ⁱᵎ
|
||||
ⁱᵔ
|
||||
ⁱᵢ
|
||||
ⁱﹳ
|
||||
ⁱﹶ
|
||||
ⁱ゙
|
||||
ﹳʻ
|
||||
ﹳʼ
|
||||
ﹳʽ
|
||||
ﹳʾ
|
||||
ﹳʿ
|
||||
ﹳˆ
|
||||
ﹳˈ
|
||||
ﹳˉ
|
||||
ﹳˊ
|
||||
ﹳˋ
|
||||
ﹳˎ
|
||||
ﹳˏ
|
||||
ﹳˑ
|
||||
ﹳי
|
||||
ﹳـ
|
||||
ﹳٴ
|
||||
ﹳᐧ
|
||||
ﹳᴵ
|
||||
ﹳᵎ
|
||||
ﹳᵔ
|
||||
ﹳᵢ
|
||||
ﹳⁱ
|
||||
ﹳﹶ
|
||||
ﹳ゙
|
||||
ﹶʻ
|
||||
ﹶʼ
|
||||
ﹶʽ
|
||||
ﹶʾ
|
||||
ﹶʿ
|
||||
ﹶˆ
|
||||
ﹶˈ
|
||||
ﹶˉ
|
||||
ﹶˊ
|
||||
ﹶˋ
|
||||
ﹶˎ
|
||||
ﹶˏ
|
||||
ﹶˑ
|
||||
ﹶי
|
||||
ﹶـ
|
||||
ﹶٴ
|
||||
ﹶᐧ
|
||||
ﹶᴵ
|
||||
ﹶᵎ
|
||||
ﹶᵔ
|
||||
ﹶᵢ
|
||||
ﹶⁱ
|
||||
ﹶﹳ
|
||||
ﹶ゙
|
||||
゙ʻ
|
||||
゙ʼ
|
||||
゙ʽ
|
||||
゙ʾ
|
||||
゙ʿ
|
||||
゙ˆ
|
||||
゙ˈ
|
||||
゙ˉ
|
||||
゙ˊ
|
||||
゙ˋ
|
||||
゙ˎ
|
||||
゙ˏ
|
||||
゙ˑ
|
||||
゙י
|
||||
゙ـ
|
||||
゙ٴ
|
||||
゙ᐧ
|
||||
゙ᴵ
|
||||
゙ᵎ
|
||||
゙ᵔ
|
||||
゙ᵢ
|
||||
゙ⁱ
|
||||
゙ﹳ
|
||||
゙ﹶ
|
||||
@ -1,155 +0,0 @@
|
||||
-obfuscationdictionary ./proguard-dictionary-1il
|
||||
-classobfuscationdictionary ./proguard-dictionary-1il
|
||||
-packageobfuscationdictionary ./proguard-dictionary-1il
|
||||
|
||||
#Flutter Wrapper
|
||||
-keep class io.flutter.app.** { *; }
|
||||
-keep class io.flutter.plugin.** { *; }
|
||||
-keep class io.flutter.util.** { *; }
|
||||
-keep class io.flutter.view.** { *; }
|
||||
-keep class io.flutter.** { *; }
|
||||
-keep class io.flutter.plugins.** { *; }
|
||||
|
||||
-keepattributes Signature
|
||||
-keepattributes InnerClasses,EnclosingMethod
|
||||
-keepattributes *Annotation*
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
-dontwarn com.hwangjr.rxbus.**
|
||||
-keep class com.hwangjr.rxbus.** { *; }
|
||||
-keepattributes *Annotation*
|
||||
|
||||
# Retain generic type information for use by reflection by converters and adapters.
|
||||
-keepattributes Signature
|
||||
# Retain declared checked exceptions for use by a Proxy instance.
|
||||
-keepattributes Exceptions
|
||||
|
||||
-dontwarn com.jcraft.jzlib.**
|
||||
-keep class com.jcraft.jzlib.** { *;}
|
||||
|
||||
-dontwarn sun.misc.**
|
||||
-keep class sun.misc.** { *;}
|
||||
|
||||
-dontwarn retrofit2.**
|
||||
-keep class retrofit2.** { *;}
|
||||
|
||||
-dontwarn io.reactivex.**
|
||||
-keep class io.reactivex.** { *;}
|
||||
|
||||
-dontwarn sun.security.**
|
||||
-keep class sun.security.** { *; }
|
||||
|
||||
-dontwarn com.google.**
|
||||
-keep class com.google.** { *;}
|
||||
|
||||
-keep public class android.net.http.SslError
|
||||
-keep public class android.webkit.WebViewClient
|
||||
|
||||
-dontwarn android.webkit.WebView
|
||||
-dontwarn android.net.http.SslError
|
||||
-dontwarn android.webkit.WebViewClient
|
||||
|
||||
-dontwarn android.support.**
|
||||
|
||||
-dontwarn org.apache.**
|
||||
-keep class org.apache.** { *;}
|
||||
|
||||
-dontwarn okhttp3.**
|
||||
-keep class okhttp3.** { *;}
|
||||
-keep interface okhttp3.** { *; }
|
||||
|
||||
-dontwarn okio.**
|
||||
-keep class okio.** { *;}
|
||||
|
||||
-keep class **JNI* {*;}
|
||||
|
||||
-keep class com.lib.flutter_blue_plus.* { *; }
|
||||
|
||||
-ignorewarnings
|
||||
-keepattributes *Annotation*
|
||||
-keepattributes Exceptions
|
||||
-keepattributes InnerClasses
|
||||
-keepattributes Signature
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
-keep class com.huawei.hianalytics.**{*;}
|
||||
-keep class com.huawei.updatesdk.**{*;}
|
||||
-keep class com.huawei.hms.**{*;}
|
||||
|
||||
|
||||
-keep public class * extends android.app.Service
|
||||
-keep class com.heytap.msp.** { *;}
|
||||
|
||||
-dontwarn com.vivo.push.**
|
||||
-keep class com.vivo.push.**{*; }
|
||||
-keep class com.vivo.vms.**{*; }
|
||||
|
||||
|
||||
-dontoptimize
|
||||
-dontpreverify
|
||||
-dontwarn cn.jpush.**
|
||||
-keep class cn.jpush.** { *; }
|
||||
-keep class * extends cn.jpush.android.service.JPushMessageService { *; }
|
||||
-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.**
|
||||
-keep class com.google.gson.** {*;}
|
||||
-keep class com.google.protobuf.** {*;}
|
||||
|
||||
-keep class com.amap.api.maps.** { *; }
|
||||
-keep class com.autonavi.** { *; }
|
||||
-keep class com.amap.api.trace.** {*; }
|
||||
|
||||
-keep class com.amap.api.location.** {*; }
|
||||
-keep class com.amap.api.fence.** { *; }
|
||||
-keep class com.loc.** { *; }
|
||||
-keep class com.amap.flutter.location.** { *; }
|
||||
-keep class com.autonavi.aps.amapapi.model.** { *; }
|
||||
|
||||
-keep class com.amap.api.services.** { *; }
|
||||
|
||||
-keep class com.amap.api.maps2d.** { *; }
|
||||
-keep class com.amap.api.mapcore2d.** { *; }
|
||||
|
||||
-keep class com.amap.api.navi.** { *; }
|
||||
|
||||
|
||||
-keep class com.alipay.deviceid.** { *; }
|
||||
-keep class net.security.device.api.** {*;}
|
||||
-keep class org.json.** { *;}
|
||||
-keep class com.alibaba.fastjson.** {*;}
|
||||
-keep class com.alibaba.sdk.android.oss.** { *; }
|
||||
|
||||
-dontwarn okio.**
|
||||
-dontwarn org.apache.commons.codec.binary.**
|
||||
|
||||
-keepclassmembers,allowobfuscation class * {
|
||||
@com.alibaba.fastjson.annotation.JSONField <fields>;
|
||||
}
|
||||
|
||||
-keep class com.tencent.mm.sdk.** { *; }
|
||||
-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.**$* { *; }
|
||||
@ -1,155 +0,0 @@
|
||||
-obfuscationdictionary ./proguard-dictionary-symbol
|
||||
-classobfuscationdictionary ./proguard-dictionary-symbol
|
||||
-packageobfuscationdictionary ./proguard-dictionary-symbol
|
||||
|
||||
#Flutter Wrapper
|
||||
-keep class io.flutter.app.** { *; }
|
||||
-keep class io.flutter.plugin.** { *; }
|
||||
-keep class io.flutter.util.** { *; }
|
||||
-keep class io.flutter.view.** { *; }
|
||||
-keep class io.flutter.** { *; }
|
||||
-keep class io.flutter.plugins.** { *; }
|
||||
|
||||
-keepattributes Signature
|
||||
-keepattributes InnerClasses,EnclosingMethod
|
||||
-keepattributes *Annotation*
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
-dontwarn com.hwangjr.rxbus.**
|
||||
-keep class com.hwangjr.rxbus.** { *; }
|
||||
-keepattributes *Annotation*
|
||||
|
||||
# Retain generic type information for use by reflection by converters and adapters.
|
||||
-keepattributes Signature
|
||||
# Retain declared checked exceptions for use by a Proxy instance.
|
||||
-keepattributes Exceptions
|
||||
|
||||
-dontwarn com.jcraft.jzlib.**
|
||||
-keep class com.jcraft.jzlib.** { *;}
|
||||
|
||||
-dontwarn sun.misc.**
|
||||
-keep class sun.misc.** { *;}
|
||||
|
||||
-dontwarn retrofit2.**
|
||||
-keep class retrofit2.** { *;}
|
||||
|
||||
-dontwarn io.reactivex.**
|
||||
-keep class io.reactivex.** { *;}
|
||||
|
||||
-dontwarn sun.security.**
|
||||
-keep class sun.security.** { *; }
|
||||
|
||||
-dontwarn com.google.**
|
||||
-keep class com.google.** { *;}
|
||||
|
||||
-keep public class android.net.http.SslError
|
||||
-keep public class android.webkit.WebViewClient
|
||||
|
||||
-dontwarn android.webkit.WebView
|
||||
-dontwarn android.net.http.SslError
|
||||
-dontwarn android.webkit.WebViewClient
|
||||
|
||||
-dontwarn android.support.**
|
||||
|
||||
-dontwarn org.apache.**
|
||||
-keep class org.apache.** { *;}
|
||||
|
||||
-dontwarn okhttp3.**
|
||||
-keep class okhttp3.** { *;}
|
||||
-keep interface okhttp3.** { *; }
|
||||
|
||||
-dontwarn okio.**
|
||||
-keep class okio.** { *;}
|
||||
|
||||
-keep class **JNI* {*;}
|
||||
|
||||
-keep class com.lib.flutter_blue_plus.* { *; }
|
||||
|
||||
-ignorewarnings
|
||||
-keepattributes *Annotation*
|
||||
-keepattributes Exceptions
|
||||
-keepattributes InnerClasses
|
||||
-keepattributes Signature
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
-keep class com.huawei.hianalytics.**{*;}
|
||||
-keep class com.huawei.updatesdk.**{*;}
|
||||
-keep class com.huawei.hms.**{*;}
|
||||
|
||||
|
||||
-keep public class * extends android.app.Service
|
||||
-keep class com.heytap.msp.** { *;}
|
||||
|
||||
-dontwarn com.vivo.push.**
|
||||
-keep class com.vivo.push.**{*; }
|
||||
-keep class com.vivo.vms.**{*; }
|
||||
|
||||
|
||||
-dontoptimize
|
||||
-dontpreverify
|
||||
-dontwarn cn.jpush.**
|
||||
-keep class cn.jpush.** { *; }
|
||||
-keep class * extends cn.jpush.android.service.JPushMessageService { *; }
|
||||
-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.**
|
||||
-keep class com.google.gson.** {*;}
|
||||
-keep class com.google.protobuf.** {*;}
|
||||
|
||||
-keep class com.amap.api.maps.** { *; }
|
||||
-keep class com.autonavi.** { *; }
|
||||
-keep class com.amap.api.trace.** {*; }
|
||||
|
||||
-keep class com.amap.api.location.** {*; }
|
||||
-keep class com.amap.api.fence.** { *; }
|
||||
-keep class com.loc.** { *; }
|
||||
-keep class com.amap.flutter.location.** { *; }
|
||||
-keep class com.autonavi.aps.amapapi.model.** { *; }
|
||||
|
||||
-keep class com.amap.api.services.** { *; }
|
||||
|
||||
-keep class com.amap.api.maps2d.** { *; }
|
||||
-keep class com.amap.api.mapcore2d.** { *; }
|
||||
|
||||
-keep class com.amap.api.navi.** { *; }
|
||||
|
||||
|
||||
-keep class com.alipay.deviceid.** { *; }
|
||||
-keep class net.security.device.api.** {*;}
|
||||
-keep class org.json.** { *;}
|
||||
-keep class com.alibaba.fastjson.** {*;}
|
||||
-keep class com.alibaba.sdk.android.oss.** { *; }
|
||||
|
||||
-dontwarn okio.**
|
||||
-dontwarn org.apache.commons.codec.binary.**
|
||||
|
||||
-keepclassmembers,allowobfuscation class * {
|
||||
@com.alibaba.fastjson.annotation.JSONField <fields>;
|
||||
}
|
||||
|
||||
-keep class com.tencent.mm.sdk.** { *; }
|
||||
-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.**$* { *; }
|
||||
157
android/app/proguard-rules.pro
vendored
@ -1,157 +0,0 @@
|
||||
-obfuscationdictionary ./proguard-dictionary-chinese
|
||||
-classobfuscationdictionary ./proguard-dictionary-chinese
|
||||
-packageobfuscationdictionary ./proguard-dictionary-chinese
|
||||
|
||||
#Flutter Wrapper
|
||||
-keep class io.flutter.app.** { *; }
|
||||
-keep class io.flutter.plugin.** { *; }
|
||||
-keep class io.flutter.util.** { *; }
|
||||
-keep class io.flutter.view.** { *; }
|
||||
-keep class io.flutter.** { *; }
|
||||
-keep class io.flutter.plugins.** { *; }
|
||||
|
||||
-keepattributes Signature
|
||||
-keepattributes InnerClasses,EnclosingMethod
|
||||
-keepattributes *Annotation*
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
-dontwarn com.hwangjr.rxbus.**
|
||||
-keep class com.hwangjr.rxbus.** { *; }
|
||||
-keepattributes *Annotation*
|
||||
|
||||
# Retain generic type information for use by reflection by converters and adapters.
|
||||
-keepattributes Signature
|
||||
# Retain declared checked exceptions for use by a Proxy instance.
|
||||
-keepattributes Exceptions
|
||||
|
||||
-dontwarn com.jcraft.jzlib.**
|
||||
-keep class com.jcraft.jzlib.** { *;}
|
||||
|
||||
-dontwarn sun.misc.**
|
||||
-keep class sun.misc.** { *;}
|
||||
|
||||
-dontwarn retrofit2.**
|
||||
-keep class retrofit2.** { *;}
|
||||
|
||||
-dontwarn io.reactivex.**
|
||||
-keep class io.reactivex.** { *;}
|
||||
|
||||
-dontwarn sun.security.**
|
||||
-keep class sun.security.** { *; }
|
||||
|
||||
-dontwarn com.google.**
|
||||
-keep class com.google.** { *;}
|
||||
|
||||
-keep public class android.net.http.SslError
|
||||
-keep public class android.webkit.WebViewClient
|
||||
|
||||
-dontwarn android.webkit.WebView
|
||||
-dontwarn android.net.http.SslError
|
||||
-dontwarn android.webkit.WebViewClient
|
||||
|
||||
-dontwarn android.support.**
|
||||
|
||||
-dontwarn org.apache.**
|
||||
-keep class org.apache.** { *;}
|
||||
|
||||
-dontwarn okhttp3.**
|
||||
-keep class okhttp3.** { *;}
|
||||
-keep interface okhttp3.** { *; }
|
||||
|
||||
-dontwarn okio.**
|
||||
-keep class okio.** { *;}
|
||||
|
||||
-keep class **JNI* {*;}
|
||||
|
||||
-keep class com.lib.flutter_blue_plus.* { *; }
|
||||
|
||||
-ignorewarnings
|
||||
-keepattributes *Annotation*
|
||||
-keepattributes Exceptions
|
||||
-keepattributes InnerClasses
|
||||
-keepattributes Signature
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
-keep class com.huawei.hianalytics.**{*;}
|
||||
-keep class com.huawei.updatesdk.**{*;}
|
||||
-keep class com.huawei.hms.**{*;}
|
||||
|
||||
|
||||
-keep public class * extends android.app.Service
|
||||
-keep class com.heytap.msp.** { *;}
|
||||
|
||||
-dontwarn com.vivo.push.**
|
||||
-keep class com.vivo.push.**{*; }
|
||||
-keep class com.vivo.vms.**{*; }
|
||||
|
||||
|
||||
-dontoptimize
|
||||
-dontpreverify
|
||||
-dontwarn cn.jpush.**
|
||||
-keep class cn.jpush.** { *; }
|
||||
-keep class * extends cn.jpush.android.service.JPushMessageService { *; }
|
||||
-dontwarn 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.**
|
||||
-keep class com.google.gson.** {*;}
|
||||
-keep class com.google.protobuf.** {*;}
|
||||
|
||||
-keep class com.amap.api.maps.** { *; }
|
||||
-keep class com.autonavi.** { *; }
|
||||
-keep class com.amap.api.trace.** {*; }
|
||||
|
||||
-keep class com.amap.api.location.** {*; }
|
||||
-keep class com.amap.api.fence.** { *; }
|
||||
-keep class com.loc.** { *; }
|
||||
-keep class com.amap.flutter.location.** { *; }
|
||||
-keep class com.autonavi.aps.amapapi.model.** { *; }
|
||||
|
||||
-keep class com.amap.api.services.** { *; }
|
||||
|
||||
-keep class com.amap.api.maps2d.** { *; }
|
||||
-keep class com.amap.api.mapcore2d.** { *; }
|
||||
|
||||
-keep class com.amap.api.navi.** { *; }
|
||||
|
||||
|
||||
-keep class com.alipay.deviceid.** { *; }
|
||||
-keep class net.security.device.api.** {*;}
|
||||
-keep class org.json.** { *;}
|
||||
-keep class com.alibaba.fastjson.** {*;}
|
||||
-keep class com.alibaba.sdk.android.oss.** { *; }
|
||||
|
||||
-dontwarn okio.**
|
||||
-dontwarn org.apache.commons.codec.binary.**
|
||||
|
||||
-keepclassmembers,allowobfuscation class * {
|
||||
@com.alibaba.fastjson.annotation.JSONField <fields>;
|
||||
}
|
||||
|
||||
-keep class com.tencent.mm.sdk.** { *; }
|
||||
-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"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.skychip.lock">
|
||||
package="com.example.star_lock">
|
||||
|
||||
<uses-permission
|
||||
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" />
|
||||
<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" />
|
||||
<!--申请调用A-GPS模块-->
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
||||
<!--允许获取精确位置,精准定位必选-->
|
||||
<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.READ_LOGS" />
|
||||
<!--联系人-->
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
|
||||
<!--相机-->
|
||||
<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.READ_MEDIA_IMAGES" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||
@ -58,70 +56,34 @@
|
||||
android:name="android.permission.QUERY_ALL_PACKAGES"
|
||||
tools:node="remove" />
|
||||
|
||||
<uses-permission android:name="com.hihonor.permission.sec.SDK_LAUNCHER" />
|
||||
|
||||
<application
|
||||
android:name=".App"
|
||||
android:name="android.app.Application"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:usesCleartextTraffic="true">
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.provider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
|
||||
android:resource="@mipmap/ic_launcher" />
|
||||
<meta-data
|
||||
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
||||
android:value="1" /> <!-- 将您的通知渠道ID替换为您的实际ID -->
|
||||
<!-- <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="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" />-->
|
||||
|
||||
<service
|
||||
android:name="com.huawei.hms.push.HmsMessageService"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
|
||||
<receiver
|
||||
android:name="com.huawei.hms.support.api.push.PushReceiver"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="com.huawei.android.push.intent.REGISTRATION" />
|
||||
<action android:name="com.huawei.android.push.intent.RECEIVE" />
|
||||
<category android:name="${applicationId}" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
<meta-data
|
||||
android:name="OPPO_APPID"
|
||||
android:value="OP-31726001" />
|
||||
|
||||
<meta-data
|
||||
android:name="OPPO_APPSECRET"
|
||||
android:value="OP-05723986bba64183a71530b496922450" />
|
||||
<!-- 配置定位Service -->
|
||||
<service android:name="com.amap.api.location.APSService" />
|
||||
<!-- since JPushv3.6.8 ,oppov2.1.0 oppo 核心功能-->
|
||||
@ -147,7 +109,7 @@
|
||||
</intent-filter>
|
||||
</service> <!--兼容Q版本-->
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:name="com.skychip.lock.MainActivity"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:exported="true"
|
||||
android:hardwareAccelerated="true"
|
||||
@ -177,18 +139,6 @@
|
||||
</intent-filter>
|
||||
|
||||
</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>
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -9,26 +9,15 @@ import io.flutter.plugin.common.MethodChannel
|
||||
import io.flutter.embedding.engine.FlutterEngine;
|
||||
import io.flutter.plugins.GeneratedPluginRegistrant
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import androidx.core.content.FileProvider
|
||||
import java.io.File
|
||||
|
||||
class MainActivity : FlutterActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
GeneratedPluginRegistrant.registerWith(flutterEngine!!)
|
||||
MethodChannel(
|
||||
flutterEngine?.dartExecutor!!.binaryMessenger,
|
||||
"starLockFlutterSend"
|
||||
).setMethodCallHandler { call, result ->
|
||||
MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result ->
|
||||
if (call.method == "loadNativeShare") {
|
||||
val map = call.arguments as Map<String, String>
|
||||
val shareText = map["shareText"]
|
||||
val urlToShare = map["urlToShare"]
|
||||
if (urlToShare == "fileShare") {
|
||||
shareFile(shareText)
|
||||
} else {
|
||||
shareText(shareText, "分享")
|
||||
}
|
||||
var map = call.arguments as Map<String, String>
|
||||
shareText(map["shareText"] , "分享")
|
||||
} else if (call.method == "sendGetBlueStatus") {
|
||||
// 蓝牙是否开启
|
||||
// println("收到原生的信息了 methodmethodmethod: ${call.method}")
|
||||
@ -47,10 +36,7 @@ class MainActivity : FlutterActivity() {
|
||||
status = "-1"
|
||||
}
|
||||
val flutterEngine: FlutterEngine? = this.flutterEngine // 获取你的 FlutterEngine 实例
|
||||
MethodChannel(
|
||||
flutterEngine?.dartExecutor!!.binaryMessenger,
|
||||
"starLockFlutterReceive"
|
||||
).invokeMethod("getBlueStatus", status)
|
||||
MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterReceive").invokeMethod("getBlueStatus", status)
|
||||
} else {
|
||||
result.notImplemented() // 没有实现的方法
|
||||
}
|
||||
@ -70,45 +56,13 @@ class MainActivity : FlutterActivity() {
|
||||
startActivity(Intent.createChooser(shareIntent, null))
|
||||
}
|
||||
|
||||
fun shareFile(filePath: String?) {
|
||||
if (filePath == null) {
|
||||
return
|
||||
}
|
||||
val file = File(filePath)
|
||||
if (!file.exists()) {
|
||||
Log.e("File Share", "文件不存在: $filePath")
|
||||
return
|
||||
}
|
||||
val uri: Uri = FileProvider.getUriForFile(
|
||||
this,
|
||||
"${packageName}.provider",
|
||||
file
|
||||
)
|
||||
val shareIntent = Intent().apply {
|
||||
action = Intent.ACTION_SEND
|
||||
putExtra(Intent.EXTRA_STREAM, uri)
|
||||
type = "application/octet-stream"
|
||||
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
||||
}
|
||||
startActivity(Intent.createChooser(shareIntent, null))
|
||||
}
|
||||
|
||||
|
||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||
GeneratedPluginRegistrant.registerWith(flutterEngine)
|
||||
MethodChannel(
|
||||
flutterEngine.dartExecutor.binaryMessenger,
|
||||
"starLockFlutterSend"
|
||||
).setMethodCallHandler { call, result ->
|
||||
GeneratedPluginRegistrant.registerWith(flutterEngine);
|
||||
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result ->
|
||||
println("methodmethodmethod: ${call.method}")
|
||||
// 在这里处理从 Flutter 发送过来的方法调用
|
||||
if (call.method == "loadNativeShare") {
|
||||
val map = call.arguments as Map<String, String>
|
||||
val shareText = map["shareText"]
|
||||
val urlToShare = map["urlToShare"]
|
||||
if (urlToShare == "fileShare") {
|
||||
shareFile(shareText)
|
||||
} else {
|
||||
shareText(shareText, "分享")
|
||||
}
|
||||
println("methodmethodmethod: ${call.method}")
|
||||
} else {
|
||||
result.notImplemented()
|
||||
}
|
||||
|
||||
|
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,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<paths>
|
||||
<root-path name="root-path" path="."/>
|
||||
<files-path name="files" path="."/>
|
||||
<cache-path name="cache" path="."/>
|
||||
<external-files-path name="external_files" path="."/>
|
||||
</paths>
|
||||
@ -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":"30086000764882919",
|
||||
"product_id":"388421841222019909",
|
||||
"client_id":"1376040077926370048",
|
||||
"client_secret":"FE068E768F2B897A291DFFD186E0C0E495BE4BE6CCD7C5973B6C02ADF9178916",
|
||||
"project_id":"388421841222019909",
|
||||
"app_id":"110413691",
|
||||
"api_key":"DAEDAG1Mu4qubka2IheS5XVoQQIyqAr2tU+VyLcUukdN4iHjP9FZRI16fUIhWz+lsz8si57hQ/gjoNNvQBmgglsT5jnXFcnY4nF1wQ==",
|
||||
"package_name":"com.skychip.lock"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_id":"110413691",
|
||||
"client_type":1
|
||||
},
|
||||
"app_info":{
|
||||
"app_id":"110413691",
|
||||
"package_name":"com.skychip.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":"com.skychip.lock",
|
||||
"client":{
|
||||
"app_id":"110413691"
|
||||
},
|
||||
"app_info":{
|
||||
"package_name":"com.skychip.lock",
|
||||
"app_id":"110413691"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_type":1,
|
||||
"client_id":"110413691"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -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"
|
||||
}
|
||||
@ -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,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":"com.skychip.lock.dev"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_id":"110798531",
|
||||
"client_type":1
|
||||
},
|
||||
"app_info":{
|
||||
"app_id":"110798531",
|
||||
"package_name":"com.skychip.lock.dev"
|
||||
},
|
||||
"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":"com.skychip.lock.dev",
|
||||
"client":{
|
||||
"app_id":"110798531"
|
||||
},
|
||||
"app_info":{
|
||||
"package_name":"com.skychip.lock.dev",
|
||||
"app_id":"110798531"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_type":1,
|
||||
"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.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"
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
@ -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":"com.skychip.lock.pre"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_id":"110798531",
|
||||
"client_type":1
|
||||
},
|
||||
"app_info":{
|
||||
"app_id":"110798531",
|
||||
"package_name":"com.skychip.lock.pre"
|
||||
},
|
||||
"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":"com.skychip.lock.pre",
|
||||
"client":{
|
||||
"app_id":"110798531"
|
||||
},
|
||||
"app_info":{
|
||||
"package_name":"com.skychip.lock.pre",
|
||||
"app_id":"110798531"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_type":1,
|
||||
"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: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"
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
@ -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,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":"com.xhjcn.lock.dev"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_id":"110798531",
|
||||
"client_type":1
|
||||
},
|
||||
"app_info":{
|
||||
"app_id":"110798531",
|
||||
"package_name":"com.xhjcn.lock.dev"
|
||||
},
|
||||
"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":"com.xhjcn.lock.dev",
|
||||
"client":{
|
||||
"app_id":"110798531"
|
||||
},
|
||||
"app_info":{
|
||||
"package_name":"com.xhjcn.lock.dev",
|
||||
"app_id":"110798531"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_type":1,
|
||||
"client_id":"110798531"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -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"
|
||||
}
|
||||
|
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,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":"com.xhjcn.lock.pre"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_id":"110798531",
|
||||
"client_type":1
|
||||
},
|
||||
"app_info":{
|
||||
"app_id":"110798531",
|
||||
"package_name":"com.xhjcn.lock.pre"
|
||||
},
|
||||
"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":"com.xhjcn.lock.pre",
|
||||
"client":{
|
||||
"app_id":"110798531"
|
||||
},
|
||||
"app_info":{
|
||||
"package_name":"com.xhjcn.lock.pre",
|
||||
"app_id":"110798531"
|
||||
},
|
||||
"oauth_client":{
|
||||
"client_type":1,
|
||||
"client_id":"110798531"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -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"
|
||||
}
|
||||
|
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-P</string>
|
||||
</resources>
|
||||
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">星星锁-P</string>
|
||||
</resources>
|
||||
@ -21,8 +21,7 @@ buildscript {
|
||||
// hms,若不集成华为厂商通道,可直接跳过
|
||||
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
|
||||
// 垃圾代码生成器
|
||||
// classpath "com.github.qq549631030:android-junk-code:1.3.3"
|
||||
classpath'com.tencent.mm:AndResGuard-gradle-plugin:1.2.21'
|
||||
classpath "com.github.qq549631030:android-junk-code:1.3.3"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
echo "Build Params Info:Build Dir:$CI_PROJECT_DIR,Build Tag:$CI_COMMIT_TAG,Build Branch:$CI_COMMIT_BRANCH,Build BUILD_REVISION:$CI_RUNNER_REVISION"
|
||||
|
||||
export ENV_BUILD_TAG=${CI_COMMIT_TAG}
|
||||
export ENV_BUILD_BRANCH=${CI_COMMIT_BRANCH}
|
||||
export ENV_BUILD_WORKSPACE=${CI_PROJECT_DIR}
|
||||
echo "GITLAB_WORKSPACE: ${CI_PROJECT_DIR}"
|
||||
cd ${CI_PROJECT_DIR}/android
|
||||
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]+_sky$'
|
||||
if [[ "${ENV_BUILD_BRANCH}" == "canary_release_sky" ]]; then
|
||||
echo "===build canary_release: ${NEXT_VERSION}"
|
||||
export ENV_BUILD_TAG=${NEXT_VERSION}
|
||||
bundle exec fastlane release_apk flavor:sky --verbose
|
||||
elif [[ $ENV_BUILD_TAG =~ $regex ]]; then
|
||||
echo "===build release===$ENV_BUILD_TAG"
|
||||
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
|
||||
elif [[ "${ENV_BUILD_BRANCH}" == "release_sky" || "${ENV_BUILD_BRANCH}" == "feat_devops_sky" ]] ; then
|
||||
echo "===build pre===${NEXT_VERSION}"
|
||||
bundle exec fastlane beta flavor:sky env:pre --verbose
|
||||
fi
|
||||
exit 0
|
||||
@ -1,2 +0,0 @@
|
||||
json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
|
||||
package_name("") # e.g. com.krausefx.app
|
||||
@ -1,177 +0,0 @@
|
||||
# This file contains the fastlane.tools configuration
|
||||
# You can find the documentation at https://docs.fastlane.tools
|
||||
#
|
||||
# For a list of all available actions, check out
|
||||
#
|
||||
# https://docs.fastlane.tools/actions
|
||||
#
|
||||
# For a list of all available plugins, check out
|
||||
#
|
||||
# https://docs.fastlane.tools/plugins/available-plugins
|
||||
#
|
||||
|
||||
# Uncomment the line if you want fastlane to automatically update itself
|
||||
# update_fastlane
|
||||
|
||||
default_platform(:android)
|
||||
|
||||
$env_key_project_root = 'ENV_BUILD_WORKSPACE'
|
||||
$env_current_branch = 'ENV_BUILD_BRANCH'
|
||||
$env_current_tag = 'ENV_BUILD_TAG'
|
||||
$env_next_version = 'NEXT_VERSION'
|
||||
|
||||
$path_dir_build = File.join(ENV[$env_key_project_root],'')
|
||||
$current_branch = ENV[$env_current_branch]
|
||||
$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_bundle_output_dir = File.join($path_dir_build, 'build/app/outputs/bundle')
|
||||
|
||||
|
||||
def print_header header
|
||||
UI.message "~~~~~~~~~~~~~~~~~~~~~~"
|
||||
UI.message '📍 ' + header.to_s
|
||||
UI.message "~~~~~~~~~~~~~~~~~~~~~~"
|
||||
end
|
||||
|
||||
def print_log(content)
|
||||
UI.message '📠 ' + content.to_s
|
||||
end
|
||||
|
||||
platform :android do
|
||||
before_all do
|
||||
print_header '🏁 Before All'
|
||||
print_log $current_branch
|
||||
print_log $current_tag
|
||||
Dir.chdir "../.." do
|
||||
sh('pwd')
|
||||
end
|
||||
end
|
||||
|
||||
desc "Submit a new Beta Build to Pgy Beta"
|
||||
lane :beta do |options|
|
||||
env = options[:env]
|
||||
UI.user_error!("env is required") unless env
|
||||
print_log "build sky on #{env}"
|
||||
build_number = Time.now.strftime("%Y%m%d%H")
|
||||
print_log "BuildNo #{build_number}"
|
||||
build_version = $next_version
|
||||
print_log "build_version #{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:"com")
|
||||
Dir.chdir "../.." do
|
||||
sh("flutter","clean")
|
||||
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
|
||||
old_file_path = File.join($path_apk_output_dir, "app-sky_#{env}-release.apk")
|
||||
new_file_path = File.join($path_apk_output_dir, "starlock-sky-preview-#{build_version}.apk")
|
||||
File.rename(old_file_path, new_file_path)
|
||||
logs = changelog_from_git_commits(
|
||||
pretty: '- %s (%cn)',
|
||||
commits_count: 5,
|
||||
merge_commit_filtering: 'exclude_merges'
|
||||
)
|
||||
upload_file_to_pgy(directory:$path_apk_output_dir,file_extension:".apk",logs:logs)
|
||||
end
|
||||
|
||||
desc "Build & upload a new version to Gitlab Release"
|
||||
lane :release_apk 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:"com")
|
||||
Dir.chdir "../.." do
|
||||
sh("flutter","pub","get")
|
||||
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
|
||||
old_apk_file_path = File.join($path_apk_output_dir, "app-sky-release.apk")
|
||||
new_apk_file_path = File.join($path_apk_output_dir, "starlock-sky-release-"+$current_tag+".apk")
|
||||
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
|
||||
sh("flutter","pub","get")
|
||||
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
|
||||
old_bundle_file_path = File.join($path_bundle_output_dir , "/skyRelease/app-sky-release.aab")
|
||||
new_bundle_file_path = File.join($path_bundle_output_dir , "/skyRelease/starlock-sky-release-"+$current_tag+".aab")
|
||||
File.rename(old_bundle_file_path, new_bundle_file_path)
|
||||
sh('cp',new_bundle_file_path,$path_apk_output_dir)
|
||||
end
|
||||
|
||||
lane :upload_file_to_pgy do |options|
|
||||
directory = options[:directory]
|
||||
file_extension = options[:file_extension]
|
||||
logs = options[:logs]
|
||||
UI.user_error!("Directory path is required") unless directory
|
||||
UI.user_error!("File extension is required") unless file_extension
|
||||
# 使用Dir.glob来查找目录下的所有.apk和.ipa文件
|
||||
Dir.glob("#{directory}/*#{file_extension}").each do |file|
|
||||
# 打印文件名称
|
||||
puts "start upload file: #{file}"
|
||||
pgyer(api_key: ENV['PGY_API_KEY'],apk:file,update_description: logs)
|
||||
File.delete(file)
|
||||
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
|
||||
@ -1,5 +0,0 @@
|
||||
# Autogenerated by fastlane
|
||||
#
|
||||
# Ensure this file is checked in to source control!
|
||||
|
||||
gem 'fastlane-plugin-pgyer'
|
||||
@ -1,4 +1,3 @@
|
||||
org.gradle.jvmargs=-Xmx1536M
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=false
|
||||
android.enableR8 = true
|
||||
android.enableJetifier=true
|
||||
|
||||
@ -2,5 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
#distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
|
||||
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.4-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/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"}}}}}}
|
||||