我制作了一个名为checkStatus
的示例应用程序。现在我想创建一个签名的APK文件。这样我就可以把它安装在不同的设备上进行测试。
为此,我在谷歌上找到了这个documentation。
根据文档,我切换到我的项目目录并运行以下命令:
keytool -genkey -v -keystore key-name.keystore -alias alias-name -keyalg RSA -keysize 2048 -validity 10000
运行上述命令后,我在projectRoot/key-name.keystore
获得了一个名为key-name.keystore
的文件。
然后我将该文件复制粘贴到projectRoot/platforms/android/key-name.keystore
中。
之后,我创建了一个名为ant.properties
的文件,并将其保存在projectRoot/platforms/android
中。
我在文件中编写了以下代码:
key.store=projectRoot/key-name.keystore
key.alias=myApp
在那之后,我运行以下命令来释放
Cordova builds android --release
它抛出了以下错误:
/home/projectRoot/platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
Error code 1 for command: ant with args: release,-f,/home/projectRoot/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /home/projectRoot/platforms/android/cordova/build: Command failed with exit code 8
at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:753:16)
at Process.ChildProcess._handle.onexit (child_process.js:820:5)
所以这一次,我修改了ant.properties
文件中的key.store
值,如下所示。
key.store=/home/projectRoot/platforms/android/key-name.keystore
我再次运行了cordova build android --release
命令。它会抛出相同的错误。
谁能告诉我我做错了什么?
发布于 2016-02-09 22:40:25
@malcubierre for Cordova 4(及更高版本)的更新-
创建一个名为release-signing.properties
的文件并将其放入APPFOLDER\platforms\android
文件夹
文件内容: edit after =适用于除第二行以外的所有内容
storeFile=C:/yourlocation/app.keystore
storeType=jks
keyAlias=aliasname
keyPassword=aliaspass
storePassword=password
然后,此命令应构建一个发布版本:
cordova build android --release
更新-这对我不起作用Cordova 10 with android 9
-构建替换了release-signing.properties文件。我必须创建一个build.json
文件,并将其放到应用程序文件夹中,与根目录相同。这就是内容--如上替换:
{
"android": {
"release": {
"keystore": "C:/yourlocation/app.keystore",
"storePassword": "password",
"alias": "aliasname",
"password" : "aliaspass",
"keystoreType": ""
}
}
}
运行它,它将在安卓文件夹中生成一个release-signing.properties
发布于 2016-01-14 11:12:29
在当前的documentation中,我们可以使用keystore指定一个build.json:
{
"android": {
"debug": {
"keystore": "..\android.keystore",
"storePassword": "android",
"alias": "mykey1",
"password" : "password",
"keystoreType": ""
},
"release": {
"keystore": "..\android.keystore",
"storePassword": "",
"alias": "mykey2",
"password" : "password",
"keystoreType": ""
}
}
}
然后,使用--buildConfig参数执行命令,如下所示:
cordova run android --buildConfig
发布于 2016-08-02 05:38:56
在苹果电脑上,我生成了两个.sh文件,一个用于首次发布,另一个用于更新:
#!/bin/sh
echo "Ionic to Signed APK ---- b@agencys.eu // Benjamin Rathelot\n"
printf "Project dir : "
read DIR
printf "Project key alias : "
read ALIAS
cd $DIR/
cordova build --release android
cd platforms/android/build/outputs/apk/
keytool -genkey -v -keystore my-release-key.keystore -alias $ALIAS -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk $ALIAS
zipalign -v 4 android-release-unsigned.apk signedApk.apk
更新你的应用程序:
#!/bin/sh
echo "Ionic to Signed APK ---- b@agencys.eu // Benjamin Rathelot\n"
printf "Project dir : "
read DIR
printf "Project key alias : "
read ALIAS
cd $DIR/
cordova build --release android
cd platforms/android/build/outputs/apk/
rm signedApk.apk
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk $ALIAS
zipalign -v 4 android-release-unsigned.apk signedApk.apk
假设你在你的主文件夹或位于你的应用文件夹顶部的文件夹中。确保正确设置chmod以使用此脚本。然后:
./ionicToApk.sh # or whatever depending of the name of your file, in CLI
您的签名apk将位于您的应用程序文件夹/platforms/android/build/outputs/apk/ as SignedApk.apk中请确保使用第一个脚本定义的正确密钥别名和密码
https://stackoverflow.com/questions/26449512
复制相似问题