2017-05-30 3 views
0

macOSアプリケーションでは、このコードを使用してApplication Supportフォルダにディレクトリを作成しています。SwiftでプログラムIDを取得する方法は?

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

どのように文字列com.mycompany.myappとはスウィフトでプログラム入手できますか?

私はこの質問を見ましたが、私は私のMacOSのスウィフトのアプリでそれを使用するかどうかはわかりません:Access App Identifier Prefix programmatically

+1

アプリをサンドボックス化しても問題ありません。あなたのアプリケーションサポートフォルダはあなただけです。 – matt

答えて

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

少し説明:Property bundleIdentifierはオプションなので、値を安全にアンラップしてから、感嘆符を入力する必要はありません:) –

+2

答えにあなたの説明がないのはなぜですか?なぜそれをコメントに入れますか? – rmaddy

1

アプリのIDを取得するには非常に単純です:

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

A bundle identifierは、バンドルのInfo.plistファイル内のCFBundleIdentifierキーに割り当てられた文字列です。この文字列は、他社の開発者とのネームスペースの競合を避けるため、通常、逆DNS記法を使用して書式設定されています。たとえば、AppleのFinderプラグインはバンドルIDとしてcom.apple.Finder.MyGetInfoPluginという文字列を使用します。むしろあなたのコードの周りにバンドルオブジェクトへのポインタを渡すよりも、バンドルへの参照を必要とするクライアントは、単に詳細&他の操作の詳細については

にそれを取得するために、バンドル識別子を使用することができ、

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

をご確認ください。
関連する問題