Estou escrevendo um aplicativo para iPhone. Já foi publicado, mas eu gostaria de adicionar um recurso em que o número da versão é exibido.
Prefiro não ter que fazer isso manualmente com cada versão lançada ...
Existe uma maneira no objetivo-C de descobrir qual é a versão do meu aplicativo?
Respostas:
Como descrevo aqui , uso um script para reescrever um arquivo de cabeçalho com o meu número de revisão atual do Subversion. Esse número de revisão é armazenado na constante kRevisionNumber. Posso acessar o número da versão e da revisão usando algo semelhante ao seguinte:
que criará uma sequência do formato "Versão 1.0 (51)".
fonte
CFBundleShortVersionString
que você normalmente deseja para 'version' eCFBundleVersion
para o número da versão .[NSString stringWithFormat:@"Version: %@ (%@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"], [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]]
Com base na resposta de Brad Larson, se você tiver informações de versão principais e secundárias armazenadas no repositório de informações (como eu fiz em um projeto específico), isso funcionou bem para mim:
Agora, a atualização manual de uma versão menor pode ser uma chatice, portanto, o ideal é usar um truque de número de revisão do repositório de origem. Se você não o vinculou (como eu não fiz), o snippet acima pode ser útil. Ele também pega o nome de exibição do aplicativo.
fonte
Versão Swift para ambos separadamente:
Swift 3
Swift 2
Está incluído neste repositório, confira:
https://github.com/goktugyil/EZSwiftExtensions
fonte
Foi isso que fiz na minha inscrição
Espero que esta resposta simples ajude alguém ...
fonte
Você pode especificar a
CFBundleShortVersionString
sequência em seu plist.info e ler isso programaticamente usando a API fornecida .fonte
Há duas coisas - versão de compilação e versão do aplicativo.
Para obter a versão do aplicativo:
Para obter a versão Build:
fonte
objectForInfoDictionaryKey:
vez deinfoDictionary] objectForKey:
porque o primeiro retorna o valor localizado (se houver). Provavelmente não vai fazer a diferença aqui embora;)fonte
Uma maneira sucinta de obter uma string de versão no formato XYZ é:
Ou, apenas por XY:
Ambos os trechos retornam strings que você atribuiria à propriedade de texto do objeto Label, por exemplo
fonte
Você pode tentar usar o dicionário como: -
fonte
Leia o arquivo info.plist do seu aplicativo e obtenha o valor da chave CFBundleShortVersionString. A leitura de info.plist fornecerá um objeto NSDictionary
fonte
Você pode usar o infoDictionary que obtém os detalhes da versão em info.plist do seu aplicativo. Esse código funciona para o swift 3. Basta chamar esse método e exibir a versão em qualquer elemento preferido da interface do usuário.
fonte
Swift 5:
Há duas coisas - versão do aplicativo e versão do build
Para obter a versão do aplicativo:
Para obter a versão Build:
Graças
@Brad Larson♦
muito afonte
Se você precisar de uma combinação de versão e número de compilação , aqui está uma pequena maneira de usar o Swift 3 :
Adicione um
as! String
ao final da linhaappVersion
oubuildNum
para obter apenas essa parte como umString
objeto. Não há necessidade disso, se você estiver procurando o máximoversionInfo
.Eu espero que isso ajude!
fonte
Com base em @rajat chauhan, resposta sem elenco forçado a
String
.fonte
É uma boa coisa para lidar com um sistema de controle de revisão. Dessa forma, quando você recebe um relatório de bug de um usuário, pode verificar essa revisão de código e (espero) reproduzir o bug executando exatamente o mesmo código que o usuário.
A idéia é que toda vez que você fizer uma compilação, você executará um script que obtém o número de revisão atual do seu código e atualiza um arquivo dentro do seu projeto (geralmente com alguma forma de substituição de token). Em seguida, você pode escrever uma rotina de tratamento de erros que sempre inclua o número da revisão na saída do erro ou exibi-lo em uma página "Sobre".
fonte
Você pode tentar este método:
fonte