我现在正致力于Ionic项目,我希望zipalign
android-release-unsigned.apk
文件。我跟着this guide by Ionic。
当我运行zipalign -v 4 /Users/zulhilmizainudin/Desktop/kl-parking/platforms/android/build/outputs/apk/android-release-unsigned.apk android-release.apk
命令时,出现-bash: zipalign: command not found
错误。
这是zipalign在我的系统中的位置:
/Users/zulhilmizainudin/Library/Android/sdk/build-tools/21.1.2
我尝试在其中复制zipalign并将其放入我的Ionic项目文件夹并再次运行zipalign命令。但仍然没有找到相同的命令。
我现在该怎么办?
答案 0 :(得分:58)
解决!
我将Library/Android/sdk/build-tools/21.1.2
中的 zipalign 文件复制到我的Ionic项目文件夹中
我在zipalign命令前添加./
,如下所示 - ./zipalign -v 4 /Users/zulhilmizainudin/Desktop/kl-parking/platforms/android/build/outputs/apk/android-release-unsigned.apk android-release.apk
完成。现在我在Ionic项目文件夹中得到 android-release.apk 。
感谢迈克尔的解决方案!
答案 1 :(得分:14)
如果您使用 Windows ,正确的方法是将zipalign.exe的路径添加为PATH环境变量。
C:\用户\随机名\ AppData \本地\的Android \ sdk1 \构建工具\ 24.0.1
答案 2 :(得分:11)
为了避免在构建发布版本时指定或导航到sdk / build-tools / *目录,您可以简单地添加环境变量的路径。
$ sudo nano~ / .bash_profile
复制并粘贴以下内容:
export PATH = $ {PATH}:/ Library / Android / sdk / build-tools / 21.1.2
然后您可以保存并退出
control + o //保存到文件 control + x //关闭文件 $ souce~ / .bash_profile
然后,您可以从项目CLI目录运行zipalign。
答案 3 :(得分:1)
如果要进行离子释放构建,则可以使用以下信息在应用程序的根文件夹中构建build.json文件
{
"android": {
"release": {
"keystore": "Your keystore",
"storePassword": "password",
"alias": "alias name",
"password" : "password",
"keystoreType": ""
}
} }
确保您可以将密钥库放置在应用程序的根文件夹中,或在密钥库对象上提供密钥库的完整路径
现在您可以按以下方式运行此命令
ionic cordova build android --release
此命令会自动找到您的build.json并进行签名发行。
答案 4 :(得分:0)
自从USB live安装程序安装Kali以来,我遇到了几个问题。
我发现我需要将其添加到sources.list
文件夹中的 /etc/apt
文件中。
只需将sources.list
的内容替换为:
deb http://http.kali.org/kali kali-rolling main contrib non-free
deb-src http://http.kali.org/kali kali-rolling main contrib non-free
deb http://old.kali.org/kali sana main non-free contrib
deb http://ftp.de.debian.org/debian wheezy main
答案 5 :(得分:0)
您应该为APK做(对齐,签名和验证)。 在Mac中,您应该执行以下步骤:
A-对齐APK:
1-您应在Android SDK中找到您的构建工具 zipalign :
/Users/mina/Downloads/sdk/build-tools/29.0.3/zipalign
2-您应该找到您的未签名的APK :
/Users/mina/Desktop/apks/app_unsigned.apk
3-您应该运行命令包含:
zipalign_path + -v -p 4 + unsigned_apk_path + output_aligned_apk_name
/Users/mina/Downloads/sdk/build-tools/29.0.3/zipalign -v -p 4
/Users/mina/Desktop/apks/app-unsigned.apk app_aligned.apk
4-输出成功通过验证
B-签署APK:
1-您应该在Android SDK中找到您的构建工具 apksigner :
/Users/mina/Downloads/sdk/build-tools/29.0.3/apksigner
2-您应该在PC中找到发布密钥库:
/Users/mina/Desktop/keys/release-Keystore.jks
3-您应该运行命令包含:
apksigner_path + 签署--ks + release-Keystore_path + -out + output_signed_apk_name + from_aligned_apk_name
/Users/mina/Downloads/sdk/build-tools/29.0.3/apksigner sign --ks
/Users/mina/Desktop/keys/release-keystore.jks
--out app_signed.apk app_aligned.apk
4-输入您的密钥存储区密码
C-验证APK:
1-运行以下命令:apksigner_path +验证+ app_signed.apk
/Users/mina/Downloads/sdk/build-tools/29.0.3/apksigner verify
app_signed.apk
注意:您可能会发现一些警告:
WARNING: META-INF/....
这是一些有关此的描述:
实际上,这些文件并不重要,它们主要是您所依赖的库的版本,因此,即使有人修改了这些文件,也不会对您的应用程序产生任何影响。这就是为什么这只是一个警告:APK中的那些文件可以被其他人修改,同时仍然假装APK由您签名,但是这些文件并不重要。
D-查找已签名的APK:
/Users/mina/app_signed.apk
答案 6 :(得分:0)
解决了!
我将zipalign文件复制为Michael Said (从我的Library / Android / SDK / build-tools / 28.0.3到我的Ionic项目文件夹中)
但我跑步时
./zipalign -v 4 app-release-unsigned.apk botellamovil.apk
我知道了
./zipalign: ERROR while loading shared libraries: libc++.so: cannot open shared object file: **No such file or directory**
因此,我还复制了 lib&lib64 文件,然后它可以正常工作!
我希望这会有所帮助:)(对不起我的英语)
答案 7 :(得分:0)
这在Mac上对我有用。安装并运行Android Studio(重要的是一次性启动它)。 然后找到zipalign:
find ~/Library/Android/sdk/build-tools -name "zipalign"
答案 8 :(得分:-1)
我通过将 zipalign 路径设为环境变量解决了这个问题:
export ZIPALIGN_PATH=~/Library/Android/sdk/build-tools/30.0.3/zipalign
然后我在尝试运行的脚本中将 zipalign
替换为 $ZIPALIGN_PATH