2017-05-30 9 views
0

Dans une application macOS, j'utilise ce code pour créer un répertoire dans le dossier Application Support.Comment obtenir l'identifiant de l'application par programme dans Swift?

let directoryURL = appSupportURL.appendingPathComponent("com.myCompany.myApp").appendingPathComponent("Documents") 

Comment la chaîne com.myCompany.myApp obtenu à Swift programme?

J'ai vu cette question, mais je ne sais pas comment l'utiliser dans mes macOS app Swift: Access App Identifier Prefix programmatically

+1

Si vous bac à sable votre application, il s'agit d'un non-problème. Votre dossier de support d'application est à vous seul. – matt

Répondre

4
if let bundleIdentifier = Bundle.main.bundleIdentifier{ 
    appSupportURL.appendingPathComponent("\(bundleIdentifier)").appendingPathComponent("Documents") 
} 
+1

petite explication: La propriété bundleIdentifier est facultative, par conséquent vous devez déplier la valeur en toute sécurité et ensuite il ne vous sera demandé aucun point d'exclamation :) –

+2

Pourquoi votre explication ne figure-t-elle pas dans la réponse? Pourquoi le mettre dans un commentaire? – rmaddy

1

Il est assez simple d'obtenir l'application ID:

let bundleIdentifier = Bundle.main.bundleIdentifier 
    appSupportURL.appendingPathComponent("\(bundleIdentifier)").appendingPathComponent("Documents") 

A L'identificateur de regroupement est la chaîne affectée à la clé CFBundleIdentifier dans le fichier Info.plist du regroupement. Cette chaîne est généralement formatée à l'aide de la notation reverse-DNS afin d'éviter les conflits d'espace de noms avec les développeurs d'autres sociétés. Par exemple, un plug-in Finder d'Apple peut utiliser la chaîne com.apple.Finder.MyGetInfoPlugin comme identifiant de regroupement. Plutôt que de passer un pointeur vers un objet enroulant autour de code, les clients qui ont besoin d'une référence à un faisceau peut simplement utiliser l'identifiant de paquet pour le récupérer

Pour plus de détails & autres détails de l'opération, s'il vous plaît vérifier

https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/AccessingaBundlesContents/AccessingaBundlesContents.html