Para TFS 2013 (y las antiguas configuraciones de compilación XAML), ¿cómo se genera el archivo APK para un proyecto de Android? Sigo construyendo el proyecto pero obtengo este error en la carpeta de registro, incluso si construyo la configuración "Release"

1> C: \ Archivos de programa (x86) \ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets (618,5): advertencia: la propiedad OutputPath no está configurada para el proyecto 'Project.Android.csproj'. Verifique para asegurarse de haber especificado una combinación válida de Configuración y Plataforma para este proyecto. Configuración = 'Lanzamiento' Plataforma = 'Plataformas mixtas'. Es posible que vea este mensaje porque está intentando crear un proyecto sin un archivo de solución y ha especificado una Configuración o Plataforma no predeterminada que no existe para este proyecto.

Y no existe nada en la carpeta. Seguí los pasos en Xamarin Docs pero parece que no se aplica a TFS2013: https://developer.xamarin.com/guides / multiplataforma / ci / tfs_walkthrough / add-build-definition /

0
Mahdi Alirezaie 7 dic. 2016 a las 00:36

1 respuesta

La mejor respuesta

La interfaz de usuario para TFS2013 es bastante similar al configurar la definición de compilación. Debe proporcionar algunos argumentos adicionales a MSBuild bajo el subtítulo "5. Avanzado":

MSBuild Arguments in Advanced Section

Obtiene el error "OutputPath" porque no ha especificado la ruta de salida para la compilación. Ahora, para el APK, al compilar desde la línea de comandos, debe proporcionar un parámetro adicional: "/ t: PackageForAndroid"

Tienes que combinar esto con los otros argumentos de MSBuild para algo como esto:

/p:AndroidSdkDirectory=c:\android-sdk /p:Configuration=Release
/p:Platform="AnyCPU" /p:OutputPath="bin/Release" /t:PackageForAndroid

¡Tu compilación debería tener éxito, siempre que no tengas ningún otro error! Aquí hay un script de PowerShell de ejemplo de nuestros foros de Xamarin (alrededor de 2013) que también incluye la firma y la alineación zip:

# First clean the Release target.
msbuild.exe HelloWorld.csproj /p:Configuration=Release /t:Clean

# Now build the project, using the Release target.
msbuild.exe HelloWorld.csproj /p:Configuration=Release /t:PackageForAndroid /p:Platform="AnyCPU" /p:OutputPath="bin/Release"

# At this point there is only the unsigned APK - sign it.
# The script will pause here as jarsigner prompts for the password.
# It is possible to provide they keystore password for jarsigner.exe by adding an extra command line parameter -storepass, for example
#    -storepass <MY_SECRET_PASSWORD>
# If this script is to be checked in to source code control then it is not recommended to include the password as part of this script.

& 'C:\Program Files\Java\jdk1.8.x.x\bin\jarsigner.exe' -verbose -sigalg MD5withRSA -digestalg SHA1  
-keystore ./xample.keystore -signedjar
./bin/Release/helloworld-signed.apk
./bin/Release/helloworld.apk publishingdoc

# Now zipalign it.  The -v parameter tells zipalign to verify the APK afterwards.

& 'C:\Program Files\Android\android-sdk\tools\zipalign.exe' -f -v 4
./bin/Release/helloworld.apk ./newAPK.apk

Para la firma y alineación de zip, puede consultar el documentos de Xamarin.Android sobre este asunto.

0
Mahdi Alirezaie 7 dic. 2016 a las 01:11