Compare commits

..

No commits in common. "develop_sky" and "v1.0.3" have entirely different histories.

1231 changed files with 28106 additions and 107384 deletions

BIN
.DS_Store vendored Executable file

Binary file not shown.

View File

@ -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"

View File

@ -1,10 +1,8 @@
stages: stages:
- test - test
- generate_tag_or_version - package
- build-artifacts
- release-artifacts - release-artifacts
- notification - notification
- clean-up
variables: variables:
LC_ALL: "en_US.UTF-8" LC_ALL: "en_US.UTF-8"
@ -16,37 +14,11 @@ variables:
- macos - macos
- flutter - flutter
rules: rules:
- if: $CI_COMMIT_BRANCH == "develop_sky" - if: $CI_COMMIT_BRANCH == "develop"
- if: $CI_COMMIT_BRANCH == "release_sky" - if: $CI_COMMIT_BRANCH == "release"
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/ - if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
- if: $CI_COMMIT_BRANCH == "canary_release_sky" - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$/
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?(_sky)?$/
.notify_rule:
tags:
- macos
- flutter
rules:
- if: $CI_COMMIT_BRANCH == "develop_sky"
- if: $CI_COMMIT_BRANCH == "release_sky"
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
.generate_tag_rule:
tags:
- macos
- flutter
rules:
- if: $CI_COMMIT_BRANCH == "master_sky"
.generate_next_version_rule:
tags:
- macos
- flutter
rules:
- if: $CI_COMMIT_BRANCH == "develop_sky"
- if: $CI_COMMIT_BRANCH == "release_sky"
- if: $CI_COMMIT_BRANCH == "canary_release_sky"
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
.print_env: .print_env:
stage: test stage: test
@ -60,43 +32,15 @@ variables:
.setup_fastlane_android: .setup_fastlane_android:
extends: .build_rule extends: .build_rule
before_script: before_script:
- export PUB_HOSTED_URL=https://pub.flutter-io.cn - flutter pub get
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn - bundle install --gemfile android/Gemfile --quiet
- ls -li
- export NEXT_VERSION="$(cat app_new.version)"
# - flutter pub get
- export PATH="/opt/homebrew/bin:$PATH"
- eval "$(rbenv init -)"
- rbenv global 2.6.10 # 你实际用的 Ruby 版本
- ruby -v
- which ruby
- gem env
- bundle config mirror.https://rubygems.org https://mirrors.aliyun.com/rubygems/
- bundle install --gemfile android/Gemfile --path vendor/bundle_android --quiet
- flutter clean
cache:
paths:
- app_new.version
.setup_fastlane_ios: .setup_fastlane_ios:
extends: .build_rule extends: .build_rule
before_script: before_script:
- export PUB_HOSTED_URL=https://pub.flutter-io.cn - flutter pub get
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn - bundle install --gemfile ios/Gemfile --quiet
- ls -li
- export NEXT_VERSION="$(cat app_new.version)"
- export PATH="/opt/homebrew/bin:$PATH"
- eval "$(rbenv init -)"
- rbenv global 2.6.10 # 你实际用的 Ruby 版本
- ruby -v
- which ruby
- gem env
- bundle config mirror.https://rubygems.org https://mirrors.aliyun.com/rubygems/
- bundle install --gemfile ios/Gemfile --path vendor/bundle_ios --quiet
- flutter clean
cache:
paths:
- app_new.version
test_lint_check: test_lint_check:
stage: test stage: test
@ -107,29 +51,8 @@ test_lint_check:
- macos - macos
- flutter - flutter
generate_git_tag:
stage: generate_tag_or_version
extends: .generate_tag_rule
before_script:
- bash pre_build.sh sky
- project_url=$(echo $CI_PROJECT_URL | sed 's/http:\/\///')
- echo "project_url:$project_url"
- echo "CI_SERVER_FQDN:$CI_SERVER_FQDN/CI_PROJECT_ROOT_NAMESPACE:$CI_PROJECT_ROOT_NAMESPACE/CI_PROJECT_NAME:$CI_PROJECT_NAME"
- git remote set-url origin git@$CI_SERVER_FQDN:$CI_PROJECT_ROOT_NAMESPACE/$CI_PROJECT_NAME.git
script:
- bash tag_generator.sh generate_tag
generate_next_version:
stage: generate_tag_or_version
extends: .generate_next_version_rule
script:
- bash tag_generator.sh generate_version
cache:
paths:
- app_new.version
build_android: build_android:
stage: build-artifacts stage: package
extends: .setup_fastlane_android extends: .setup_fastlane_android
script: bash android/build.sh script: bash android/build.sh
artifacts: artifacts:
@ -137,7 +60,7 @@ build_android:
- build/app/outputs/flutter-apk/ - build/app/outputs/flutter-apk/
build_ios: build_ios:
stage: build-artifacts stage: package
extends: .setup_fastlane_ios extends: .setup_fastlane_ios
script: script:
- bash ios/build.sh - bash ios/build.sh
@ -160,59 +83,44 @@ create-release:
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
before_script: before_script:
- echo "start create release" - echo "start create release"
- bash release_description_generator.sh
- export RELEASE_DESCRIPTION="$(cat changelog.md)"
- echo "${RELEASE_DESCRIPTION}"
script: script:
- export StarLock_VERSION=${CI_COMMIT_TAG#*-} - export StarLock_VERSION=${CI_COMMIT_TAG#*-}
- echo "Uploading StarLock-${StarLock_VERSION} packages to - echo "Uploading StarLock-${StarLock_VERSION} packages to
${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/StarLock-${StarLock_VERSION}-*" ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/StarLock-${StarLock_VERSION}-*"
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-xhj-release-${CI_COMMIT_TAG}.apk
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.apk"'
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-xhj-release-${CI_COMMIT_TAG}.aab
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.aab"'
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.apk - 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.apk
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.apk"' "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.apk"'
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.aab - 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.aab
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.aab"' "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.aab"'
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-xhj-release-${CI_COMMIT_TAG}.ipa
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.ipa"'
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-sky-release-${CI_COMMIT_TAG}.ipa - 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-sky-release-${CI_COMMIT_TAG}.ipa
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.ipa"' "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.ipa"'
release: release:
name: '$CI_COMMIT_TAG' name: '$CI_COMMIT_TAG'
description: '$(cat changelog.md)' description: 'Created Release By GitLab CI/CD'
tag_name: '$CI_COMMIT_TAG' tag_name: '$CI_COMMIT_TAG'
ref: '$CI_COMMIT_TAG' ref: '$CI_COMMIT_TAG'
assets: assets:
links: links:
- name: 'xhj apk binary package'
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.apk'
link_type: 'package'
- name: 'xhj bundle binary package'
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.aab'
link_type: 'package'
- name: 'sky apk binary package' - name: 'sky apk binary package'
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.apk' url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.apk'
link_type: 'package' link_type: 'package'
- name: 'sky bundle binary package' - name: 'sky bundle binary package'
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.aab' url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.aab'
link_type: 'package' link_type: 'package'
- name: 'xhj ipa binary package'
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.ipa'
link_type: 'package'
- name: 'sky ipa binary package' - name: 'sky ipa binary package'
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.ipa' url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.ipa'
link_type: 'package' link_type: 'package'
notify_success:
stage: notification
extends: .notify_rule
before_script:
- printenv | while IFS='=' read -r key value; do echo "$key=$value"; done
script:
- bash notify.sh success
allow_failure: true
when: on_success
notify_failure:
stage: notification
extends: .notify_rule
before_script:
- printenv | while IFS='=' read -r key value; do echo "$key=$value"; done
script:
- bash notify.sh failure
allow_failure: true
when: on_failure
clean_up:
stage: clean-up
extends: .build_rule
script:
- git reset --hard
when: always

View File

@ -1,5 +1,5 @@
# 星锁APP # 星锁APP
测试ci
星云项目组旗下的智能锁应用,其中锁相关数据接入星云平台,业务数据接入星锁自有后台。 星云项目组旗下的智能锁应用,其中锁相关数据接入星云平台,业务数据接入星锁自有后台。
基于Flutter技术架构支持Android和iOS平台。 基于Flutter技术架构支持Android和iOS平台。
@ -61,7 +61,7 @@ keytool -list -v -keystore android/app/sky.jks
``` ```
输入密码在android/app/build.gradle:38可以看到 输入密码在android/app/build.gradle:38可以看到
测试ci
一般需要的是:证书指纹-SHA1 看起来像 95:6B:***********共59个字符 一般需要的是:证书指纹-SHA1 看起来像 95:6B:***********共59个字符
## 编译 ## 编译
@ -171,14 +171,3 @@ java -jar android/bundletool.jar build-apks --bundle=build/app/outputs/bundle/sk
```bash ```bash
java -jar android/bundletool.jar install-apks --apks=build/app/outputs/bundle/skyRelease/app-sky-release.aab.apks java -jar android/bundletool.jar install-apks --apks=build/app/outputs/bundle/skyRelease/app-sky-release.aab.apks
``` ```
## Jpush相关
极光推送目前app这边只依赖极光的透传能力推送能力通过截取极光拿到的各个厂商的推送token然后将推送token上报到自己业务服务器直接调用各个厂商推送通道进行消息推送所以对极光的flutter sdk进行了私有化定制改造改造点如下
* AndroidiOS平台原生代码中截取jpush获取到的厂商推送token将token回传到flutter业务应用层
* Android通过Jpush统一集成的各个厂商推送sdk统一获取到token
* iOS通过原生token回调接口获取到token
* flutter端将获取到的厂商token厂商标识上报到业务服务器
定制jpush_flutterhttp://code-internal.star-lock.cn/StarlockTeam/jpush_flutter

BIN
android/.DS_Store vendored Executable file

Binary file not shown.

View File

@ -1,6 +1,6 @@
source "https://rubygems.org" source "https://rubygems.org"
gem "fastlane" gem "fastlane"
gem 'nkf', '0.2.0'
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path) eval_gemfile(plugins_path) if File.exist?(plugins_path)

View File

@ -9,23 +9,21 @@ GEM
public_suffix (>= 2.0.2, < 7.0) public_suffix (>= 2.0.2, < 7.0)
artifactory (3.0.17) artifactory (3.0.17)
atomos (0.1.3) atomos (0.1.3)
aws-eventstream (1.3.2) aws-eventstream (1.3.0)
aws-partitions (1.1107.0) aws-partitions (1.979.0)
aws-sdk-core (3.224.0) aws-sdk-core (3.209.1)
aws-eventstream (~> 1, >= 1.3.0) aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0) aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.9) aws-sigv4 (~> 1.9)
base64
jmespath (~> 1, >= 1.6.1) jmespath (~> 1, >= 1.6.1)
logger aws-sdk-kms (1.94.0)
aws-sdk-kms (1.101.0) aws-sdk-core (~> 3, >= 3.207.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5) aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.186.1) aws-sdk-s3 (1.166.0)
aws-sdk-core (~> 3, >= 3.216.0) aws-sdk-core (~> 3, >= 3.207.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5) aws-sigv4 (~> 1.5)
aws-sigv4 (1.11.0) aws-sigv4 (1.10.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4) babosa (1.0.4)
base64 (0.2.0) base64 (0.2.0)
@ -35,7 +33,7 @@ GEM
commander (4.6.0) commander (4.6.0)
highline (~> 2.0.0) highline (~> 2.0.0)
declarative (0.0.20) declarative (0.0.20)
digest-crc (0.7.0) digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0) rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701) domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
@ -61,8 +59,8 @@ GEM
faraday-em_synchrony (1.0.0) faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0) faraday-excon (1.1.0)
faraday-httpclient (1.0.1) faraday-httpclient (1.0.1)
faraday-multipart (1.1.0) faraday-multipart (1.0.4)
multipart-post (~> 2.0) multipart-post (~> 2)
faraday-net_http (1.0.2) faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0) faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0) faraday-patron (1.0.0)
@ -70,8 +68,8 @@ GEM
faraday-retry (1.0.3) faraday-retry (1.0.3)
faraday_middleware (1.2.1) faraday_middleware (1.2.1)
faraday (~> 1.0) faraday (~> 1.0)
fastimage (2.4.0) fastimage (2.3.1)
fastlane (2.227.2) fastlane (2.222.0)
CFPropertyList (>= 2.3, < 4.0.0) CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0) addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0) artifactory (~> 3.0)
@ -87,7 +85,6 @@ GEM
faraday-cookie_jar (~> 0.0.6) faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0) faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0) fastimage (>= 2.1.0, < 3.0.0)
fastlane-sirp (>= 1.0.0)
gh_inspector (>= 1.1.2, < 2.0.0) gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3) google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1) google-apis-playcustomapp_v1 (~> 0.1)
@ -111,11 +108,9 @@ GEM
tty-spinner (>= 0.8.0, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0) word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0) xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.4.1) xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-plugin-pgyer (0.2.9) fastlane-plugin-pgyer (0.2.9)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
gh_inspector (1.1.3) gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.54.0) google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a) google-apis-core (>= 0.11.0, < 2.a)
@ -154,26 +149,23 @@ GEM
os (>= 0.9, < 2.0) os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a) signet (>= 0.16, < 2.a)
highline (2.0.3) highline (2.0.3)
http-cookie (1.0.8) http-cookie (1.0.7)
domain_name (~> 0.5) domain_name (~> 0.5)
httpclient (2.9.0) httpclient (2.8.3)
mutex_m
jmespath (1.6.2) jmespath (1.6.2)
json (2.7.6) json (2.7.2)
jwt (2.10.1) jwt (2.9.1)
base64 base64
logger (1.7.0)
mini_magick (4.13.2) mini_magick (4.13.2)
mini_mime (1.1.5) mini_mime (1.1.5)
multi_json (1.15.0) multi_json (1.15.0)
multipart-post (2.4.1) multipart-post (2.4.1)
mutex_m (0.3.0) nanaimo (0.3.0)
nanaimo (0.4.0)
naturally (2.2.1) naturally (2.2.1)
nkf (0.2.0) nkf (0.2.0)
optparse (0.6.0) optparse (0.5.0)
os (1.1.4) os (1.1.4)
plist (3.7.2) plist (3.7.1)
public_suffix (5.1.1) public_suffix (5.1.1)
rake (13.2.1) rake (13.2.1)
representable (3.2.0) representable (3.2.0)
@ -181,10 +173,10 @@ GEM
trailblazer-option (>= 0.1.1, < 0.2.0) trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0) uber (< 0.2.0)
retriable (3.1.2) retriable (3.1.2)
rexml (3.4.1) rexml (3.3.7)
rouge (3.28.0) rouge (2.0.7)
ruby2_keywords (0.0.5) ruby2_keywords (0.0.5)
rubyzip (2.4.1) rubyzip (2.3.2)
security (0.1.5) security (0.1.5)
signet (0.18.0) signet (0.18.0)
addressable (~> 2.8) addressable (~> 2.8)
@ -194,7 +186,6 @@ GEM
simctl (1.6.10) simctl (1.6.10)
CFPropertyList CFPropertyList
naturally naturally
sysrandom (1.0.5)
terminal-notifier (2.0.0) terminal-notifier (2.0.0)
terminal-table (3.0.2) terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3) unicode-display_width (>= 1.1.1, < 3)
@ -207,15 +198,15 @@ GEM
unf (0.2.0) unf (0.2.0)
unicode-display_width (2.6.0) unicode-display_width (2.6.0)
word_wrap (1.0.0) word_wrap (1.0.0)
xcodeproj (1.27.0) xcodeproj (1.25.0)
CFPropertyList (>= 2.3.3, < 4.0) CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3) atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0) claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1) colored2 (~> 3.1)
nanaimo (~> 0.4.0) nanaimo (~> 0.3.0)
rexml (>= 3.3.6, < 4.0) rexml (>= 3.3.2, < 4.0)
xcpretty (0.4.1) xcpretty (0.3.0)
rouge (~> 3.28.0) rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1) xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7) xcpretty (~> 0.2, >= 0.0.7)
@ -225,7 +216,6 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
fastlane fastlane
fastlane-plugin-pgyer fastlane-plugin-pgyer
nkf (= 0.2.0)
BUNDLED WITH BUNDLED WITH
1.17.2 1.17.2

View File

@ -23,9 +23,6 @@ if (flutterVersionName == null) {
} }
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
//<com>
apply plugin: 'com.google.gms.google-services'
//</com>
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
@ -78,13 +75,6 @@ android {
keyAlias = 'upload' keyAlias = 'upload'
keyPassword 'xhj8872' keyPassword 'xhj8872'
} }
xhj_bundle {
storeFile file("xhj_bundle.jks")
storePassword 'xhj8872'
keyAlias = 'xhj'
keyPassword 'xhj8872'
}
} }
// ----- BEGIN flavorDimensions (autogenerated by flutter_flavorizr) ----- // ----- BEGIN flavorDimensions (autogenerated by flutter_flavorizr) -----
@ -95,105 +85,62 @@ android {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.starlock.lock.local" applicationId "com.starlock.lock.local"
signingConfig signingConfigs.debug signingConfig signingConfigs.debug
resValue "string", "app_name", "Star Lock" resValue "string", "app_name", "星锁-local"
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.local" manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.local"
} }
dev { dev {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.starlock.lock.dev" applicationId "com.starlock.lock.dev"
signingConfig signingConfigs.debug signingConfig signingConfigs.debug
resValue "string", "app_name", "Star Lock" resValue "string", "app_name", "星锁-dev"
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.dev" manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.dev"
} }
pre { pre {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.starlock.lock.pre" applicationId "com.starlock.lock.pre"
signingConfig signingConfigs.debug signingConfig signingConfigs.debug
resValue "string", "app_name", "Star Lock-P" resValue "string", "app_name", "星锁"
manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.pre" manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.pre"
} }
sky { sky {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.skychip.lock" applicationId "com.skychip.lock"
signingConfig signingConfigs.sky signingConfig signingConfigs.sky
resValue "string", "app_name", "TTLock Pro" resValue "string", "app_name", "锁通通"
manifestPlaceholders = [ manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock"
JPUSH_PKGNAME : "com.skychip.lock",
JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey
JPUSH_CHANNEL : "flutter_channel",
XIAOMI_APPID : "MI-2882303761520287291",
XIAOMI_APPKEY : "MI-5352028744291",
OPPO_APPKEY : "OP-ccae67a4a8c1470a8350b0d6a89f8105",
OPPO_APPID : "OP-31586713",
OPPO_APPSECRET: "OP-2339389233094ca297de7b10213f7bd8",
VIVO_APPKEY : "6a18657357d176364a91f50e4c9cd7c4",
VIVO_APPID : "105724810",
HONOR_APPID : "104437184",
]
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-sky.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-sky.pro'
} }
sky_pre { sky_pre {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.skychip.lock.pre" applicationId "com.skychip.lock.pre"
signingConfig signingConfigs.sky signingConfig signingConfigs.sky
resValue "string", "app_name", "TTLock Pro-P" resValue "string", "app_name", "锁通通-P"
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock.pre"
} }
sky_dev { sky_dev {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.skychip.lock.dev" applicationId "com.skychip.lock.dev"
signingConfig signingConfigs.sky signingConfig signingConfigs.sky
resValue "string", "app_name", "TTLock Pro" resValue "string", "app_name", "锁通通-D"
manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock.dev"
} }
xhj { xhj {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.xhjcn.lock" applicationId "com.xhjcn.lock"
signingConfig signingConfigs.xhj signingConfig signingConfigs.xhj
resValue "string", "app_name", "Star Lock" resValue "string", "app_name", "星星锁"
manifestPlaceholders = [ manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock"
JPUSH_PKGNAME : "com.xhjcn.lock",
JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--AppKey
JPUSH_CHANNEL : "flutter_channel",
XIAOMI_APPID : "MI-2882303761520314939",
XIAOMI_APPKEY : "MI-5312031456939",
OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b",
OPPO_APPID : "OP-31726001",
OPPO_APPSECRET: "OP-05723986bba64183a71530b496922450",
VIVO_APPKEY : "75fe8e570425b714e08d0390b14797cb",
VIVO_APPID : "105752244",
HONOR_APPID : "104458196",
]
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro'
} }
xhj_bundle {
dimension "flavor-type"
applicationId "ltd.xhjcn.lock"
signingConfig signingConfigs.xhj_bundle
resValue "string", "app_name", "Star Lock"
manifestPlaceholders = [
JPUSH_PKGNAME: "ltd.xhjcn.lock",
JPUSH_APPKEY : "5ccdb9b8d3faaae66ba5d02e",
JPUSH_CHANNEL: "flutter_channel",
]
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro'
}
xhj_pre { xhj_pre {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.xhjcn.lock.pre" applicationId "com.xhjcn.lock.pre"
signingConfig signingConfigs.xhj signingConfig signingConfigs.xhj
resValue "string", "app_name", "Star Lock-P" resValue "string", "app_name", "星星锁-P"
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock.pre"
} }
xhj_dev { xhj_dev {
dimension "flavor-type" dimension "flavor-type"
applicationId "com.xhjcn.lock.dev" applicationId "com.xhjcn.lock.dev"
signingConfig signingConfigs.xhj signingConfig signingConfigs.xhj
resValue "string", "app_name", "Star Lock" resValue "string", "app_name", "星星锁-D"
manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock.dev"
} }
} }
@ -226,7 +173,7 @@ android {
// You can update the following values to match your application needs. // You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
minSdkVersion 25 minSdkVersion 25
targetSdkVersion 35 targetSdkVersion 34
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
@ -248,22 +195,22 @@ android {
JPUSH_PKGNAME : "这里不重要,在口味配置", JPUSH_PKGNAME : "这里不重要,在口味配置",
//JPush Appkey. //JPush Appkey.
// JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey // JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey
JPUSH_APPKEY : "default",//--AppKey JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--AppKey
JPUSH_CHANNEL : "default", JPUSH_CHANNEL : "flutter_channel",
// //
//sky的配置 //sky的配置
// XIAOMI_APPID : "MI-2882303761520287291", // XIAOMI_APPID : "MI-2882303761520287291",
// XIAOMI_APPKEY : "MI-5352028744291", // XIAOMI_APPKEY : "MI-5352028744291",
// //
XIAOMI_APPID : "default", XIAOMI_APPID : "MI-2882303761520314939",
XIAOMI_APPKEY : "default", XIAOMI_APPKEY : "MI-5312031456939",
OPPO_APPKEY : "default", OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b",
OPPO_APPID : "default", OPPO_APPID : "OP-31726001",
OPPO_APPSECRET: "default", OPPO_APPSECRET: "OP-05723986bba64183a71530b496922450",
VIVO_APPKEY : "default", VIVO_APPKEY : "75fe8e570425b714e08d0390b14797cb",
VIVO_APPID : "default", VIVO_APPID : "105752244",
HONOR_APPID : "default", HONOR_APPID : "104458196",
] ]
splits { splits {
abi { abi {
@ -289,11 +236,7 @@ android {
productFlavors.dev.signingConfig signingConfigs.debug productFlavors.dev.signingConfig signingConfigs.debug
productFlavors.pre.signingConfig signingConfigs.debug productFlavors.pre.signingConfig signingConfigs.debug
productFlavors.sky.signingConfig signingConfigs.sky productFlavors.sky.signingConfig signingConfigs.sky
productFlavors.sky_dev.signingConfig signingConfigs.sky
productFlavors.sky_pre.signingConfig signingConfigs.sky
productFlavors.xhj.signingConfig signingConfigs.xhj productFlavors.xhj.signingConfig signingConfigs.xhj
productFlavors.xhj_dev.signingConfig signingConfigs.xhj
productFlavors.xhj_pre.signingConfig signingConfigs.xhj
} }
release { release {
// release编译模式下应用闪退[Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210) // release编译模式下应用闪退[Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210)
@ -305,11 +248,7 @@ android {
productFlavors.dev.signingConfig signingConfigs.debug productFlavors.dev.signingConfig signingConfigs.debug
productFlavors.pre.signingConfig signingConfigs.debug productFlavors.pre.signingConfig signingConfigs.debug
productFlavors.sky.signingConfig signingConfigs.sky productFlavors.sky.signingConfig signingConfigs.sky
productFlavors.sky_dev.signingConfig signingConfigs.sky
productFlavors.sky_pre.signingConfig signingConfigs.sky
productFlavors.xhj.signingConfig signingConfigs.xhj productFlavors.xhj.signingConfig signingConfigs.xhj
productFlavors.xhj_dev.signingConfig signingConfigs.xhj
productFlavors.xhj_pre.signingConfig signingConfigs.xhj
} }
} }
@ -328,7 +267,7 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// implementation('com.amap.api:location:5.6.0') // implementation('com.amap.api:location:5.6.0')
// implementation('com.amap.api:3dmap:8.1.0') // implementation('com.amap.api:3dmap:8.1.0')
// implementation('com.amap.api:3dmap-location-search:latest.integration') implementation('com.amap.api:3dmap-location-search:latest.integration')
implementation 'cn.jiguang.sdk:jpush:5.2.3' implementation 'cn.jiguang.sdk:jpush:5.2.3'
// //
@ -351,21 +290,4 @@ dependencies {
// implementation(name: 'HiPushSDK-7.0.61.303', ext: 'aar') // implementation(name: 'HiPushSDK-7.0.61.303', ext: 'aar')
// VIVO // VIVO
implementation 'cn.jiguang.sdk.plugin:vivo:5.2.3' implementation 'cn.jiguang.sdk.plugin:vivo:5.2.3'
// Umeng统计
//<cn>
implementation 'com.umeng.umsdk:common:9.7.9'
implementation 'com.umeng.umsdk:asms:1.8.5'
//</cn>
//<com>
// implementation 'cn.jiguang.sdk.plugin:fcm:5.2.3'
// implementation 'com.google.firebase:firebase-messaging:23.0.5'
//</com>
//FCM云消息与极光FCM插件
implementation 'com.google.firebase:firebase-messaging:23.2.1'
implementation 'cn.jiguang.sdk.plugin:fcm:5.2.2'
} }

View File

@ -2,14 +2,14 @@
"project_info": { "project_info": {
"project_number": "281500445726", "project_number": "281500445726",
"project_id": "skychip2023-ecdff", "project_id": "skychip2023-ecdff",
"storage_bucket": "skychip2023-ecdff.firebasestorage.app" "storage_bucket": "skychip2023-ecdff.appspot.com"
}, },
"client": [ "client": [
{ {
"client_info": { "client_info": {
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4d20f", "mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4d20f",
"android_client_info": { "android_client_info": {
"package_name": "com.starlock.lock.local" "package_name": "com.skychip.lock"
} }
}, },
"oauth_client": [], "oauth_client": [],

View File

@ -92,22 +92,6 @@
-dontwarn cn.jiguang.** -dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; } -keep class cn.jiguang.** { *; }
-dontwarn cn.com.chinatelecom.**
-keep class cn.com.chinatelecom.** {*;}
-dontwarn com.ct.**
-keep class com.ct.** {*;}
-dontwarn a.a.**
-keep class a.a.** {*;}
-dontwarn com.cmic.**
-keep class com.cmic.** {*;}
-dontwarn com.unicom.**
-keep class com.unicom.** {*;}
-dontwarn com.sdk.**
-keep class com.sdk.** {*;}
-dontwarn com.sdk.**
-keep class com.sdk.** {*;}
-dontwarn com.google.** -dontwarn com.google.**
-keep class com.google.gson.** {*;} -keep class com.google.gson.** {*;}
-keep class com.google.protobuf.** {*;} -keep class com.google.protobuf.** {*;}
@ -144,12 +128,4 @@
} }
-keep class com.tencent.mm.sdk.** { *; } -keep class com.tencent.mm.sdk.** { *; }
-keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.mm.opensdk.** { *; }
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
-keep class com.umeng.** { *; }
-keep class com.umeng.**$* { *; }
-keep class com.umeng.message.** { *; }
-keep class com.umeng.message.**$* { *; }

View File

@ -92,22 +92,6 @@
-dontwarn cn.jiguang.** -dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; } -keep class cn.jiguang.** { *; }
-dontwarn cn.com.chinatelecom.**
-keep class cn.com.chinatelecom.** {*;}
-dontwarn com.ct.**
-keep class com.ct.** {*;}
-dontwarn a.a.**
-keep class a.a.** {*;}
-dontwarn com.cmic.**
-keep class com.cmic.** {*;}
-dontwarn com.unicom.**
-keep class com.unicom.** {*;}
-dontwarn com.sdk.**
-keep class com.sdk.** {*;}
-dontwarn com.sdk.**
-keep class com.sdk.** {*;}
-dontwarn com.google.** -dontwarn com.google.**
-keep class com.google.gson.** {*;} -keep class com.google.gson.** {*;}
-keep class com.google.protobuf.** {*;} -keep class com.google.protobuf.** {*;}
@ -144,12 +128,4 @@
} }
-keep class com.tencent.mm.sdk.** { *; } -keep class com.tencent.mm.sdk.** { *; }
-keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.mm.opensdk.** { *; }
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
-keep class com.umeng.** { *; }
-keep class com.umeng.**$* { *; }
-keep class com.umeng.message.** { *; }
-keep class com.umeng.message.**$* { *; }

View File

@ -92,27 +92,6 @@
-dontwarn cn.jiguang.** -dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; } -keep class cn.jiguang.** { *; }
-dontwarn cn.jpush.**
-keep class cn.jpush.** {*;}
-dontwarn cn.jiguang.**
-keep class cn.jiguang.** {*;}
-dontwarn cn.com.chinatelecom.**
-keep class cn.com.chinatelecom.** {*;}
-dontwarn com.ct.**
-keep class com.ct.** {*;}
-dontwarn a.a.**
-keep class a.a.** {*;}
-dontwarn com.cmic.**
-keep class com.cmic.** {*;}
-dontwarn com.unicom.**
-keep class com.unicom.** {*;}
-dontwarn com.sdk.**
-keep class com.sdk.** {*;}
-dontwarn com.sdk.**
-keep class com.sdk.** {*;}
-dontwarn com.google.** -dontwarn com.google.**
-keep class com.google.gson.** {*;} -keep class com.google.gson.** {*;}
-keep class com.google.protobuf.** {*;} -keep class com.google.protobuf.** {*;}
@ -149,9 +128,4 @@
} }
-keep class com.tencent.mm.sdk.** { *; } -keep class com.tencent.mm.sdk.** { *; }
-keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.mm.opensdk.** { *; }
-keep class com.umeng.** { *; }
-keep class com.umeng.**$* { *; }
-keep class com.umeng.message.** { *; }
-keep class com.umeng.message.**$* { *; }

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁-dev</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -1,6 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.skychip.lock"> package="com.example.star_lock">
<uses-permission <uses-permission
android:name="android.permission.BLUETOOTH_SCAN" android:name="android.permission.BLUETOOTH_SCAN"
@ -8,10 +8,10 @@
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="30" />-->
<!--允许访问网络,必选权限--> <!--允许访问网络,必选权限-->
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<!--申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!--允许获取精确位置,精准定位必选--> <!--允许获取精确位置,精准定位必选-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--允许获取粗略位置,粗略定位必选--> <!--允许获取粗略位置,粗略定位必选-->
@ -29,13 +29,11 @@
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!--允许读设备日志,用于问题排查--> <!--允许读设备日志,用于问题排查-->
<uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.READ_LOGS" />
<!--联系人-->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!--相机--> <!--相机-->
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
@ -61,7 +59,7 @@
<uses-permission android:name="com.hihonor.permission.sec.SDK_LAUNCHER" /> <uses-permission android:name="com.hihonor.permission.sec.SDK_LAUNCHER" />
<application <application
android:name=".App" android:name="android.app.Application"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
android:requestLegacyExternalStorage="true" android:requestLegacyExternalStorage="true"
@ -80,32 +78,50 @@
<meta-data <meta-data
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@mipmap/ic_launcher" />
<meta-data <meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id" android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="1" /> <!-- 将您的通知渠道ID替换为您的实际ID --> android:value="1" /> <!-- 将您的通知渠道ID替换为您的实际ID -->
<!-- <meta-data--> <meta-data
<!-- android:name="com.huawei.hms.client.appid"--> android:name="com.huawei.hms.client.appid"
<!-- android:value="110798531" />--> android:value="110798531" />
<!-- <meta-data--> <meta-data
<!-- android:name="com.huawei.hms.client.cpid"--> android:name="com.huawei.hms.client.cpid"
<!-- android:value="1406555529261648640" />--> android:value="1406555529261648640" />
<!-- <meta-data--> <meta-data
<!-- android:name="OPPO_APPKEY"--> android:name="OPPO_APPKEY"
<!-- android:value="OP-47f668c9943248118502aa58d066393b" />--> android:value="OP-47f668c9943248118502aa58d066393b" />
<!-- <meta-data--> <meta-data
<!-- android:name="OPPO_APPID"--> android:name="OPPO_APPID"
<!-- android:value="OP-31726001" />--> android:value="OP-31726001" />
<meta-data
android:name="OPPO_APPSECRET"
android:value="OP-05723986bba64183a71530b496922450" />
<meta-data
android:name="com.huawei.hms.client.appid"
android:value="110798531" />
<meta-data
android:name="com.huawei.hms.client.cpid"
android:value="1406555529261648640" />
<meta-data
android:name="OPPO_APPKEY"
android:value="OP-47f668c9943248118502aa58d066393b" />
<meta-data
android:name="OPPO_APPID"
android:value="OP-31726001" />
<meta-data
android:name="OPPO_APPSECRET"
android:value="OP-05723986bba64183a71530b496922450" />
<!-- <meta-data-->
<!-- android:name="OPPO_APPSECRET"-->
<!-- android:value="OP-05723986bba64183a71530b496922450" />-->
<service <service
android:name="com.huawei.hms.push.HmsMessageService" android:name="com.huawei.hms.push.HmsMessageService"
android:exported="true"> android:exported="true">
<intent-filter> <intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" /> <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter> </intent-filter>
@ -113,8 +129,8 @@
<receiver <receiver
android:name="com.huawei.hms.support.api.push.PushReceiver" android:name="com.huawei.hms.support.api.push.PushReceiver"
android:exported="true"> android:exported="true">
<intent-filter> <intent-filter>
<action android:name="com.huawei.android.push.intent.REGISTRATION" /> <action android:name="com.huawei.android.push.intent.REGISTRATION" />
<action android:name="com.huawei.android.push.intent.RECEIVE" /> <action android:name="com.huawei.android.push.intent.RECEIVE" />
@ -147,7 +163,7 @@
</intent-filter> </intent-filter>
</service> <!--兼容Q版本--> </service> <!--兼容Q版本-->
<activity <activity
android:name=".MainActivity" android:name="com.skychip.lock.MainActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:exported="true" android:exported="true"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
@ -177,18 +193,6 @@
</intent-filter> </intent-filter>
</activity> </activity>
<meta-data
android:name="BUGLY_ENABLE_DEBUG"
android:value="true" />
<!-- 添加 Umeng SDK 的服务 -->
<service android:name="com.umeng.message.UmengIntentService" android:exported="false"/>
<receiver android:name="com.umeng.message.NotificationProxyBroadcastReceiver" android:exported="true" android:permission="android.permission.BROADCAST_PACKAGE_REMOVED">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
</application> </application>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<umeng_config>
<appkey>671244cf80464b33f6df9648</appkey>
<channel>Product</channel>
</umeng_config>

View File

@ -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);
}
}

View File

@ -16,10 +16,7 @@ class MainActivity : FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
GeneratedPluginRegistrant.registerWith(flutterEngine!!) GeneratedPluginRegistrant.registerWith(flutterEngine!!)
MethodChannel( MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result ->
flutterEngine?.dartExecutor!!.binaryMessenger,
"starLockFlutterSend"
).setMethodCallHandler { call, result ->
if (call.method == "loadNativeShare") { if (call.method == "loadNativeShare") {
val map = call.arguments as Map<String, String> val map = call.arguments as Map<String, String>
val shareText = map["shareText"] val shareText = map["shareText"]
@ -29,7 +26,7 @@ class MainActivity : FlutterActivity() {
} else { } else {
shareText(shareText, "分享") shareText(shareText, "分享")
} }
} else if (call.method == "sendGetBlueStatus") { } else if (call.method == "sendGetBlueStatus") {
// 蓝牙是否开启 // 蓝牙是否开启
// println("收到原生的信息了 methodmethodmethod: ${call.method}") // println("收到原生的信息了 methodmethodmethod: ${call.method}")
val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter() val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()
@ -47,10 +44,7 @@ class MainActivity : FlutterActivity() {
status = "-1" status = "-1"
} }
val flutterEngine: FlutterEngine? = this.flutterEngine // 获取你的 FlutterEngine 实例 val flutterEngine: FlutterEngine? = this.flutterEngine // 获取你的 FlutterEngine 实例
MethodChannel( MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterReceive").invokeMethod("getBlueStatus", status)
flutterEngine?.dartExecutor!!.binaryMessenger,
"starLockFlutterReceive"
).invokeMethod("getBlueStatus", status)
} else { } else {
result.notImplemented() // 没有实现的方法 result.notImplemented() // 没有实现的方法
} }
@ -96,10 +90,7 @@ class MainActivity : FlutterActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) { override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine) GeneratedPluginRegistrant.registerWith(flutterEngine)
MethodChannel( MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result ->
flutterEngine.dartExecutor.binaryMessenger,
"starLockFlutterSend"
).setMethodCallHandler { call, result ->
if (call.method == "loadNativeShare") { if (call.method == "loadNativeShare") {
val map = call.arguments as Map<String, String> val map = call.arguments as Map<String, String>
val shareText = map["shareText"] val shareText = map["shareText"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

View File

@ -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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -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"/>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -26,21 +26,21 @@
"SG_back":"connect-ws-dra.hispace.dbankcloud.com" "SG_back":"connect-ws-dra.hispace.dbankcloud.com"
}, },
"client":{ "client":{
"cp_id":"30086000764882919", "cp_id":"30086000752967166",
"product_id":"388421841222019909", "product_id":"388421841222116270",
"client_id":"1376040077926370048", "client_id":"1406555529261648640",
"client_secret":"FE068E768F2B897A291DFFD186E0C0E495BE4BE6CCD7C5973B6C02ADF9178916", "client_secret":"843E8191B02B692239726CF0ED990E1EC2B31928F825AA012B932A128FD2C516",
"project_id":"388421841222019909", "project_id":"388421841222116270",
"app_id":"110413691", "app_id":"110798531",
"api_key":"DAEDAG1Mu4qubka2IheS5XVoQQIyqAr2tU+VyLcUukdN4iHjP9FZRI16fUIhWz+lsz8si57hQ/gjoNNvQBmgglsT5jnXFcnY4nF1wQ==", "api_key":"DQEDAALnPCtuCgoYOyZfsIDa9/YZZhQ+buDGpypeurXhQUGMajWcVyYLQgXXqV3x2HbI6oyG+Wm2Gf+1hPs6j+wA3B6ylYAXG4aAQA==",
"package_name":"com.skychip.lock" "package_name":"com.skychip.lock"
}, },
"oauth_client":{ "oauth_client":{
"client_id":"110413691", "client_id":"110798531",
"client_type":1 "client_type":1
}, },
"app_info":{ "app_info":{
"app_id":"110413691", "app_id":"110798531",
"package_name":"com.skychip.lock" "package_name":"com.skychip.lock"
}, },
"service":{ "service":{
@ -81,15 +81,15 @@
{ {
"package_name":"com.skychip.lock", "package_name":"com.skychip.lock",
"client":{ "client":{
"app_id":"110413691" "app_id":"110798531"
}, },
"app_info":{ "app_info":{
"package_name":"com.skychip.lock", "package_name":"com.skychip.lock",
"app_id":"110413691" "app_id":"110798531"
}, },
"oauth_client":{ "oauth_client":{
"client_type":1, "client_type":1,
"client_id":"110413691" "client_id":"110798531"
} }
} }
] ]

View File

@ -1,48 +0,0 @@
{
"project_info": {
"project_number": "281500445726",
"project_id": "skychip2023-ecdff",
"storage_bucket": "skychip2023-ecdff.firebasestorage.app"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:281500445726:android:ddf52ac7b7f83cf5c4d20f",
"android_client_info": {
"package_name": "com.skychip.lock"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:281500445726:android:468195b9cc68dd6cc4d20f",
"android_client_info": {
"package_name": "com.starlock.lock.local"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}

BIN
android/app/src/sky/res/mipmap-hdpi/ic_launcher.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
android/app/src/sky/res/mipmap-mdpi/ic_launcher.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
android/app/src/sky/res/mipmap-xhdpi/ic_launcher.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
android/app/src/sky/res/mipmap-xxhdpi/ic_launcher.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
android/app/src/sky/res/mipmap-xxxhdpi/ic_launcher.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TTLock Pro</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">锁通通</string>
</resources>

View File

@ -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"
}

View File

@ -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"
}

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TTLock Pro-P</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">锁通通-P</string>
</resources>

View File

@ -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"
}

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星星锁</string>
</resources>

View File

@ -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"
}
}
]
}

View File

@ -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"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星星锁</string>
</resources>

View File

@ -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"
}

View File

@ -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"
}

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock-P</string>
</resources>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星星锁-P</string>
</resources>

Binary file not shown.

View File

@ -8,21 +8,18 @@ export ENV_BUILD_WORKSPACE=${CI_PROJECT_DIR}
echo "GITLAB_WORKSPACE: ${CI_PROJECT_DIR}" echo "GITLAB_WORKSPACE: ${CI_PROJECT_DIR}"
cd ${CI_PROJECT_DIR}/android cd ${CI_PROJECT_DIR}/android
echo "ENV_BUILD_TAG:${ENV_BUILD_TAG},ENV_BUILD_BRANCH:${ENV_BUILD_BRANCH}" echo "ENV_BUILD_TAG:${ENV_BUILD_TAG},ENV_BUILD_BRANCH:${ENV_BUILD_BRANCH}"
# 只支持 v1.2.3_sky 这种tag格式 regex='^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$'
regex='^v[0-9]+\.[0-9]+\.[0-9]+_sky$' if [[ $ENV_BUILD_TAG =~ $regex ]]; then
if [[ "${ENV_BUILD_BRANCH}" == "canary_release_sky" ]]; then echo "===Building xhj release==="
echo "===build canary_release: ${NEXT_VERSION}" bundle exec fastlane release flavor:xhj --verbose
export ENV_BUILD_TAG=${NEXT_VERSION} bundle exec fastlane release flavor:sky --verbose
bundle exec fastlane release_apk flavor:sky --verbose elif [[ "${ENV_BUILD_BRANCH}" == "develop" ]]; then
elif [[ $ENV_BUILD_TAG =~ $regex ]]; then echo "===Building xhj dev==="
echo "===build release===$ENV_BUILD_TAG" bundle exec fastlane beta flavor:xhj env:dev --verbose
bundle exec fastlane release_apk flavor:sky --verbose
bundle exec fastlane release_bundle flavor:sky --verbose
elif [[ "${ENV_BUILD_BRANCH}" == "develop_sky" ]]; then
echo "===build dev===${NEXT_VERSION}"
bundle exec fastlane beta flavor:sky env:dev --verbose bundle exec fastlane beta flavor:sky env:dev --verbose
elif [[ "${ENV_BUILD_BRANCH}" == "release_sky" || "${ENV_BUILD_BRANCH}" == "feat_devops_sky" ]] ; then elif [[ "${ENV_BUILD_BRANCH}" == "release" ]] || [[ "${ENV_BUILD_BRANCH}" == "feat_devops" ]] ; then
echo "===build pre===${NEXT_VERSION}" echo "===Building xhj pre==="
bundle exec fastlane beta flavor:xhj env:pre --verbose
bundle exec fastlane beta flavor:sky env:pre --verbose bundle exec fastlane beta flavor:sky env:pre --verbose
fi fi
exit 0 exit 0

View File

@ -18,12 +18,10 @@ default_platform(:android)
$env_key_project_root = 'ENV_BUILD_WORKSPACE' $env_key_project_root = 'ENV_BUILD_WORKSPACE'
$env_current_branch = 'ENV_BUILD_BRANCH' $env_current_branch = 'ENV_BUILD_BRANCH'
$env_current_tag = 'ENV_BUILD_TAG' $env_current_tag = 'ENV_BUILD_TAG'
$env_next_version = 'NEXT_VERSION'
$path_dir_build = File.join(ENV[$env_key_project_root],'') $path_dir_build = File.join(ENV[$env_key_project_root],'')
$current_branch = ENV[$env_current_branch] $current_branch = ENV[$env_current_branch]
$current_tag = ENV[$env_current_tag] $current_tag = ENV[$env_current_tag]
$next_version = ENV[$env_next_version]
$path_apk_output_dir = File.join($path_dir_build, 'build/app/outputs/flutter-apk') $path_apk_output_dir = File.join($path_dir_build, 'build/app/outputs/flutter-apk')
$path_bundle_output_dir = File.join($path_dir_build, 'build/app/outputs/bundle') $path_bundle_output_dir = File.join($path_dir_build, 'build/app/outputs/bundle')
@ -44,6 +42,10 @@ platform :android do
print_header '🏁 Before All' print_header '🏁 Before All'
print_log $current_branch print_log $current_branch
print_log $current_tag print_log $current_tag
print_log $path_file_preview_apk_default
print_log $path_file_release_apk_default
print_log $path_file_preview_apk_copy
print_log $path_file_release_apk_copy
Dir.chdir "../.." do Dir.chdir "../.." do
sh('pwd') sh('pwd')
end end
@ -51,24 +53,23 @@ platform :android do
desc "Submit a new Beta Build to Pgy Beta" desc "Submit a new Beta Build to Pgy Beta"
lane :beta do |options| lane :beta do |options|
flavor = options[:flavor]
env = options[:env] env = options[:env]
UI.user_error!("flavor is required") unless flavor
UI.user_error!("env is required") unless env UI.user_error!("env is required") unless env
print_log "build sky on #{env}" print_log "build #{flavor} on #{env}"
build_number = Time.now.strftime("%Y%m%d%H") build_number = Time.now.strftime("%Y%m%d%H")
print_log "BuildNo #{build_number}" print_log "BuildNo #{build_number}"
build_version = $next_version build_version = '1.0.0'
print_log "build_version #{build_version}" print_log "build_version #{build_version}"
commit_hash = last_git_commit commit_hash = last_git_commit
short_hash = commit_hash[:abbreviated_commit_hash] short_hash = commit_hash[:abbreviated_commit_hash]
print_log "last_git_commit_short_hash #{short_hash}" print_log "last_git_commit_short_hash #{short_hash}"
remove_zone_pre_build(zone:"com")
Dir.chdir "../.." do Dir.chdir "../.." do
sh("flutter","clean") sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}_#{env}", "-t", "lib/main_#{flavor}_#{env}.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
sh("flutter","pub","get")
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "sky_#{env}", "-t", "lib/main_sky_#{env}.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
end end
old_file_path = File.join($path_apk_output_dir, "app-sky_#{env}-release.apk") old_file_path = File.join($path_apk_output_dir, "app-#{flavor}_#{env}-release.apk")
new_file_path = File.join($path_apk_output_dir, "starlock-sky-preview-#{build_version}.apk") new_file_path = File.join($path_apk_output_dir, "starlock-#{flavor}-preview-#{build_version}.apk")
File.rename(old_file_path, new_file_path) File.rename(old_file_path, new_file_path)
logs = changelog_from_git_commits( logs = changelog_from_git_commits(
pretty: '- %s (%cn)', pretty: '- %s (%cn)',
@ -79,8 +80,10 @@ platform :android do
end end
desc "Build & upload a new version to Gitlab Release" desc "Build & upload a new version to Gitlab Release"
lane :release_apk do |options| lane :release do |options|
print_log "build sky" flavor = options[:flavor]
UI.user_error!("flavor is required") unless flavor
print_log "build flavor for: #{flavor}"
build_number = Time.now.strftime("%Y%m%d%H") build_number = Time.now.strftime("%Y%m%d%H")
print_log "BuildNo #{build_number}" print_log "BuildNo #{build_number}"
build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0] build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0]
@ -88,33 +91,17 @@ platform :android do
commit_hash = last_git_commit commit_hash = last_git_commit
short_hash = commit_hash[:abbreviated_commit_hash] short_hash = commit_hash[:abbreviated_commit_hash]
print_log "last_git_commit_short_hash #{short_hash}" print_log "last_git_commit_short_hash #{short_hash}"
remove_zone_pre_build(zone:"com")
Dir.chdir "../.." do Dir.chdir "../.." do
sh("flutter","pub","get") sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}", "-t", "lib/main_#{flavor}_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
sh("flutter", "build", "apk", "--no-tree-shake-icons", "--release", "--flavor", "sky", "-t", "lib/main_sky_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
end end
old_apk_file_path = File.join($path_apk_output_dir, "app-sky-release.apk") old_apk_file_path = File.join($path_apk_output_dir, "app-#{flavor}-release.apk")
new_apk_file_path = File.join($path_apk_output_dir, "starlock-sky-release-"+$current_tag+".apk") new_apk_file_path = File.join($path_apk_output_dir, "starlock-#{flavor}-release-"+$current_tag+".apk")
File.rename(old_apk_file_path, new_apk_file_path) File.rename(old_apk_file_path, new_apk_file_path)
end
desc "Build & upload a new version to Gitlab Release"
lane :release_bundle do |options|
print_log "build sky"
build_number = Time.now.strftime("%Y%m%d%H")
print_log "BuildNo #{build_number}"
build_version = $current_tag.match(/^v(\d+\.\d+\.\d+)/).captures[0]
print_log "buildVersion #{build_version}"
commit_hash = last_git_commit
short_hash = commit_hash[:abbreviated_commit_hash]
print_log "last_git_commit_short_hash #{short_hash}"
remove_zone_pre_build(zone:"cn")
Dir.chdir "../.." do Dir.chdir "../.." do
sh("flutter","pub","get") sh("flutter", "build", "appbundle", "--no-tree-shake-icons", "--release", "--flavor", "#{flavor}", "-t", "lib/main_#{flavor}_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
sh("flutter", "build", "appbundle", "--no-tree-shake-icons", "--release", "--flavor", "sky", "-t", "lib/main_sky_lite.dart", "--build-number=#{build_number}", "--build-name=#{build_version}")
end end
old_bundle_file_path = File.join($path_bundle_output_dir , "/skyRelease/app-sky-release.aab") old_bundle_file_path = File.join($path_bundle_output_dir , "/#{flavor}Release/app-#{flavor}-release.aab")
new_bundle_file_path = File.join($path_bundle_output_dir , "/skyRelease/starlock-sky-release-"+$current_tag+".aab") new_bundle_file_path = File.join($path_bundle_output_dir , "/#{flavor}Release/starlock-#{flavor}-release-"+$current_tag+".aab")
File.rename(old_bundle_file_path, new_bundle_file_path) File.rename(old_bundle_file_path, new_bundle_file_path)
sh('cp',new_bundle_file_path,$path_apk_output_dir) sh('cp',new_bundle_file_path,$path_apk_output_dir)
end end
@ -133,45 +120,4 @@ platform :android do
File.delete(file) File.delete(file)
end end
end end
lane :remove_zone_pre_build do |options|
sh("git", "reset", "--hard")
zone = options[:zone]
UI.user_error!("Please provide valid 'zone'") unless zone
pathList=["pubspec.yaml","/android/app/build.gradle","/lib/apm"]
extensions = [".dart",".gradle"] #options[:extensions]
if pathList.empty? || extensions.empty?
UI.user_error!("Please provide valid 'paths' and 'extensions' arrays.")
end
puts "start prepare zone: #{zone},pathList:#{pathList},extensions:#{extensions}"
regexp_List = [/#<#{zone}>.*?#<\/#{zone}>/m,/\/\/\<#{zone}\>.*?\/\/\<\/#{zone}\>/m]
UI.message("Processed RegExpList: #{regexp_List}")
def process_file(file_path, regexpList)
content = File.read(file_path)
regexpList.each do |tag|
content = content.gsub(tag,'')
end
File.write(file_path, content)
UI.message("Processed file: #{file_path},content :\n #{content}")
end
pathList.each do |path|
realPath = File.join($path_dir_build, path)
if File.directory?(realPath)
Dir.glob("#{realPath}/**/*").each do |file|
if File.directory?(file)
UI.message("Find child dir path: #{file}")
elsif extensions.include?(File.extname(file))
process_file(file,regexp_List)
end
end
elsif File.file?(realPath)
process_file(realPath,regexp_List)
else
UI.message("Invalid path: #{realPath}")
end
end
UI.success("All matching content removed from specified files.")
end
end end

View File

@ -2,5 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.4-all.zip

BIN
assets/.DS_Store vendored Executable file

Binary file not shown.

View 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 // 每帧持续时间40ms25fps
});
}
// 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>

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"flutter":{"platforms":{"android":{"default":{"projectId":"skychip2023-ecdff","appId":"1:281500445726:android:468195b9cc68dd6cc4d20f","fileOutput":"android/app/google-services.json"}},"ios":{"default":{"projectId":"skychip2023-ecdff","appId":"1:281500445726:ios:b194ccffb92fb86cc4d20f","uploadDebugSymbols":false,"fileOutput":"ios/Runner/GoogleService-Info.plist"}},"dart":{"lib/firebase_options.dart":{"projectId":"skychip2023-ecdff","configurations":{"android":"1:281500445726:android:468195b9cc68dd6cc4d20f","ios":"1:281500445726:ios:b194ccffb92fb86cc4d20f"}}}}}}

BIN
images/.DS_Store vendored Executable file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

BIN
ios/.DS_Store vendored Executable file

Binary file not shown.

1
ios/.gitignore vendored
View File

@ -7,7 +7,6 @@
**/*sync/ **/*sync/
.sconsign.dblite .sconsign.dblite
.tags* .tags*
.DS_Store
**/.vagrant/ **/.vagrant/
**/DerivedData/ **/DerivedData/
Icon? Icon?

View File

@ -3,6 +3,5 @@ source "https://rubygems.org"
gem "fastlane" gem "fastlane"
gem 'cocoapods', '1.14.3' gem 'cocoapods', '1.14.3'
gem 'public_suffix', '~> 4.0' gem 'public_suffix', '~> 4.0'
gem 'nkf', '0.2.0'
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path) eval_gemfile(plugins_path) if File.exist?(plugins_path)

View File

@ -282,7 +282,6 @@ DEPENDENCIES
cocoapods (= 1.14.3) cocoapods (= 1.14.3)
fastlane fastlane
fastlane-plugin-pgyer fastlane-plugin-pgyer
nkf (= 0.2.0)
public_suffix (~> 4.0) public_suffix (~> 4.0)
BUNDLED WITH BUNDLED WITH

View File

@ -1,31 +0,0 @@
import Foundation
import UIKit
import LiveCommunicationKit
@objc class LCKBridge: NSObject {
@objc static func presentCallInterfaceFromRootVC(_ rootVC: UIViewController, callerName: String) {
if #available(iOS 17.4, *) {
// ConversationManager
let config = ConversationManager.Configuration(
ringtoneName: "notes_of_the_optimistic",
iconTemplateImageData: UIImage(named: "AppIcon")?.pngData(),
maximumConversationGroups: 1,
maximumConversationsPerConversationGroup: 1,
includesConversationInRecents: false,
supportsVideo: false,
supportedHandleTypes: [.generic, .phoneNumber, .emailAddress]
)
let manager = ConversationManager(configuration: config)
let local = Handle(type: .generic, value: callerName, displayName: callerName)
let update = Conversation.Update(localMember: local, members: [local], activeRemoteMembers: [local])
Task {
do {
try await manager.reportNewIncomingConversation(uuid: UUID(), update: update)
print("成功报告新来电")
} catch {
print("报告新来电失败: \(error.localizedDescription)")
}
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More