私はシンプルなMac OSのメニューバーアプリ(右上)を持っています。いくつかの基本的なサーバーコールを実行し、データを整理します。あまりにも長い説明のために、私は自分の開発マシンでコンパイルしてアーカイブしてから、アプリケーションをサーバーコンピュータ上で実行するように転送しているので、コンピュータでアプリケーションを直接ビルド/テストすることはできません。Mac OS Swift:クラッシュログをテキストファイルに書き込む
私はデバッグの目的で、タイムスタンプとともにテキストファイルに印刷文を保存する関数を用意しています。
let fileName = "errorLogs"
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")
var readString = ""
do {
// Read the file contents
readString = try String(contentsOf: fileURL)
} catch let error as NSError {
print("Failed reading from URL: \(fileURL), Error: " + error.localizedDescription)
}
let modifiedString = "\(readString)\n\(Date()): \(text)"
do {
// Write to the file
try modifiedString.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8)
} catch let error as NSError {
print("Failed writing to URL: \(fileURL), Error: " + error.localizedDescription)
}
ランタイムの問題ではうまくいきますが、アプリがすべてクラッシュする問題があります。私は、Xcodeシミュレータ環境でアプリケーションをテストしていた場合と同じような結果を得たいと思います。
私の質問はこれです。スタックトレースタイプのデバッグログをテキストファイルに出力して、アプリケーションがクラッシュする場所をよりよく知ることは可能ですか?
ログを特定のパスに直接書き込むことができるXCGLoggerの使用をお勧めします。 https://github.com/DaveWoodCom/XCGLogger –
私はあなたのアプリケーションをテストするために使用しているマシン上でXcodeを実行します。または、[fabric.io](https://fabric.io)のようなものを使用して、クラッシュクラッシュスティックスまたはその他のタイプのクラッシュスティックアドオンをインストールします。 – MwcsMac
MwcsMac:しかし、マシンはXcodeを実行できない超安全な環境にあります。私はXCGLoggerのことをチェックしますが、それはトリックを行うかもしれないようです。ありがとう! – Jordan