Associar bibliotecas swift do iOS
Importante
No momento, estamos investigando o uso de associação personalizada na plataforma Xamarin. Faça esta pesquisa para informar os esforços de desenvolvimento futuros.
A plataforma iOS, juntamente com suas linguagens e ferramentas nativas, está em constante evolução e há muitas bibliotecas de terceiros que foram desenvolvidas usando as ofertas mais recentes. Maximizar a reutilização de código e componente é um dos principais objetivos do desenvolvimento multiplataforma. A capacidade de reutilizar componentes criados com Swift tornou-se cada vez mais importante para os desenvolvedores do Xamarin à medida que sua popularidade entre os desenvolvedores continua a crescer. Talvez você já esteja familiarizado com o processo de associação de bibliotecas regulares Objective-C . Documentação adicional agora está disponível descrevendo o processo de Associação de um Swift Framework, para que eles sejam consumíveis por um aplicativo Xamarin da mesma maneira. A finalidade deste documento é descrever uma abordagem de alto nível para criar uma Associação Swift para Xamarin.
Abordagem de alto nível
Com o Xamarin, você pode associar qualquer biblioteca nativa de terceiros para ser consumível por um aplicativo Xamarin. Swift é a nova linguagem e criar associação para bibliotecas criadas com essa linguagem requer algumas etapas e ferramentas adicionais. Essa abordagem envolve as quatro etapas a seguir:
- Criando a biblioteca nativa
- Preparando os metadados do Xamarin, que permitem que as ferramentas do Xamarin gerem classes C#
- Criando uma biblioteca de associação Xamarin usando a biblioteca nativa e os metadados
- Consumindo a biblioteca de associação do Xamarin em um aplicativo Xamarin
As seções a seguir descrevem essas etapas com detalhes adicionais.
Criar a biblioteca nativa
A primeira etapa é ter um Swift Framework nativo pronto com Objective-C o cabeçalho criado. Esse arquivo é um cabeçalho gerado automaticamente que expõe classes, métodos e campos Swift desejados, tornando-os acessíveis para c Objective-C # e, por fim, por meio de uma biblioteca de associação Xamarin. Esse arquivo está localizado na estrutura no seguinte caminho: <FrameworkName.framework>/Headers/<FrameworkName-Swift.h>. Se a interface exposta tiver todos os membros necessários, você poderá pular para a próxima etapa. Caso contrário, outras etapas serão necessárias para expor esses membros. A abordagem dependerá se você tiver acesso ao código-fonte da estrutura Swift:
- Se você tiver acesso ao código, poderá decorar os membros Swift necessários com o
@objc
atributo e aplicar algumas regras adicionais para permitir que as ferramentas de build do Xcode saibam que esses membros devem ser expostos ao Objective-C mundo e ao cabeçalho. - Se você não tiver o acesso ao código-fonte, precisará criar uma estrutura swift proxy, que encapsula a estrutura Swift original e define a interface pública exigida pelo aplicativo usando o
@objc
atributo .
Preparar os metadados do Xamarin
A segunda etapa é preparar interfaces de definição de API, que são usadas por um projeto de associação para gerar classes C#. Essas definições podem ser criadas manual ou automaticamente pela ferramenta Objective Sharpie e pelo arquivo de cabeçalho FrameworkName-Swift.h> gerado automaticamente.< Depois que os metadados forem gerados, eles deverão ser verificados e validados manualmente.
Criar a biblioteca de associação do Xamarin.iOS
A terceira etapa é criar um projeto especial – biblioteca de associação do Xamarin.iOS. Ele faz referência às estruturas e aos metadados preparados na etapa anterior, juntamente com quaisquer dependências adicionais das quais a respectiva estrutura depende. Ele também manipula a vinculação das estruturas nativas referenciadas com o aplicativo Xamarin.iOS que consome.
Consumir a biblioteca de associação do Xamarin
A quarta e última etapa é fazer referência à biblioteca de associação em um aplicativo Xamarin.iOS. É suficiente habilitar o uso da biblioteca nativa em aplicativos Xamarin.iOS direcionados ao iOS 12.2 e superior. Para esses aplicativos direcionados a uma versão inferior, algumas etapas adicionais são necessárias:
- Adicione dependências dylib Swift para suporte a runtime. A partir do iOS 12.2 e Swift 5.1, a linguagem tornou-se estável e compatível com a ABI (interface binária do aplicativo). É por isso que qualquer aplicativo direcionado a uma versão inferior do iOS precisa incluir dependências de dylibs Swift usadas pela estrutura. Use o pacote NuGet SwiftRuntimeSupport para incluir automaticamente as dependências dylib necessárias no pacote de aplicativos resultante.
- Adicione a pasta SwiftSupport com dylibs assinados, que é validado pela AppStore durante o processo de carregamento. O pacote deve ser assinado e distribuído para a conexão appStore usando ferramentas Xcode, caso contrário, ele será rejeitado automaticamente.
Passo a passo
A abordagem acima descreve as etapas de alto nível necessárias para criar uma Associação Swift para Xamarin. Há muitas etapas de nível inferior envolvidas e mais detalhes a serem considerados ao preparar essas associações na prática, incluindo a adaptação a alterações nas ferramentas e linguagens nativas. A intenção é ajudá-lo a obter uma compreensão mais profunda desse conceito e das etapas de alto nível envolvidas nesse processo. Para obter um guia passo a passo detalhado, consulte a documentação passo a passo da associação do Xamarin Swift .
Links relacionados
- Xcode
- Visual Studio para Mac
- Objective Sharpie
- Verificação de metadados sharpie
- Estrutura de associação Objective-C
- SDK do Gigya iOS (estrutura Swift)
- Estabilidade da ABI swift 5.1
- SwiftRuntimeSupport NuGet
- Automação de UITest do Xamarin
- Configuração do UITest do Xamarin.iOS
- Nuvem de Teste do AppCenter
- Repositório de projeto de exemplo