mirror of
https://github.com/RxReader/walle_kit.git
synced 2025-08-26 02:03:54 +08:00
升级walle
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
group 'io.github.v7lin.walle_kit'
|
||||
version '1.1.0'
|
||||
version '1.1.1'
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
@ -8,7 +8,7 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||
classpath 'com.android.tools.build:gradle:3.5.2'
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,5 +51,5 @@ android {
|
||||
dependencies {
|
||||
implementation 'androidx.annotation:annotation:1.0.0'
|
||||
|
||||
vendorImplementation 'com.meituan.android.walle:library:1.1.6'
|
||||
vendorImplementation 'com.meituan.android.walle:library:1.1.7'
|
||||
}
|
||||
|
@ -220,25 +220,6 @@ class WallePlugin implements Plugin<Project> {
|
||||
throw new IllegalStateException("${apkFile.path} has no v2 signature in Apk Signing Block!")
|
||||
}
|
||||
|
||||
// android.buildToolsVersion,walle 官方暂未作 Apk Signature Scheme v3 支持
|
||||
def v3SigningEnabled = v3SigningEnabled(target, apkFile)
|
||||
System.out.println("v3SigningEnabled: ${v3SigningEnabled}")
|
||||
|
||||
// 下载相关编译工具
|
||||
def buildToolsVersionForApkSigner = target.android.buildToolsVersion
|
||||
if (v3SigningEnabled) {
|
||||
buildToolsVersionForApkSigner = '27.0.3'
|
||||
if (mergeWalle.qihoo360 != null || mergeWalle.tencent != null) {
|
||||
if (!new File("${target.android.sdkDirectory.path}/build-tools/${buildToolsVersionForApkSigner}/apksigner").exists()) {
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "mkdir -p ~/.android/ && " +
|
||||
"touch ~/.android/repositories.cfg && " +
|
||||
"echo y | ${target.android.sdkDirectory.path}/tools/bin/sdkmanager --install \"build-tools;${buildToolsVersionForApkSigner}\""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 预备输出目录
|
||||
def outputDir = mergeWalle.outputDir
|
||||
if (outputDir == null) {
|
||||
@ -263,14 +244,9 @@ class WallePlugin implements Plugin<Project> {
|
||||
String fileNameFormat = mergeWalle.fileNameFormat ?: '${appName}-${buildType}-${channelId}.apk'
|
||||
def targetApkFile = new File(outputDir, new SimpleTemplateEngine().createTemplate(fileNameFormat).make(nameVariantMap).toString())// new File(outputDir, apkFile.name)
|
||||
|
||||
// 重新签名/复制
|
||||
if (v3SigningEnabled) {
|
||||
System.out.println("sign apk: ${apkFile.path}")
|
||||
signApk(target, variant, buildToolsVersionForApkSigner, apkFile, targetApkFile)
|
||||
} else {
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "cp ${apkFile.path} ${targetApkFile.path}"
|
||||
}
|
||||
// 复制
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "cp ${apkFile.path} ${targetApkFile.path}"
|
||||
}
|
||||
|
||||
System.out.println("target apk file: ${targetApkFile.path}")
|
||||
@ -355,7 +331,7 @@ class WallePlugin implements Plugin<Project> {
|
||||
}).first()
|
||||
File jiaguApkSigned = new File(jiaguDir.path, targetApkFile.name.replace('.apk', '_jiagu_signed.apk'))
|
||||
System.out.println("sign jiagu apk: ${jiaguApk.path}")
|
||||
signApk(target, variant, buildToolsVersionForApkSigner, jiaguApk, jiaguApkSigned)
|
||||
signApk(target, variant, target.android.buildToolsVersion, jiaguApk, jiaguApkSigned)
|
||||
System.out.println("<-- jiagu")
|
||||
|
||||
originalApkFile = jiaguApkSigned
|
||||
@ -404,7 +380,7 @@ class WallePlugin implements Plugin<Project> {
|
||||
}).first()
|
||||
File leguApkSigned = new File(leguDir.path, targetApkFile.name.replace('.apk', '_legu_signed.apk'))
|
||||
System.out.println("sign legu apk: ${leguApk.path}")
|
||||
signApk(target, variant, buildToolsVersionForApkSigner, leguApk, leguApkSigned)
|
||||
signApk(target, variant, target.android.buildToolsVersion, leguApk, leguApkSigned)
|
||||
System.out.println("<-- legu")
|
||||
|
||||
originalApkFile = leguApkSigned
|
||||
@ -419,19 +395,36 @@ class WallePlugin implements Plugin<Project> {
|
||||
}
|
||||
if (!jarFile.exists()) {
|
||||
jarFile.parentFile.mkdirs()
|
||||
System.out.println('download walle-cli-all.jar')
|
||||
def downloadUrl = 'https://github.com/Meituan-Dianping/walle/releases/download/v1.1.6/walle-cli-all.jar'
|
||||
System.out.println('download walle-1.1.7.zip')
|
||||
def downloadUrl = 'https://codeload.github.com/Meituan-Dianping/walle/zip/v1.1.7'
|
||||
def walleZipFile = new File(jarFile.parentFile, "walle-1.1.7.zip")
|
||||
if (org.gradle.internal.os.OperatingSystem.current().isMacOsX()) {
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "curl -iL --max-redirs 5 -o ${jarFile.path} $downloadUrl"
|
||||
commandLine 'bash', '-lc', "curl -iL --max-redirs 5 -o ${walleZipFile.path} $downloadUrl"
|
||||
}
|
||||
} else if (org.gradle.internal.os.OperatingSystem.current().isLinux()) {
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "wget -O ${jarFile.path} $downloadUrl"
|
||||
commandLine 'bash', '-lc', "wget -O ${walleZipFile.path} $downloadUrl"
|
||||
}
|
||||
}
|
||||
if (!walleZipFile.exists()) {
|
||||
throw new IllegalStateException('下载 walle-1.1.7.zip 失败')
|
||||
}
|
||||
// 解压
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "unzip -o ${walleZipFile.path} -d ${walleZipFile.parentFile.path}\n" +
|
||||
"rm ${walleZipFile.path}"
|
||||
}
|
||||
def walleUnzipDir = new File(walleZipFile.parentFile, 'walle-1.1.7')
|
||||
// 编译
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "cd ${walleUnzipDir.path}\n" +
|
||||
"./gradlew :walle-cli:clean :walle-cli:shadowJar\n" +
|
||||
"cp walle-cli/build/libs/walle-cli-all.jar ${jarFile.path}\n" +
|
||||
"rm -rf ${walleUnzipDir.path}\n"
|
||||
}
|
||||
if (!jarFile.exists()) {
|
||||
throw new IllegalStateException('下载 walle-cli-all.jar 失败')
|
||||
throw new IllegalStateException("${jarFile.name} 编译失败")
|
||||
}
|
||||
}
|
||||
if (!mergeWalle.channelFile.exists()) {
|
||||
@ -460,22 +453,6 @@ class WallePlugin implements Plugin<Project> {
|
||||
return signingConfig.v2SigningEnabled
|
||||
}
|
||||
|
||||
// android.buildToolsVersion 从 29.0.0 才开始支持 v3 signing scheme
|
||||
// 28.0.x这玩意,Gradle自动签是v2的,Shell手动签的是v3的,而且还无法用以下方法判断!
|
||||
boolean v3SigningEnabled(Project target, File apkFile) {
|
||||
if (target.android.buildToolsVersion.startsWith('28')) {
|
||||
return true
|
||||
}
|
||||
File verifyLogFile = new File(apkFile.parentFile, 'verify.log')
|
||||
if (verifyLogFile.exists()) {
|
||||
verifyLogFile.delete()
|
||||
}
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "${target.android.sdkDirectory.path}/build-tools/${target.android.buildToolsVersion}/apksigner verify --verbose ${apkFile.path} >> ${verifyLogFile.path}"
|
||||
}
|
||||
return verifyLogFile.readLines().contains('Verified using v3 scheme (APK Signature Scheme v3): true')
|
||||
}
|
||||
|
||||
void signApk(Project target, variant, String buildToolsVersion, File apkFile, File targetApkFile) {
|
||||
target.exec {
|
||||
commandLine 'bash', '-lc', "${target.android.sdkDirectory.path}/build-tools/${buildToolsVersion}/apksigner sign " +
|
||||
|
@ -5,7 +5,7 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||
classpath 'com.android.tools.build:gradle:3.5.2'
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
PODS:
|
||||
- Flutter (1.0.0)
|
||||
- walle_kit (1.1.0):
|
||||
- walle_kit (1.1.1):
|
||||
- Flutter
|
||||
|
||||
DEPENDENCIES:
|
||||
@ -15,8 +15,8 @@ EXTERNAL SOURCES:
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
|
||||
walle_kit: 83be9a18a8fc0657f2f70b9fc909b420c0507e29
|
||||
walle_kit: 8a33d4dee76a8db7c5a711880f07fc1838fab3ad
|
||||
|
||||
PODFILE CHECKSUM: f32fb4e7c14f8b3ca19a369d7be425dd9241af27
|
||||
|
||||
COCOAPODS: 1.8.4
|
||||
COCOAPODS: 1.9.3
|
||||
|
@ -1,62 +1,48 @@
|
||||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
archive:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: archive
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.13"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.6.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.4.1"
|
||||
version: "2.5.0-nullsafety.1"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.0-nullsafety.1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.0-nullsafety.3"
|
||||
charcode:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: charcode
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.3"
|
||||
version: "1.2.0-nullsafety.1"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.0-nullsafety.1"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.14.12"
|
||||
convert:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: convert
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: crypto
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
version: "1.15.0-nullsafety.3"
|
||||
cupertino_icons:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -64,6 +50,13 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.1.3"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.2.0-nullsafety.1"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
@ -74,34 +67,27 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
image:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: image
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.12"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.12.6"
|
||||
version: "0.12.10-nullsafety.1"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.8"
|
||||
version: "1.3.0-nullsafety.3"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.6.4"
|
||||
version: "1.8.0-nullsafety.1"
|
||||
pedantic:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
@ -109,20 +95,6 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.4.0"
|
||||
quiver:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: quiver
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.3"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@ -134,70 +106,63 @@ packages:
|
||||
name: source_span
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.7.0"
|
||||
version: "1.8.0-nullsafety.2"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.9.3"
|
||||
version: "1.10.0-nullsafety.1"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.0-nullsafety.1"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.0.5"
|
||||
version: "1.1.0-nullsafety.1"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.2.0-nullsafety.1"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.2.15"
|
||||
version: "0.2.19-nullsafety.2"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.6"
|
||||
version: "1.3.0-nullsafety.3"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.8"
|
||||
version: "2.1.0-nullsafety.3"
|
||||
walle_kit:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: ".."
|
||||
relative: true
|
||||
source: path
|
||||
version: "1.1.0"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "3.6.1"
|
||||
version: "1.1.1"
|
||||
sdks:
|
||||
dart: ">=2.7.0 <3.0.0"
|
||||
dart: ">=2.10.0-110 <2.11.0"
|
||||
flutter: ">=1.10.0"
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'walle_kit'
|
||||
s.version = '1.1.0'
|
||||
s.version = '1.1.1'
|
||||
s.summary = 'A powerful Flutter plugin allowing developers to read/write channelId to apk with Walle Tools/SDKs.'
|
||||
s.description = <<-DESC
|
||||
A powerful Flutter plugin allowing developers to read/write channelId to apk with Walle Tools/SDKs.
|
||||
|
101
pubspec.lock
101
pubspec.lock
@ -1,62 +1,55 @@
|
||||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
archive:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: archive
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.13"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.6.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.4.1"
|
||||
version: "2.5.0-nullsafety.1"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.0-nullsafety.1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.0-nullsafety.3"
|
||||
charcode:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: charcode
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.3"
|
||||
version: "1.2.0-nullsafety.1"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.0-nullsafety.1"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.14.12"
|
||||
convert:
|
||||
version: "1.15.0-nullsafety.3"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: convert
|
||||
name: fake_async
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: crypto
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
version: "1.2.0-nullsafety.1"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
@ -67,34 +60,27 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
image:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: image
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.12"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.12.6"
|
||||
version: "0.12.10-nullsafety.1"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.8"
|
||||
version: "1.3.0-nullsafety.3"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.6.4"
|
||||
version: "1.8.0-nullsafety.1"
|
||||
pedantic:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
@ -102,20 +88,6 @@ packages:
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.4.0"
|
||||
quiver:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: quiver
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.1.3"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@ -127,63 +99,56 @@ packages:
|
||||
name: source_span
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.7.0"
|
||||
version: "1.8.0-nullsafety.2"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.9.3"
|
||||
version: "1.10.0-nullsafety.1"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.0-nullsafety.1"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.0.5"
|
||||
version: "1.1.0-nullsafety.1"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.2.0-nullsafety.1"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "0.2.15"
|
||||
version: "0.2.19-nullsafety.2"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "1.1.6"
|
||||
version: "1.3.0-nullsafety.3"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "2.0.8"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
url: "https://pub.flutter-io.cn"
|
||||
source: hosted
|
||||
version: "3.6.1"
|
||||
version: "2.1.0-nullsafety.3"
|
||||
sdks:
|
||||
dart: ">=2.7.0 <3.0.0"
|
||||
dart: ">=2.10.0-110 <2.11.0"
|
||||
flutter: ">=1.10.0"
|
||||
|
@ -1,6 +1,6 @@
|
||||
name: walle_kit
|
||||
description: A powerful Flutter plugin allowing developers to read/write channelId to apk with Walle Tools/SDKs.
|
||||
version: 1.1.0
|
||||
version: 1.1.1
|
||||
# author: v7lin <v7lin@qq.com>
|
||||
homepage: https://github.com/v7lin/walle_kit
|
||||
|
||||
|
Reference in New Issue
Block a user