Вопрос по ios5, ios, iphone-privateapi – iOS Как использовать приватный API?

7

Я не хочу отправлять это приложение в AppStore. Я пытался много раз, но столкнулся с таким количеством проблем :(

Я использую class-dump, чтобы получить все заголовочные файлы UIKit.framework. В UIApplication.h, сгенерированном class-dump, я увидел метод, который хочу использовать ---- launchApplicationWithIdentifier.

Затем я помещаю UIApplication.h в свой проект и импортирую его. Скомпилируйте, я получил много переопределений перечислителя .... ошибка, потому что в UIKit.framework, который я использую предыдущий, есть еще один UIApplication.h. Но этот файл не имеет метода launchApplicationWithIdentifier.

Если я удаляю предыдущую UIKit.framework и импортирую папку, созданную class-dump. Затем он выглядит как каркас, но если я разверну его, он будет пустым.

Затем я хочу сделать все сгенерированные заголовочные файлы рамочным файлом и заменить предыдущую UIKit.framework. Но я не знаю как. Как мы видим, в каталоге системного фреймворка находится файл, имя которого совпадает с именем фреймворка и имеет «выполненный скрипт оболочки». значок. Как я могу сделать этот файл?

Я действительно запутался. Кто-то может мне помочь? Спасибо.

О боже, я просто добавлю ответ на ваш вопрос в другом вашем вопросе:stackoverflow.com/questions/11047176/… Oleg Trakhman

Ваш Ответ

1   ответ
8

Просто укажите приватные методы в интерфейсе категории над реализацией класса, где вы хотите его использовать, например:

@interface UIApplication (Private)

- (BOOL)launchApplicationWithIdentifier:(id)identifier suspended:(BOOL)suspended;

@end

Не импортируйте весь файл дампов классов и не связывайте его с исходной платформой UIKit.

Вы должны быть очень осторожны при использовании частного API. Эти методы могут быть изменены или удалены в будущих версиях iOS!

Проверьте, существует ли метод сrespondsToSelector: во время выполнения и будьте готовы к тому, что его не существует.

Я использовал секретную функцию MapKit в своем собственном приложении и знал, что частные методы существуют только в iOS 5. Поэтому мое приложение работает во всех версиях iOS, но эта функция доступна только в iOS 5 (Apple удалила или изменила его в iOS 6 бета 1).

Оно работает. Большое спасибо :-) Кроме того, я должен сделать мое приложение файлом deb, используя инструмент dpkg, а затем установить его. Только так мое приложение может запустить другое приложение. wyp

Похожие вопросы