Pergunta

Estou trabalhando em uma estrutura iOS baseada no seguinte modelo: https://github.com/jverkoey/iOS-Framework

Agora preciso polir um pouco e configurar o sistema de controle de versão com o número de compilação/marketing apropriado.

Este projeto de framework possui 3 alvos, o 1º que gera uma biblioteca estática, um 2º que gera um pacote de recursos e um 3º alvo que é um alvo agregado para a biblioteca estática e o pacote de recursos.Portanto, meu primeiro problema é determinar em qual destino devo definir as configurações de versão de compilação (ou se devo configurar todos os destinos).

Minha segunda pergunta é quais são as configurações que devo definir e o que elas significam:

Versão atual do projeto => É a versão de construção ou a versão de marketing?Então, se eu lançar aplicativos com versões como:1.2.3.4, devo definir 4?ou 1.2.3?ou 1.2.3.4?

Nome do arquivo de origem do versionamento gerado => O nome do arquivo .c gerado que contém o número inteiro da compilação, eu acho?

Variáveis ​​de versionamento geradas => O que é isso?

Prefixo do nome de versão => Um prefixo para o nome da variável que contém o número da compilação

Sufixo do nome de versão => Um sufixo para o nome da variável que contém o número da compilação

Sistema de versionamento:Todo mundo usa o Apple Generic, então acho que é o único disponível

Nome de usuário de versionamento:O que é ?

Existem outras configurações como a "Versão do Framework" na seção "Embalagem" que sempre deve usar "A", eu acho, no iOS (já que na verdade são frameworks estáticos, a versão não importa)?E para as configurações "Versão de compatibilidade"/"Versão atual da biblioteca" da seção "Vinculação", devo configurá-las apenas no destino da biblioteca estática?ou são usados ​​​​pelo aplicativo que vincula a biblioteca?

Foi útil?

Solução

A menos que você esteja construindo uma estrutura comercial de código fechado, Eu realmente recomendaria usar CocoaPods.Ele cuidará de dependências, recursos, versionamento, atualização, instalação, etc.Todas grandes dores de cabeça à medida que sua biblioteca muda com o tempo.

Mesmo se você quiser distribuir apenas binários para código-fonte fechado, você pode construir os binários com CocoaPods e depois distribuí-los com um podspec diferente.Além disso, você evitará incorporar códigos de outras bibliotecas, o que é uma prática muito ruim, mas comum.

Quanto ao versionamento você pode verificar aqui.


Voltando a fazer a biblioteca estática...

A versão não é visível no App e seria apenas documentação, por isso acho que você deveria adicioná-la a todos os seus alvos.Se você realmente deseja detectar a versão da sua biblioteca em tempo de execução, você precisará criar um método de classe ou variável global como [MyLibrary version].

A documentação para essas chaves está incluída no Xcode ou você pode simplesmente selecionar uma e verificar o painel "Ajuda Rápida":

enter image description here

Outras dicas

A Apple possui uma documentação bastante extensa para construção e distribuição de frameworks.

O Guia de programação-quadro cobre a maior parte do terreno que você precisa.Se você quiser informações mais específicas sobre como as ferramentas do desenvolvedor usam as informações em seu projeto, consulte a página do manual para agvtool, a ferramenta que o Xcode usa com o sistema de controle de versão da Apple.

Você também deve estar interessado no Diretrizes de codificação para cacau, que também aborda algumas práticas recomendadas para estruturas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top