Как изменить права моих приложений для 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, и вы создали файл с правами authorlements.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 ответа
Для приложения / права на джейлбрейк вы должны сделать что-то вроде этого. Сначала создайте файл с именем 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's
SDKSettings.plist
файл, как показано здесь.CODE_SIGNING_REQUIRED
должен быть установлен вNO
, - Не используйте код подписи вашего приложения в Xcode. В настройках сборки убедитесь, что для идентификатора кода установлено значение " Не подписывать код".
- После того, как вы создадите свое приложение для устройства iOS (не для симулятора!), Перейдите в каталог на вашем Mac, где находятся выходные файлы. Для приложения с именем
HelloWorld
вы ищетеHelloWorld.app
папка. Это может отличаться в зависимости от вашей конфигурации, поэтому я не буду пытаться сказать вам, где это. Если сомневаетесь, используйте командную строкуfind
команда. - Скачать
ldid
предварительно построен из этого места, или как источник отсюда. - Скопируйте файл authorlements.xml в тот же каталог, где
HelloWorld.app
является. (Примечание: вам не нужно иметь его здесь... если вы поместите его в другое место, просто настройте командную строку, которую я покажу вам ниже). - Перейдите в каталог, в котором находится ваш файл authorlements.xml.
- Поддельный код-знак с этой командой:
$ldid -Sentitlements.xml HelloWorld.app/HelloWorld
После этого вам нужно будет перенести всю папку HelloWorld.app, чтобы установить приложение на ваше устройство. Есть много способов сделать это, и, похоже, у вас уже есть способ.
У меня есть весь процесс настройки со скриптом, чтобы сделать его проще.
Примечание: я не утверждаю, является ли это право правильным правом использования для BKSDisplayServicesSetScreenBlanked()
позвоните на iOS 6. Я не проверял это. Я знаю, что это право позволяет вам использовать SBDimScreen()
на более низких версиях iOS. Но этот ответ является лишь описанием того, как добавить такого рода права для приложения для джейлбрейка.
Права устанавливаются либо в файле проекта XCode, либо в файле прав, который выбирает проект XCode.
Посмотрите в настройках проекта в "Сводке" или "Этапы сборки" настройку или имя файла прав.