Представление Apple App Store, кто-нибудь, кроме Apple, автоматизировал тестирование на использование непубличных API? - PullRequest
0 голосов
/ 22 мая 2011

Apple явно каким-то образом автоматизировал эту систему, я хотел бы получить доступ к версии системы, которую они используют.

За исключением этого, мне интересно знать, реализовывал ли кто-нибудь это самостоятельно.Иногда я работаю в команде, где менее опытные разработчики могут по незнанию использовать закрытый API или . Меня могут попросить использовать стороннюю библиотеку, которая без моего ведома использует API, который не является публичным..

Я знаю, что исполняемый файл приложения можно проверять на наличие имен методов.Я хотел бы сравнить их с базой данных известных непубличных методов или с общедоступными.В Objective-C / SQL часть процесса может выглядеть следующим образом:

for (NSString *selector in methodsArray) {
   NSArray *array = [DataSource arrayWithQueryString:[NSString stringWithFormat:(SELECT `selectors` FROM `publicAPI` WHERE `selector` = '%@'),selector]]; 
   BOOL public = ([array count] > 0);
   if (!public) 
      return NO;
}

Я предполагаю, что большая часть работы будет заключаться в том, как изолировать имена методов и сохранить их в базе данных таким образом, чтобы при проверкепротив них было бы наиболее эффективно.

Я мог бы создать версию этого сам, но если есть кто-то, кто уже сделал это, мне интересно знать об этом, и мне все равно, на каком языке это достигается.

Ответы [ 2 ]

1 голос
/ 22 мая 2011

вот этот, Сканер приложений http://www.chimpstudios.com/appscanner/

0 голосов
/ 22 мая 2011

Если вы вызываете API, который отсутствует в одном из общедоступных заголовков Apple, вы получите предупреждения компилятора, такие как «селектор не распознан». В редких случаях вы можете случайно использовать частные API.

Теперь можно подавить предупреждения компилятора, если вы сделаете для этого определенные шаги - например, создадите свой собственный интерфейс для объекта, содержащего объявления методов закрытого API. Если в вашей команде есть мошеннический разработчик или вы наследуете код, то подобное может застать вас врасплох.

Вы также должны быть осторожны, если используете среду тестирования, такую ​​как набор для тестирования GTM iPhone, которая использует частные вызовы API. Если он случайно будет скомпилирован в ваш представленный двоичный файл, вы потеряете его. Xcode 4 помогает снизить этот риск, потому что тестирование в новой IDE - это отдельное действие, а не отдельная цель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...