背景:
1. 360強化トレジャー、署名は有料、スクリプトアップロード強化は特定のアカウントでのみ達成できます。
コンテンツ
この記事では、360 度の鉄筋と壁の署名を使用して Android プロジェクトでマルチチャネルの鉄筋パッケージを作成するプロセス全体を共有します。
環境
win10
jdk11
as2022+
gradle7.5
最終効果
壁を通して強化パッケージを入手するためのチャネル名は正しいです。
実装のアイデア
全体的なアイデアは次のとおりです。 4 つのステップ:
プロジェクト出力リリース パッケージ – 360 度の補強 – アライメント、署名 – 壁マルチチャンネル
。
もちろん、マルチチャンネル強化を実現するにはさまざまな方法がありますが、これはほんの 1 つの方法であり、より良い方法がある場合は、コメント エリアにメッセージを残していただけます。
気づき始める
(1) 壁依存性の導入
マルチチャネル全体の中心は壁に基づいており、360 度の補強によって補助されます。
したがって、ここでの最初のステップは、壁への依存関係を導入することです。
Walle には正式版と、民間の専門家が gradle7.0+ に対応するためにアップグレードしたバージョンの 2 つの優れたバージョンがあり、どちらを選択するかはプロジェクトによって異なります。ここのデモではフォークバージョンを選択しました。
https://github.com/Petterpx/walle (フォークアップグレード版)
https://github.com/Meituan-Dianping/walle (公式オリジナルバージョン)
具体的な設定方法は上記の 2 つのリンクで説明されているので、ここでは簡単に説明します。
//walle配置核心-start--------------------------
远程仓库地址
maven { url 'https://jitpack.io' }
classpath:
classpath 'com.github.Petterpx.walle:plugin:1.0.5'
主项目app,build.gradle中配置:
apply plugin: 'walle'
walle {
def outputFile = new File("${rootProject.rootDir}/walle/")
outputFile.deleteDir()
outputFile.mkdirs()
// 指定渠道包的输出路径
apkOutputFolder = outputFile
// 定制渠道包的APK的文件名称
apkFileNameFormat = '${channel}-v${versionName}.apk'
// 渠道配置文件
channelFile = new File("${rootProject.rootDir}/channel")
}
implementation 'com.github.Petterpx.walle:library:1.0.5'
特别注意,一定要配置好项目的密钥,否则walle编译会报错
//walle配置核心-end-------------------------
正式版と比べて、wall出力時のディレクトリ構築方法を書き直して、一旦削除してから作成するようにしました。各パッケージは新しいディレクトリです。
知らせ!!壁用ブラケットの関連する構成をよく読んでください。
そうは言っても、上記の設定を見て実行してみてください。公式オリジナルのマルチチャンネルは使用しないので、ここでは設定のみを記載します。実際、マルチチャネル パッケージには基本的な影響はありません。
構成が完了したら、プロジェクトをインストールし、正式にパッケージ化し、再ビルドできます。つまり導入成功です!
最後に、後続のチャネル情報を表示するようにアクティビティでコードを構成します。
val channel: String? = WalleChannelReader.getChannel(this.applicationContext)
Log.d("渠道", "当前渠道:${channel}")
(2) 360 強化
手順 (1) に基づいて、プロジェクトの build->signapk->make a release package をクリックします。
次に、強化のために360強化トレジャーを開きます。
[追加] をクリックし、作成したばかりのリリース パッケージを選択し、強化が完了するまで待ちます。
以下に示すように強化が完了します。
この時点でダウンロードされたパッケージは署名されておらず、強化のみが行われています。現時点では、このパッケージに署名して調整する必要があります。マルチチャンネル。
(3)署名コマンドを再署名するコントラクト配布を行ったことがある人なら誰でも知っていると思いますが、コード例は次のとおりです。
jarsigner -verbose -keystore jiagu.jks -storepass 123456 -signedjar jiagu_signed.apk app-release_10_jiagu.apk jiagu
zipalign -p -f -v 4 jiagu_signed.apk jiagu_signed2.apk
apksigner sign --ks jiagu.jks --ks-key-alias jiagu --ks-pass pass:123456 --v1-signing-enabled true --v2-signing-enabled true -v --out .\jiagu_signed3.apk .\jiagu_signed2.apk
これは、jarsigner、aipalign、および apksigner を介して署名および調整することで実現できます。ここで、指示を実行する前にまず Windows システム環境を構成する必要があることに注意してください。構成しないと実行が失敗します。
ここで使用される jdk は 11 と sdk build-tools30 です。
具体的には、対応するパスをウィンドウ環境変数のパスに追加するだけです。
これで環境が構成され、上記の手順が実行されました。次に、ディレクトリにパッケージ apk_signed3.apk が作成されます。この際、本設置パッケージは壁面マルチチャンネル化する必要があります。
(3) Walle マルチチャネル
具体的な手順については、公式 Web サイトを参照してください:
https://github.com/Petterpx/walle/blob/main/walle-cli/README.md
Walle-cli-all.jar が使用されますパッケージングについては、github から見つけてダウンロードできます。
具体的な手順は次のとおりです。
java -jar wallejar/walle-cli-all.jar batch -f channel apk_signed3.apk
チャネルは、チャネルを捕捉するファイルです
。配布するマーケット構成によって異なります。私の構成は次のとおりです。
チャネル構成の 1 行のテキストを次に示します。
最後に、コマンドを実行すると、ディレクトリにチャネル パッケージが表示されます。次に、それをインストールし、特定のログ出力が期待どおりかどうかを観察します。
注意注意注意!!!
署名とアライメントの場合、
(1) as jdk のバージョンがシステム環境の jdk のバージョンと一致せず、署名が失敗するなど、多くの問題が発生する可能性があります。一貫した JDK 環境 (ウィンドウ内を含む) 同様の Java_home 変数もプロジェクトと同じ JDK に調整する必要があります。
(2) 生成された署名ファイル xxx.jks が使用する jdk 環境がプロジェクトと一致していることを確認します。
署名が正常に実行され、その後のマルチチャネル パッケージングが実行できるように、上記 2 つのステップの環境が一貫していることを確認する必要があります。
それだけです - - - - - - - - - - - - - - - - - - - - - - - - -------------------------------------------------- -----------