es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enlace de Xamarin – La aplicación se bloquea a menos que el enlace esté configurado en “No enlazar”, pero el archivo IPA es demasiado grande para la App Store.

Nuestra aplicación Xamarin se estrellará a menos que el enlazador esté configurado como “No enlazar”, sin embargo, esto genera un archivo que es demasiado grande para los límites de la App Store/TestFlight. Utilizamos el paquete NuGet de Microsoft.Azure.cosmos y parece que el enlazador lo está eliminando en la compilación cuando se selecciona “Enlazar solo los SDK”. ¿Cómo puedo decirle al enlazador que no lo elimine ya que no puedo editar la biblioteca de terceros en sí misma? Todos los elementos que he encontrado para preservar el comportamiento de enlace parecen implicar agregar código a la propia biblioteca, lo cual no es una opción aquí.

¡Gracias!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para indicarle al vinculador que no elimine el paquete NuGet de Microsoft.Azure.cosmos, puedes utilizar el archivo “LinkerPleaseInclude.cs” del vinculador. Este archivo te permite agregar código “falso” que referencia las bibliotecas que deseas preservar, evitando así que el vinculador las elimine durante el tiempo de compilación.

    Para utilizar este enfoque, crea un nuevo archivo llamado “LinkerPleaseInclude.cs” en tu proyecto y agrega el siguiente código:

    public class LinkerPleaseInclude
    {
       public void Include(Microsoft.Azure.cosmos.Document doc)
       {
          // Incluye este método para que el vinculador no elimine la biblioteca de Microsoft.Azure.cosmos cuando se selecciona "Linkar solo SDK".
          // Este método nunca se llamará, pero es necesario para convencer al vinculador de que incluya la biblioteca.
       }
    }
    

    Este código “falso” engaña al vinculador haciéndole pensar que se está utilizando la biblioteca Microsoft.Azure.cosmos en el proyecto, preservándola así durante el tiempo de compilación.

    Por último, asegúrate de que el archivo “LinkerPleaseInclude.cs” esté incluido en la configuración de compilación de tu proyecto. Este enfoque debería permitirte preservar el paquete NuGet de Microsoft.Azure.cosmos durante el tiempo de compilación sin tener que modificar la biblioteca de terceros en sí misma.

Comments are closed.