Как изменить права приложений 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 право.

неважно здесь вы положили этот файл. Ключ:

  1. вам нужно будет изменить Xcode в , как показано здесь. CODE_SIGNING_REQUIRED должно быть установлено в NO.
  2. не код подписать приложение в Xcode. В Параметры Построения, убедитесь, что идентификатор знака кода установлен в не кодовый знак.
  3. после того как вы построить приложения устройство iOS (не симулятор!), затем перейти в каталог на вашем Mac, где находятся выходные файлы. Для приложения с именем HelloWorld, вы ищете HelloWorld.app папка. Он может отличаться в зависимости от вашей конфигурации, поэтому я не буду пытаться сказать вам, где это. Если есть сомнения, используйте командную строку .
  4. скачать ldid встроенные от в этом месте или источник тут.
  5. скопировать права.xml-файл в том же каталоге, где HelloWorld.app есть. (Примечание: Вы не есть чтобы он был здесь ... если вы положили его где-то еще, просто отрегулируйте командная строка я покажу вам ниже).
  6. перейти в каталог, где ваши права.XML-файл.
  7. поддельный код-подпишите этой командой:
$ldid -Sentitlements.xml HelloWorld.app/HelloWorld

после этого момента вам нужно будет перенести весь HelloWorld.папка app для установки приложения на устройстве. Есть много способов сделать это, и похоже, что у вас уже есть способ.

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

Примечание: я не указываю, является ли это право правильным правом использовать для BKSDisplayServicesSetScreenBlanked() вызов на iOS 6. Я не проверял это. Я знаю, что это право работает, чтобы позволить вам использовать SBDimScreen() на более низких версиях iOS. Но, этот ответ-просто описание как чтобы добавить этот вид права для джейлбрейка приложения.


права устанавливаются либо в файле проекта Xcode, либо в файле прав, который выбирает проект Xcode.

посмотрите в настройках проекта в разделе "сводка" или "этапы сборки" для настройки или имени файла прав