私の拡張機能にログファイルを書き込んで、自分のアプリで読みたいと思います。この目的のために 、私は、共有グループを使用しています(そのためのアプリや拡張機能の両方が同じファイルから読み取ることができるだろう)アプリケーション拡張の共有コンテナ内のファイルが見つかりません
私は、次のコードを書いた:
拡張子:
let fileManager = NSFileManager.defaultManager()
let containerUrl = fileManager.containerURLForSecurityApplicationGroupIdentifier("group.MyCompany.MyProj")
let extensionLogDirectory = containerUrl?.path?.stringByAppendingString("AppExtensionLogs")
let logFileManager = DDLogFileManagerDefault(logsDirectory: extensionLogDirectory)
PacketTunnelProvider.fileLogger = DDFileLogger(logFileManager: logFileManager)
PacketTunnelProvider.fileLogger!.rollingFrequency = 60*60*12
PacketTunnelProvider.fileLogger!.logFileManager.maximumNumberOfLogFiles = 1
DDLog.addLogger(PacketTunnelProvider.fileLogger)
を
アプリケーション(単なるログファイルを読むために):
let fileManager = NSFileManager.defaultManager()
let containerUrl = fileManager.containerURLForSecurityApplicationGroupIdentifier("group.MyCompany.MyProj")
if let extensionLogDirectory = containerUrl?.path?.stringByAppendingString("AppExtensionLogs") {
do {
let directoryContents = try fileManager.contentsOfDirectoryAtPath(extensionLogDirectory)//always fails
for file in directoryContents {
let path = extensionLogDirectory.stringByAppendingString(file)
do {
let fileContents = try NSString(contentsOfFile: path, encoding: NSUTF8StringEncoding)
NSLog("file: \(fileContents)")
}
catch {/* error handling here */
}
}
}
catch {/* error handling here */
NSLog("nope!")
}
しかし、今何か - contentsOfDirectoryAtPathは常に「いいえそのようなファイル」で失敗するように、それはだが、思わエラー このコードで何が問題になっていますか?
をおそらく: 代わり
URLByAppendingPathComponent
を使用してURLを操作する必要がありますパスの区切り記号 "/"がありません:) –ありがとう!それはそれだった。それを回答として投稿し、正しいものとして受け入れる – Roee84