Obter o identificador de pacote programaticamente em Swift?


Respostas:


205

Experimente isto:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier

20
Você sabe por que bundleIdentifieré opcional? Em que casos pode ser nil?
Alexander - Reintegrar Monica em

Às vezes, não é sobre em quais casos ele pode ser nulo quando atinge o desenvolvimento de alto nível, mas sobre em quais casos pode ser nulo sob o capô.
Sethmr

2
@Alexander quando não é o pacote principal ou CFBundleIdentifierestá faltando
ArtFeel

5

É praticamente a mesma coisa no Swift, exceto que os nomes de classe e método foram encurtados:

let bundleIdentifier = Bundle.main.bundleIdentifier // return type is String?

4

Se você estiver tentando obtê-lo programaticamente, poderá usar a linha de código abaixo:

Objective-C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Atualizado para a versão mais recente do swift. Funcionará com aplicativos iOS e Mac.

Para mais informações, verifique aqui:

Apple Docs: https://developer.apple.com/documentation/foundation/bundle#//apple_ref/occ/instm/NSBundle/bundleIdentifier


Ei, verifique se há swift3, remova sua verificação negativa.
Aks,
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.