Search Issue Tracker

By Design

Unknown (hidden) 2020.3.X, 2021.3.X, 2022.1.X, 2022.2.X, 2023.1.X

Votes

0

Found in

2020.3.39f1

2021.3.9f1

2022.1.16f1

2022.2.0b7

2023.1.0a9

Issue ID

UUM-15001

Regression

No

Android apk is unsigned when built with Minimum API Level 24 or higher

--

-

Reproduction steps:

# Open the attached project "BuildJenkins.zip"
# Go to Player Settings, and under the Publishing Settings add:

* Keystore pass: 123456
* Alias name: user
* Alias pass: 123456

3. Under the Other Settings in Player Settings make sure that the Minimum API Level is set to API level 24 or higher

4. Open Build Settings, select the Android platform, and build

5. Check the built apk, with the following cmd:

* jarsigner -verify -certs TestAndroid.apk

Expected result: Apk is signed
Actual result: Apk is unsigned

Reproducible with: 2020.3.39f1, 2021.3.9f1, 2022.1.16f1, 2022.2.0b7, 2023.1.0a9

Reproduced on: Windows 10 Pro 21H2

Notes:

* Optionally you can use this cmd command to check the apk's signature: keytool -list -printcert -jarfile TestAndroid.apk
* APK not signed if PlayerSettings.Android.minSdkVersion ("Minimum API Level" value in Unity editor's Player Settings) is set to 24 or a higher value
* The same issue is described here: [https://forum.unity.com/threads/unity-2020-1-10-does-not-seem-to-sign-the-apk-file.992461/|https://forum.unity.com/threads/unity-2020-1-10-does-not-seem-to-sign-the-apk-file.992461/]
* Refer to "SignatureEnabler.cs" for possible fix or an overcome

  1. Resolution Note:

    apksigner should be used to verify apk signatures instead of jarsigner. jarsigner does not produce APK Signature Scheme v2 signatures introduced in Android 7.0 (Nougat), whereas apksigner does.

    `apksigner verify --print-certs app.apk `

    https://developer.android.com/studio/command-line/apksigner

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.