0

iPhoneでレコーダーアプリを開発しています。外部 USB マイクを使用してアプリをテストするには、マイクを接続できるように iPhone を Mac から取り外す必要があります。

私の問題は、iPhone が Mac に接続されなくなると、iPhone アプリをデバッグすることも、コンソール出力を表示することもできないことです。USB ケーブル以外のメディア (ネットワークや Bluetooth など) を介してデバッガを接続する方法はありますか?

iPhone をジェイルブレイクした後、ssh をインストールし、ssh を使用して iPhone に接続し、syslog を追跡できることを読みました。これは、電話を脱獄する必要がない場合にすぐに使用するソリューションです。アプリをテストしたいすべての電話をジェイルブレイクしたくありません。

ログ出力を表示するための標準的ではないが信頼できるソリューションも高く評価されます。たとえば、私は現在、iPhone で簡単に作成された HTTP サーバーを使用しており、Mac からブラウザまたは telnet を使用して iPhone に接続し、コンソール出力を表示しています。

4

4 に答える 4

2

リアルタイムのデバッグを求めていて、iPhone 4、4S またはそれ以前の iPad (30 ピン コネクタ) を所有している場合は、これが答えかもしれません。このアクセサリを使用すると、Mac (XCODE) + 外部アクセサリに接続できるはずです

http://www.cablejive.com/products/dockStubz.html

于 2014-01-08T16:21:17.337 に答える
2

アプリケーションでコンソール出力を直接表示するために使用できるライブラリDVFloatingWindowを作成しました。NSLog の代わりに DVLog を使用する必要があります。

DVLog(@"Some message %@", parameters);

また、ログごとに個別のタブを作成して、複数のログを表示することもできます。ボタンを押すだけですべてのログを電子メールで送信する機能があります。

于 2013-08-28T12:44:38.690 に答える
1

デバッグ ログをファイルに書き込むことができ、テスト後にそれらを見ることができます。

@interface LogFile : NSObject
+ (void)WriteLogWithString:(NSString *)log;

@end

そして、ここに実装ファイルがあります

@implementation LogFile


+ (NSString*)CurrentSystemTime {
    return [[NSDate date] description];
}

+(NSString*)getDocumentsPath
{
    NSString *path  = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    return path;
}

+ (NSString*)getLogFilePath
{
    NSString *loggingFilePath = nil;

    loggingFilePath = [[self getDocumentsPath] stringByAppendingPathComponent:@"/MYLogFile.txt"];
    return loggingFilePath;
}


+ (void)WriteLogWithString:(NSString *)log
{

        if(log != nil){

            NSString *locationFilePath = [self getLogFilePath];

           NSString *str = [NSString stringWithFormat:@"%@  %s [Line %d]: %@", [self CurrentSystemTime],__PRETTY_FUNCTION__,__LINE__,log];            
            FILE *fp = fopen([locationFilePath UTF8String], "a");

            fprintf(fp,"%s\n", [str UTF8String]);

            fclose(fp);
        }

}

@end

今、あなたはこのようにメソッドを呼び出す必要があります

 [LogFile WriteLogWithString:@"sachin thakur"];
于 2013-07-23T14:54:16.423 に答える