Как изменить права приложений iOS?
мне нужно запустить следующий код, чтобы выключить экран iphone .
на iOS6:
void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked");
и затем использовать:
BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim
Он не работает. Кто-то сказал мне, что мне нужно com.apple.backboard.client
права на это для работы на моем iphone. Я не знаю, как установить эти права. Я видел несколько способов установить права, но они очень запутывают меня, как этот.
да, вам нужно подписать код прав. Но нет, это не должны быть с сертификатом Apple на взломанных телефонов. Вы можете поддельный знак кода, загрузив исполняемый файл ldid и выполнив
cd MyAppName.app ldid -Sentitlements.xml MyAppName
предполагая, что ваше приложение называется MyAppName и ты прав файл entitlements.XML. Я считаю, что этот файл прав будет работайте на вас, если вы подделали код-подписали его с ldid.
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">
<dict>
<key>com.apple.backboard.client</key>
<true/>
</dict>
</plist>
даже с вышеуказанным методом, где я могу разместить файл вышеуказанных прав?
2 ответов
для джейлбрейка app / право, вам нужно сделать что-то подобное. Сначала создайте файл с именем entitlements.xml
(или как угодно):
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.backboard.client</key>
<true/>
</dict>
</plist>
вы можете добавить больше пособия, если вам нужно. Этот пример файла просто предоставляет приложение com.apple.backboard.client
право.
неважно здесь вы положили этот файл. Ключ:
- вам нужно будет изменить Xcode в , как показано здесь.
CODE_SIGNING_REQUIRED
должно быть установлено вNO
. - не код подписать приложение в Xcode. В Параметры Построения, убедитесь, что идентификатор знака кода установлен в не кодовый знак.
- после того как вы построить приложения устройство iOS (не симулятор!), затем перейти в каталог на вашем Mac, где находятся выходные файлы. Для приложения с именем
HelloWorld
, вы ищетеHelloWorld.app
папка. Он может отличаться в зависимости от вашей конфигурации, поэтому я не буду пытаться сказать вам, где это. Если есть сомнения, используйте командную строку . - скачать
ldid
встроенные от в этом месте или источник тут. - скопировать права.xml-файл в том же каталоге, где
HelloWorld.app
есть. (Примечание: Вы не есть чтобы он был здесь ... если вы положили его где-то еще, просто отрегулируйте командная строка я покажу вам ниже). - перейти в каталог, где ваши права.XML-файл.
- поддельный код-подпишите этой командой:
$ldid -Sentitlements.xml HelloWorld.app/HelloWorld
после этого момента вам нужно будет перенести весь HelloWorld.папка app для установки приложения на устройстве. Есть много способов сделать это, и похоже, что у вас уже есть способ.
у меня есть вся эта настройка процесса со скриптом, чтобы сделать это облегчающий.
Примечание: я не указываю, является ли это право правильным правом использовать для BKSDisplayServicesSetScreenBlanked()
вызов на iOS 6. Я не проверял это. Я знаю, что это право работает, чтобы позволить вам использовать SBDimScreen()
на более низких версиях iOS. Но, этот ответ-просто описание как чтобы добавить этот вид права для джейлбрейка приложения.
права устанавливаются либо в файле проекта Xcode, либо в файле прав, который выбирает проект Xcode.
посмотрите в настройках проекта в разделе "сводка" или "этапы сборки" для настройки или имени файла прав