我需要运行下面的代码以关闭我的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上运行。 我不知道如何设置这些权利。 我见过几个方面来设置的权利,但他们都非常混乱给我,赞一个。
是的,你确实需要代码签名的权利。 但是,没有,它没有要与越狱手机苹果证书。 您可以假冒的代码标志,通过下载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>
即使上面的方法,我在哪里可以把上述文件的权利?
对于越狱应用程序/权利 ,你需要做这样的事情。 首先,创建一个文件中命名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的
SDKSettings.plist
文件, 如下图所示 。 CODE_SIGNING_REQUIRED
应设置为NO
。 - 不要代码签名Xcode中的应用。 在生成设置 ,确保代码标志标识设置为不执行代码签名 。
- 然后你建立你的iOS设备的应用程序之后(不是模拟器!),然后去到输出文件位于Mac上的目录。 对于命名的应用程序
HelloWorld
,你要寻找的HelloWorld.app
文件夹。 它可以根据您的配置不同,所以我不会打扰试图告诉你,那是。 如果有疑问,可以使用命令行find
命令。 - 下载
ldid
预建的这个位置 ,或者从这里源 。 - 该entitlements.xml文件复制到同一目录中,其中
HelloWorld.app
是。 (注意:你不必在这里有它...如果你把它放在别的地方,只是调整的命令行我告诉你下面)。 - 更改目录到您的entitlements.xml文件所在的目录。
- 假代码标志使用此命令 :
$ldid -Sentitlements.xml HelloWorld.app/HelloWorld
在这之后,你将需要传输整个文件夹HelloWorld.app到您的设备上安装应用程序。 有很多方法可以做到这一点,这听起来像你已经有办法。
我有这整个过程中建立一个脚本,使它更容易。
注:我不是这个陈述的权利是否是使用了正确的权利BKSDisplayServicesSetScreenBlanked()
在iOS 6呼叫我没有测试过这一点。 我不知道,这个权利致力于让您使用SBDimScreen()
较低的iOS版本。 但是,这个答案只是一个如何添加这种权利的一个越狱的应用说明。
该权利被用在Xcode项目文件中设置或设置在权利文件的Xcode项目选择。
看在“摘要”项目设置或“构建阶段”的设置或权利文件的名称