我需要在签名的APK文件中增加versionCode。
我所做的事如下:
apktool d myapk.apkapktool.yml,增量versionCode并保存apktool bjarsigner和zipalignApk在手机上运行得很好,但是versionCode并没有改变。这是apktool.yml
version: 2.0.0
apkFileName: iVet.apk
isFrameworkApk: false
usesFramework:
ids:
- 1
sdkInfo:
minSdkVersion: '16'
targetSdkVersion: '21'
packageInfo:
forced-package-id: '127'
versionInfo:
versionCode: '3'
versionName: '1.1'
compressionType: false
sharedLibrary: false
unknownFiles:
VERSION: '8'发布于 2015-08-11 20:13:31
警告:您所做的将使签名无效。之后,您必须辞职才能安装它,而且它看起来不像原来的开发人员所做的那样。除了功劳之外,没有别的办法了。
您只需将versionCode放在AndroidManifest.xml中,它将覆盖从apktool.yml提供给aapt的参数,并发出警告。我刚刚亲自确认了这一点。
对AndroidManifest.xml的示例更改
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.example.someApp" android:versionCode="12345" android:versionName="1.2.3.4.5">设置版本信息:https://developer.android.com/tools/publishing/versioning.html#appversioning
如果您更改了aapt命令,apktool.yml会是什么样子?
Aug 11, 2015 12:56:52 PM brut.androlib.res.AndrolibResources aaptPackage
INFO: [/var/folders/5m/jph9d7q573b5yl5ybnhhx4000000gn/T/brut_util_Jar_5616282982200298928.tmp, p, -v, --forced-package-id, 127, --min-sdk-version, 5, --version-code, 12345, --version-name, 1.2.3.4.5, -F, /Users/caleb/example/someApp.apk, -0, arsc, -A, /Users/caleb/example/./assets, /Users/caleb/example/./build/apk]很明显,apktool.yml中的值是从AndroidManifest.xml:https://github.com/iBotPeaches/Apktool/blob/0370416d9029d01f210556ab3662e3fa0f80c239/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/XmlPullStreamDecoder.java#L96中提取的
由于某些原因,它们没有包含在已解码的<manifest>属性中。这可能是个窃听器。
https://stackoverflow.com/questions/30774833
复制相似问题