Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Pipeline Xamarin Android您上载的APK未与zip对齐。您需要在APK上运行zip align工具,然后再次上传_Android_Xamarin_Azure Devops_Google Play_Azure Pipelines - Fatal编程技术网

Azure Pipeline Xamarin Android您上载的APK未与zip对齐。您需要在APK上运行zip align工具,然后再次上传

Azure Pipeline Xamarin Android您上载的APK未与zip对齐。您需要在APK上运行zip align工具,然后再次上传,android,xamarin,azure-devops,google-play,azure-pipelines,Android,Xamarin,Azure Devops,Google Play,Azure Pipelines,我正在尝试使用AzureDevops管道为Xamarin Android应用程序建立一个构建管道 导致我头发变细变白的一个步骤是签名和Zipaligning 对于签名,我使用以下方法创建了自签名密钥: keytool-genkeypair-v-keystore keystore.keystore-alias keyAlias-keyalg RSA-keysize 2048-validity 10000 然后我将keystore.keystore添加到azureDevOps安全文件位置,并为所有管

我正在尝试使用AzureDevops管道为Xamarin Android应用程序建立一个构建管道

导致我头发变细变白的一个步骤是签名和Zipaligning

对于签名,我使用以下方法创建了自签名密钥:

keytool-genkeypair-v-keystore keystore.keystore-alias keyAlias-keyalg RSA-keysize 2048-validity 10000

然后我将
keystore.keystore
添加到azureDevOps安全文件位置,并为所有管道启用它

然后,我按照以下方式设置签名步骤:

task: AndroidSigning@3
inputs:
apkFiles: '**/*.apk'
apksign: true
apksignerKeystoreFile: 'keystore.keystore'
apksignerKeystorePassword: '12345678'
apksignerKeystoreAlias: 'keyAlias'
apksignerKeyPassword: '12345678'
apksignerArguments: '--verbose'
zipalign: true
管道运行良好,无错误,生成工件:

以下是签名步骤的部分日志:

启动:AndroidSigning
===========================================================================================>任务:Android签名说明:对Android进行签名和对齐
APK文件版本:3.181.0作者:微软公司
帮助:
=======================================================>/Users/runner/Library/Android/sdk/build tools/30.0.3/zipalign-v 4

/Users/runner/work/1/s/xxx.MobileApp/xxx.MobileApp.Android/obj/Release/Android/bin/com.xxx.xxx.MobileApp.apk.unaligned
/Users/runner/work/1/s/xxx.MobileApp/xxx.MobileApp.Android/obj/Release/Android/bin/com.xxx.xxx.MobileApp.apk
验证校准
/Users/runner/work/1/s/xxx.MobileApp/xxx.MobileApp.Android/obj/Release/Android/bin/com.xxx.xxx.MobileApp.apk
(4) …
49 AndroidManifest.xml(确定-压缩)

28095862 META-INF/proguard/androidx-annotations.pro(确定-压缩)
验证成功
/用户/runner/Library/Android/sdk/build tools/30.0.3/apksigner sign
--ks/Users/runner/work/_temp/keystore.keystore--ks密码:12345678--ks密钥别名keyAlias--key密码
通过:12345678——详细
/Users/runner/work/1/s/xxx.MobileApp/xxx.MobileApp.Android/obj/Release/Android/bin/com.xxx.xxx.MobileApp.apk
签名整理:AndroidSigning

但是,当我尝试将APK上传到play store以“创建内部测试版本”时

我得到一个错误:
您上载了一个未对齐的APK。您需要在APK上运行zip对齐工具,然后再次上传。

这让我把手举在空中,摇摇头


原因是像往常一样缺乏内在精神能力。我没有设置输出目录。将
apkFiles:'**/*.apk'
更改为
apkFiles:'$(outputDirectory)/*.apk'
后,一切正常

task: AndroidSigning@3
inputs:
apkFiles: '$(outputDirectory)/*.apk'
apksign: true
apksignerKeystoreFile: 'keystore.keystore'
apksignerKeystorePassword: '12345678'
apksignerKeystoreAlias: 'keyAlias'
apksignerKeyPassword: '12345678'
apksignerArguments: '--verbose'
zipalign: true

很高兴知道你找到了原因。请标出你的答案,这将使有相同问题的人更容易找到答案。@WalterQian MSFT完成,忘记做了。谢谢提醒。