2017-07-20 6 views
1

私はシンプルな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シミュレータ環境でアプリケーションをテストしていた場合と同じような結果を得たいと思います。

私の質問はこれです。スタックトレースタイプのデバッグログをテキストファイルに出力して、アプリケーションがクラッシュする場所をよりよく知ることは可能ですか?

+1

ログを特定のパスに直接書き込むことができるXCGLoggerの使用をお勧めします。 https://github.com/DaveWoodCom/XCGLogger –

+1

私はあなたのアプリケーションをテストするために使用しているマシン上でXcodeを実行します。または、[fabric.io](https://fabric.io)のようなものを使用して、クラッシュクラッシュスティックスまたはその他のタイプのクラッシュスティックアドオンをインストールします。 – MwcsMac

+0

MwcsMac:しかし、マシンはXcodeを実行できない超安全な環境にあります。私はXCGLoggerのことをチェックしますが、それはトリックを行うかもしれないようです。ありがとう! – Jordan

答えて

1

私は実際には@ MwcsMacのソリューションに行きました。私はXcodeをネットワーク外のマシンにインストールし、それをネットワークに戻して、私がアプリを実行して必要なテストをすることができました。私はXcodeを更新することができませんが、本当に必要はありません。

上記のエラーログの解決方法は、問題を解決するために役立ちます。その後、Xcodeでアプリを開いて実行すると、詳細がわかります。みんな、ありがとう!

関連する問題