升级walle

This commit is contained in:
v7lin
2021-01-18 17:08:18 +08:00
parent 21a0c4ae8e
commit e4ff515ddc
8 changed files with 107 additions and 200 deletions

View File

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

View File

@ -220,25 +220,6 @@ class WallePlugin implements Plugin<Project> {
throw new IllegalStateException("${apkFile.path} has no v2 signature in Apk Signing Block!")
}
// android.buildToolsVersionwalle 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 " +

View File

@ -5,7 +5,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:3.5.2'
}
}

View File

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

View File

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

View File

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

View File

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

View File

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