2014-01-15 2 views
2

Я хотел бы использовать частный/скрытый метод iOS, например clearIdleTimer от класса SpringBoard (example here). Как мне это сделать? Много информации ссылается на более старые версии iOS.Как использовать API частной системы?

Это только для экспериментов. Я признаю, что частные API не одобрены в App Store. Кроме того, мое устройство iOS зарегистрировано для разработки, но не jailbroken.

Редактировать: Я нашел эти iOS-Runtime-Headers, но образцы не работают для меня.

+1

Google для любой документации, вы можете, но в целом вы должны сделать * много * экспериментировать ... –

+0

Кроме того, это хорошо, чтобы указать * которая * iOS-версия, на которую вы нацеливаетесь, если найденные документы слишком стары для вас. iOS 7? iOS 6+? – Nate

ответ

4

Не все частные API-интерфейсы одинаковы.

Некоторые из них вы можете использовать в любом приложении ... вы их просто не получите одобрено для App Store.

Некоторые из них вы можете использовать, но только в том случае, если ваше приложение работает с привилегиями root, для чего требуется телефон с джейлбрейком (plus other steps).

Некоторые из них вы можете использовать, но вам нужно grant your app an entitlement, что, как мне кажется, также требует взломанный телефон.

В случае этого API:

@interface SpringBoard <UIApplicationDelegate, SBWiFiManagerDelegate> 
{ 
} 
- (void)clearIdleTimer; 

Вы пытаетесь напрямую вызвать метод в трамплине приложения. Обычно вы не можете напрямую ссылаться на другие методы приложений.

Один способ вы жестяная банка сделайте это для использования Mobile Substrate (now called Cydia Substrate). Это мощная платформа для ввода кода, которая позволит вам подключиться к приложению SpringBoard и использовать clearIdleTimer. Но, используя подложку Mobile/Cydia, требуется джейлбрейк вашего телефона.

Некоторые функции типа SpringBoard предназначены для вызова другими приложениями, а те живут в SpringBoardServices, что отличается от приложения SpringBoard. Вы можете попробовать искать SpringBoardServices для эквивалентной функциональности. Эти API являются частными, но может не требует джейлбрейка (я не могу вспомнить ... мой телефон взломан, поэтому мне не нужно беспокоиться об этом).

Не ответ, который вы хотели, я подозреваю :(

+0

Не тот ответ, который мне нужен, но информативный. Знаете ли вы список частных, но не root-API? – user924037

+0

Нет такого списка, нет – Nate

+1

@ user924037, вы должны помнить одно простое правило - без джейлбрейка вы можете получить доступ только к частным API-интерфейсам из общедоступных и частных фреймворков, то есть к тому, что вы действительно можете связать с вашим приложением. API-интерфейсы, определенные в различных приложениях, таких как SpringBoard или MobilePhone не могут быть доступны без использования что-то вроде мобильного субстрата и, следовательно, джейлбрейка. Таким образом, вы можете ввести список API-интерфейсов, которые вы должны проверить. Это не значит, что вы можете использовать все, что вы найдете в рамках. Просто вы можете назвать эти API и проверить, работают ли они. – creker

Смежные вопросы