Obter o identificador de pacote programaticamente em Swift?

92

Como posso obter o ID do pacote no Swift?

Versão Objective-C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Do utilizador
fonte

Respostas:

205

Experimente isto:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier
Sebastian
fonte
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?

fonte
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

Aks
fonte
Ei, verifique se há swift3, remova sua verificação negativa.
Aks,