「何とかプライベートAPIの使用は何とか拒否される」という行に沿って何かを言おうとしている場合は、読むのをやめてください。
これはエンタープライズアプリ用です
iOS 5 では、現在のクラッシュログをクライアントの iPad からサーバーに送信しようとしています。彼らには管理ソフトウェアがありますが、そこからクラッシュログを取得する方法はありません。この例では役に立たないコンソール ログだけです。
を使用して /var/logs/CrashReporter の内容を読み取ろうとしました
NSError * error;
NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/var/mobile/Library/Logs/CrashReporter" error:&error];
しかし得る
Error Domain=NSCocoaErrorDomain Code=257 "The operation couldn’t be completed. (Cocoa error 257.)" UserInfo=0x197e80 {NSUserStringVariant=(
Folder
), NSFilePath=/var/mobile/Library/Logs/CrashReporter, NSUnderlyingError=0x198370 "The operation couldn’t be completed. Operation not permitted"}
私も試しNSFileManager contentsOfDirectoryAtURL:てみましたが、同じエラーが発生しました
サンドボックス外のファイルにアクセスするためのプライベート API を探しましたが、突き出ているものは何もありません。
デバイスから既存のクラッシュ ログを取得する別の方法はありますか? 既存のサード パーティ クラッシュ ロギング バンドルの 1 つを実装することを検討していますが、このクラッシュは簡単に再現できず、デバイスにも簡単にアクセスできないため、デバイスの現在のログにアクセスする必要があります。ユーザーは iTunes とも同期しないため、そこからログを取得できません。
少なくともジェイルブレイクされた環境では、iFile のようなアプリがそれを行うため、それが可能であることはわかっています。ジェイルブレイクされた環境では、上記のコードで非ジェイルブレイクされた環境と同じエラーが表示されます。
助言がありますか?