在对 androidmanifest 进行一些更改后重新编译 apk?

问题描述

所以我使用react native expo生成一个apk,但找不到设置目标sdk版本的方法,所以论坛中建议的解决方案是分离我的应用程序,这对我们的应用程序来说是不可能的,它会被破坏,我知道!

所以,我正在考虑使用 apktool 来设置 targetVersion!我使用以下命令从我的 apk 中获取一个文件夹:

apktool d myapk.apk

我在 androidmanifest.xml 中进行了更改,然后..

我想从这个编译的 apk 中再次获取我的 apk。从他们的文档中,我看不出他们是如何做到这一点的!他们使用带有 b 选项的推荐,但不在文件夹上使用!!

任何想法或帮助都将受到高度赞赏。

解决方法

当您执行 apktool d myapk.apk 时,您将获得文件夹 myapk/,其中包含您的整个反编译 apk。

更改您需要的内容后(在这种情况下,您实际上需要更改 apktool.yml 中的 targetSdkVersion 参数,而不是 AndroidManifest.xml),您需要运行 apktool b myapk/(传递那个 myapk 文件夹),这样您就会在 myapk/dist/myapk.apk 中获得重新编译的 apk。

sdkInfo:
  targetSdkVersion: '27' #(or any new desired target version)

之后,您仍然需要对该 apk 进行签名和压缩对齐,以使其在您的设备上运行。