标签: android-signing

如何启用Google Play App签名

我认为很多开发者都在尝试了解更多有关Google I/O 2017上展示的新版Google Play App Signing功能的信息.

存储密钥库以在Google Play内部对应用进行签名的功能可以节省您安全存储密钥库的工作量,并可以帮助系统根据硬件和操作系统特性优化为每个设备提供的APK.

您可以在官方文档中阅读有关此主题的更多信息:https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing.

通过以下答案,我将更好地解释您上传原始密钥库所需遵循的步骤以及如何创建新的上传密钥库,从此点开始您需要签署APK.

android google-play android-signing android-app-signing

84
推荐指数
6
解决办法
7万
查看次数

Android错误构建签名APK

我尝试构建签名APK时收到此错误.我最近升级到API 23,但之后生成了APK:s.我糊涂了.寻求帮助并建议如何解决这个问题.这是错误

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:validateExternalOverrideSigning'.
> Keystore file /Users/me/Desktop/final apps/keystore.jks not 
found for signing config 'externalOverride'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --  
debug option to get more log output.
Run Code Online (Sandbox Code Playgroud)

和日志

Information:Gradle tasks [:app:assembleRelease]
:app:preBuild UP-TO-DATE
:app:preReleaseBuild UP-TO-DATE
:app:checkReleaseManifest
:app:preDebugBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72311Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42311Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppindexing810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBasement810Library UP-TO-DATE
:app:prepareReleaseDependencies
:app:compileReleaseAidl UP-TO-DATE
:app:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig UP-TO-DATE
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets …
Run Code Online (Sandbox Code Playgroud)

android build apk android-studio android-signing

63
推荐指数
7
解决办法
7万
查看次数

使用Google Play上传密钥签名APK

我在Play商店创建了一个测试应用,以测试Google Play Signing功能.一旦我创建了测试应用程序并启用了该功能,我就可以访问"部署证书".我没有下载或以任何方式使用它.以下是我遵循的步骤:

  1. 然后使用Android Studio,我创建一个新的密钥库,给它一个密码,并创建一个带密码的别名(像往常一样).
  2. 使用在步骤1中创建的密钥库对应用程序进行了签名将应用程序上载到Google Play商店.
  3. 下载了上传密钥证书.使用命令将上载密钥证书添加到在步骤1中创建的密钥库中 keytool.exe -importcert -file upload.der -keystore mykeystore.keystore
  4. 检查是否使用命令将其添加到密钥库 keytool.exe -list -keystore mykeystore.keystore.现在有两个别名,在步骤3中添加了一个新别名(名为mykey).它是可信证书类型.

现在由于"受信任的证书条目没有密码保护",没有别名密码,Android Studio不允许我签署应用程序,当然我不能使用随机密码,因为它们"没有密码保护".如何使用它来签署我的apk以便将来更新?我错过了一些关键的东西,或者我的理解是不正确的?

android google-play android-signing

13
推荐指数
1
解决办法
2688
查看次数

无法在 Android 上为 Azure AD 创建 SingleAccountPublicClientApplication

按照https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-android 上的说明我使用 KeyTool 生成了开发签名哈希并在 Azure 门户中注册了我的应用程序。

门户生成了 MSAL 配置,然后我将其粘贴到项目中的 res.raw.auth_config.json 中(my-app-client-id 和 my-app 的包名称只是下面示例中的占位符;实际值是由自动生成的天蓝色):

{
  "client_id" : "<my-app-client-id>",
  "authorization_user_agent" : "DEFAULT",
  "redirect_uri" : "msauth://<my-app's package name>/npYKnQBHywGAasZflTy2xmdpEiU%3D",
  "authorities" : [
    {
      "type": "AAD",
      "audience": {
        "type": "AzureADMultipleOrgs",
        "tenant_id": "organizations"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

然后我将以下内容添加到 AndroidManifest.xml:

<application>
[..]
        <!--Intent filter to catch Microsoft's callback after Sign In-->
        <activity
            android:name="com.microsoft.identity.client.BrowserTabActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE"/>

                <!--
                    Add in your scheme/host from registered redirect URI
                    note that …
Run Code Online (Sandbox Code Playgroud)

android azure-active-directory android-signing

10
推荐指数
2
解决办法
2416
查看次数

如何在Android中签署AAR工件?

我正在开发一个.AAR安卓库,我想用自己的密钥签署已发布的工件,以便我可以确定是否已经发布了具有相同名称和功能的假aar.

通知1:

我希望能够以编程方式检查我的库的真实性,即使是伪造的库,也只是伪造我的aar文件的一部分功能.

通知2:

打算将这个aar发布到maven,sonatype或任何其他公共存储库中.因此,我将签署一个典型的发布流程,如签署apk文件.

java android gradle aar android-signing

6
推荐指数
1
解决办法
3679
查看次数

如何在一键登录中使用 Google Activity Result API

在我的 Android 应用程序之一中,我尝试按照示例https://developers.google.com/identity/one-tap/android/get-saved-credentials#disable-one-tap包含一键登录身份验证。但是,这里https://developer.android.com/reference/androidx/activity/ComponentActivity#startActivityForResult(android.content.Intent,int)表示函数 startActivityForResult 已被弃用,并使用函数 registerForActivityResult 传入 StartActivityForResult ActivityResultContract 的对象。在其他示例的帮助下,我可以编写以下代码

 public class MainActivity extends AppCompatActivity {


    private SignInClient oneTapClient;
    private BeginSignInRequest signInRequest;

    private ActivityResultLauncher<Intent> loginResultHandler = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
        // handle intent result here
        if (result.getResultCode() == RESULT_OK) {
            SignInCredential credential = null;
            try {
                credential = oneTapClient.getSignInCredentialFromIntent(result.getData());
                String idToken = credential.getGoogleIdToken();
                String username = credential.getId();
                String password = credential.getPassword();
                if (idToken != null) {
                    // Got an ID token from Google. Use it to …
Run Code Online (Sandbox Code Playgroud)

android google-api android-signing google-one-tap

6
推荐指数
1
解决办法
3136
查看次数

Android签名配置和分裂abi冲突

我有一个使用jni库的项目.为此,我在我的gradle文件中有这个设置,根据他们的平台拆分apks(并且工作正常):

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.properties.put(signingConfig, signingConfigs.config)
            output.versionCodeOverride =
                    versionCodes.get(output.getFilter(
                            com.android.build.OutputFile.ABI), 0) * 10000000 + android.defaultConfig.versionCode
        }
    }

splits {
        abi {
            enable true
            reset()
            include "armeabi", "armeabi-v7a", "arm64-v8a", "mips", "mips64", "x86", "x86_64"

            universalApk true
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在我想设置一个签名配置,这样我就可以release直接从android studio 运行Build变量,所以我把它添加到我的gradle文件中:

def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    signingConfigs {
            config {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile rootProject.file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }

    buildTypes …
Run Code Online (Sandbox Code Playgroud)

java-native-interface android android-gradle-plugin android-signing

5
推荐指数
1
解决办法
547
查看次数

如何将签名配置添加到 Multi-FlavorDimensions (ProductFlavors)?

例如,我有一个 gradle 构建,如下所示:

signingConfigs {
        configFlavor1 {
        keyAlias 'alias1'
        keyPassword 'password1'
        storeFile file('location1')
        storePassword 'password1'
        v1SigningEnabled true
        v2SigningEnabled true
    }

    configFlavor2 {
        keyAlias 'alias2'
        keyPassword 'password2'
        storeFile file('location2')
        storePassword 'password2'
        v1SigningEnabled true
        v2SigningEnabled true
    }

    configFlavor3 {
        keyAlias 'alias3'
        keyPassword 'password3'
        storeFile file('location3')
        storePassword 'password3'
        v1SigningEnabled true
        v2SigningEnabled true
    }
}

flavorDimensions "dimen1", "dimen2"
productFlavors {
    flavor1 {
        dimension "dimen1"
    }
    flavor2 {
        dimension "dimen1"
    }
    testing {
        dimension "dimen2"
    }
    dev {
        dimension "dimen2"
    }
    prod {
        dimension "dimen2" …
Run Code Online (Sandbox Code Playgroud)

android gradle android-productflavors android-flavordimension android-signing

5
推荐指数
0
解决办法
283
查看次数

INSTALL_PARSE_FAILED_NO_CERTIFICATES:包 /data/app/vmdl2005941423.tmp/0_base-master 在 AndroidManifest.xml 条目中没有证书。

环境:Windows 10 64 位,Android Studio 3.2 Canary 15。

我在一个测试项目中添加了免费付费的风格,然后构建了签名的 APK。

运行发布版 APK 时出现以下错误 -

Installation failed with message Failed to finalize session : 
INSTALL_PARSE_FAILED_NO_CERTIFICATES: Package 
/data/app/vmdl2005941423.tmp/0_base-master has no certificates at entry 
AndroidManifest.xml.
It is possible that this issue is resolved by uninstalling an existing 
version of the apk if it is present, and then re-installing.
Run Code Online (Sandbox Code Playgroud)

我尝试使用 V1 和 V2 签名版本重新签署我的 APK,但在运行发布版本时仍然出现相同的错误。

在分析发布版 APK 后,AndroidManifest.xml 以红色显示 Manifest 标签的 xmlns:android :

    <manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
Run Code Online (Sandbox Code Playgroud)

当我将鼠标悬停在红色文本上时,它会显示“URI 未注册...”

我不知道这是什么意思...

这个错误的原因是什么?

android android-signing

5
推荐指数
1
解决办法
3079
查看次数

Android Studio 一直要求签名配置,尽管我已经有了发布版本的 APK

我在 build.gradle 中有:

android {
   signingConfigs {
        debug {
            storeFile file("debug.keystore")
        }

        release {
            try {
                storeFile file("mykey.keystore")
                storePassword "store_password"
                keyAlias "myapp"
                keyPassword "key_passowrd"
               )
            }
            catch (ignored) {
                throw new InvalidUserDataException("Something wrong")
            }
        }
    }

   buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            versionNameSuffix '-DEBUG'
        }
        release {
            debuggable false
            minifyEnabled true
            versionNameSuffix '-RELEASE'
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在构建变体中,我选择“发布”。然后,我在连接的设备上运行我的应用程序,但是,Android Studio 不断弹出对话框说:

在此处输入图片说明

但我确实有签名配置...

在构建输出中,我也没有看到 app-release.apk :

在此处输入图片说明

为什么我会收到错误消息?我的 Android Studio 版本是 3.0.1

android apk android-studio android-signing

4
推荐指数
1
解决办法
1281
查看次数

如何修复Android中未安装App的错误

我开发了android应用程序,当从此应用程序(带有Generate Signed APK)创建APk 并在其他设备上安装了该apk时未安装,并在手机上显示了此错误:未安装应用程序

我该如何解决?

android android-signing

2
推荐指数
2
解决办法
9706
查看次数

测试版本基于android构建而无需签名

我正在尝试对android / JNI进行一些性能分析。

如何生成用于测试的发行版本?

我知道这是有可能的,因为我已经成功生成了一个二进制文件并执行了它,而没有通过Android.mk文件进行任何签名,但是我正尝试移至android studio,并且它不会让我生成测试构建。在关键字段中输入垃圾似乎无效

这只是一个测试项目,目的是验证我能否获得所需的性能。它永远不会分发,也不会在我办公桌上的任何设备上运行。

我可以完全关闭所有代码验证功能吗?我现在正在进行验证,并且该项目的最终用途是非互联网连接的设备,该设备被视为黑盒设备。

android signing android-studio android-gradle-plugin android-signing

2
推荐指数
1
解决办法
2074
查看次数