是否可以使用单个签名密钥签署两个不同的应用程序以发布到 Google PlayStore?
有什么问题吗?有什么问题吗?这是好还是坏的做法?
提前致谢!
我正在为我的第一个应用程序使用 Google Play 的应用程序签名。我使用新的签名证书创建了一个新应用程序,但我想使用相同的上传证书。是否可以对 Google Play Console 中的多个应用使用相同的上传证书?如果是这样,这是一个好的做法吗?存在哪些潜在问题?
就我而言,旧的 apk 文件名包含未对齐和未签名的签名信息。使用以下方法在模块 gradle 文件中重命名这些旧文件名:
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
output.outputFile.name.replace(".apk", "-${variant.versionCode}-${variant.versionName}.apk"))
}
}
Run Code Online (Sandbox Code Playgroud)
版本代码和版本名称设置如下:
versionCode buildNumber()
versionName "${versionMajor}.${versionMinor}"
Run Code Online (Sandbox Code Playgroud)
在此重命名的结果中,签名信息(未对齐或未签名)位于变体版本代码之前。
现在我使用的是 gradle:3.0.0-beta6。因此我无法再使用旧方法,因为outputFile 更改为只读并且无法重命名。现在我尝试向我的 gradle 添加一个新的重命名方法,如下所示:
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${archivesBaseName}-${variant.baseName}-${variant.versionCode}-${variant.versionName}.apk"
}
}
Run Code Online (Sandbox Code Playgroud)
这样,新的 apk 名称几乎看起来像旧的,但在 baseName 和 versionCode 之间缺少签名信息。该应用程序尚未签名,因此应该有未签名的信息。
有谁知道我如何能够在不进行硬编码的情况下添加此信息?
如果应用程序被签名,此信息应该消失,但如果可能的话,无需更改重命名方法。
android android-studio android-gradle-plugin android-app-signing
相当直接的问题。有谁知道 Google Play App Signing 是否支持 Instant Apps?我问的原因:
输入您的应用程序的签名配置,或选择一个密钥库文件。虽然可以在测试期间使用调试配置或密钥库,但生成的数字资产链接文件将与您的应用程序的发布版本不兼容。如果您确实上传了使用调试配置或密钥库的数字资产链接文件,则在发布应用程序之前,您需要生成并上传使用应用程序发布密钥的新数字资产链接。
来自博客文章:-如何创建即时应用功能
如果此声明属实,播放控制台是否提供了生成assetlinks.json? 这是您必须在声称附属的域上托管的文件。
android google-play android-app-signing android-instant-apps
我试图通过 Play App Signing 了解签名过程。因此有几个问题。
你能解释一下签署应用程序的正确过程以及如何使用它吗?
还有这里
现有应用程序->步骤 2->5 Syas:选择最适合您的发布过程的导出和上传选项并上传现有的应用程序签名密钥。
我没有看到上传现有应用签名密钥的选项...
所以我试图注册一个新的App登录以发布一个新的应用程序,当我输入以下命令时出现以下错误
java -jar“ /path/to/pepk.jar” --keystore =“ / path / to / key_prod.keystore” --alias =“ myAlias” --encryptionkey =“ 1230928312431093randomkey1231238u981y8u23” --output =“ / path / to /private_key.pem”
错误:
错误:必须指定--alias
用法:
java -jar pepk.jar --keystore <release_keystore> --alias <key_alias> --encryptionkey = <加密密钥_hex> --output = <输出文件>
我的语法可以吗?我不明白为什么它说未指定我的别名。
谢谢!
我想在市场上发布我的应用程序.但在我签署我的apk并安装它后,我甚至在加载活动之前就崩溃了.我在logCat中找到了以下错误
03-24 14:57:03.080: E/AndroidRuntime(4310): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.golfboxdk/com.golfboxdk.LoginActivity}:
java.lang.ClassNotFoundException: Didn't find class "com.golfboxdk.LoginActivity" on path: DexPathList[[zip file "/data/app/com.golfboxdk-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.golfboxdk-1, /vendor/lib, /system/lib]]
Run Code Online (Sandbox Code Playgroud)
我检查了我的清单,我真的无法弄清楚什么是错的.当我使用未签名的apk时,我的应用程序运行顺利.
这是我的清单的开始
package="com.golfboxdk"
android:versionCode="5"
android:versionName="1.7.2" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
android:name="com.golfboxdk.utils.GolfBoxApplication"
android:allowBackup="false"
android:icon="@drawable/app_icon"
android:killAfterRestore="true"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar" >
<activity
android:name="com.golfboxdk.LoginActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过的事情:在 - > Project-> Properties-> java Build path-> Order and …
我正在尝试再次发布我的 Android Studio 应用程序。我刚刚更新了 Android studio,当然,它会自动忘记发布应用程序的任何旧密钥和密码。不过,我已经单独存储了密码,因此当我再次输入密码时,我知道它们是正确的。
我还尝试使用我的密钥库密码直接在 Mac 上打开我的密钥库文件,并且它有效,因此它也确认了密钥库密码是正确的。
我还尝试从头开始卸载并重新安装 Android Studio。
另外,当我尝试仅生成 APK 或仅生成“签名包”时,一切正常。仅当我选择“签名包/apk”时才会发生这种情况
我尝试复制粘贴正确的密码并输入它们。但是,一旦我输入正确的密钥密码和密钥存储密码,它总是给我同样的错误。它说:
任务“:app:signReleaseBundle”执行失败。执行 com.android.build.gradle.internal.tasks.FinalizeBundleTask$BundleToolRunnable 时发生故障无法从存储“/Users/blabla/Desktop/blabla/appkeys/keystore.jks”读取密钥 myKey:
获取密钥失败:给定的最后一个块未正确填充。如果在解密过程中使用错误的密钥,可能会出现此类问题。
当我尝试按照 Android Studio 的建议使用完整堆栈跟踪 (--stacktrace) 运行它时,它会以零错误完成运行。
如何解决此问题并再次发布我的应用程序?
launching-application android-studio android-gradle-plugin android-app-signing
我想将我的项目 key.properties 和 .jks 文件保留在 GitHub 中,但是每当我在生成这些文件后提交时,这些文件都不会提交。
我知道将这些文件保留在 GitHub 上可能有风险,但我的存储库是私有的,只有我的拼贴可以访问它们。
因此,我想将这些文件保留在我的 GitHub 存储库中。
任何有关这方面的帮助将不胜感激。
[Storing c:\Users\USER_NAME\upload-keystore.jks] keytool error: java.io.FileNotFoundException: c:\Users\USER_NAME\upload-keystore.jks (The system cannot find the path specified) java.io.FileNotFoundException: c:\Users\USER_NAME\upload-keystore.jks (The system cannot find the path specified) at java.base/java.io.FileOutputStream.open0(Native Method) at java.base/java.io.FileOutputStream.open(FileOutputStream.java:293) at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:235) at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:123) at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1360) at java.base/sun.security.tools.keytool.Main.run(Main.java:415) at java.base/sun.security.tools.keytool.Main.main(Main.java:408)
Run Code Online (Sandbox Code Playgroud)