Попытка использовать библиотеки cydia: NSTask на взломанном iphone вылетает с ошибкой сегментации: 11

Я хочу запустить dpkg (или любые другие бинарные файлы библиотеки из cydia в каталогах /bin или /usr/bin) из приложения с графическим интерфейсом со значком, например mobileterminal, ifile, myfile, cydia, alertscript и многие другие. Как они получают доступ к библиотекам? Этот код работает, и стандартный вывод процесса печатается в nslog, но затем он сразу же вылетает с ошибкой сегментации: 11. это в моей функции viewdidload. В СИМУЛЯТОРЕ ЭТОГО НЕ ПРОИСХОДИТ, только в моем iPhone 4. странно. пробовали работать как с мобильными, так и с root-правами. приложение находится в папке /Applications. Вот мой код.

РЕДАКТИРОВАТЬ: я использую версию xcode для снежного барса и только что обновился до льва, но я думаю, что это, вероятно, не проблема? Мой iPhone ios5.0.1. опубликую, когда протестирую.

NSString * workingdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSTask * nstaskvar=[NSTask new];//note the NSTask.h file included! 
    NSPipe * outputPipe = [NSPipe pipe];

    [nstaskvar setLaunchPath:@"/bin/ls"];

    [nstaskvar setArguments:[NSArray arrayWithObjects:@"/usr",nil]];
    [nstaskvar setCurrentDirectoryPath:workingdir];

    [nstaskvar setStandardOutput:outputPipe];
    [nstaskvar setStandardInput:[NSPipe pipe]];

    [nstaskvar launch];

    NSString * outputstring = [[[NSString alloc] initWithData:[[outputPipe fileHandleForReading] readDataToEndOfFile] encoding:NSUTF8StringEncoding] autorelease];//readDataToEndOfFile reads until file is closed, which happens when process exits :) (i couldnt get waitUntilExit to work)
NSLog(@"%@", outputstring);



    [nstaskvar release];
    [outputPipe release];

person apple16    schedule 02.04.2012    source источник


Ответы (1)


Решил! После того, как я обновился до xcode 4.3.2, версии lion, симулятор вылетел с ошибкой exc_bad_access, поэтому я включил зомби и обнаружил, что последние две строки [nstaskvar release]; [outputPipe release]; вызвали проблему.

Я отключил их обоих, и они исчезли, и теперь они отлично работают на моем iphone: D.

person apple16    schedule 04.04.2012