2013-02-14 76 views
11

我需要运行下面的代码来关闭我的iphone屏幕。如何更改我的iOS应用程序的权利?

在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> 

即使采用上述方法,我在哪里可以把上述文件的权利?

回答

16

对于越狱应用程序/授权,你需要做这样的事情。首先,创建一个名为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的SDKSettings.plist文件as shown hereCODE_SIGNING_REQUIRED应设置为NO
  2. 不要在Xcode中对应用程序进行代码签名。在构建设置,请确保代码符号标识设置为不代码标记
  3. 之后您然后构建您的应用程序的iOS设备(不是模拟器!),然后转到您的Mac上的输出文件所在的目录。对于名为HelloWorld的应用,您正在寻找HelloWorld.app文件夹。它可以根据您的配置而有所不同,所以我不打算试图告诉你它在哪里。如果有疑问,请使用命令行find命令。
  4. this locationsource from here下载ldid预建。
  5. 将entitlements.xml文件复制到与HelloWorld.app相同的目录中。 (注意:你不需要这里有...如果你把它放在别的地方,只需调整下面给出的命令行)。
  6. 将目录切换到您的entitlements.xml文件所在的目录。
  7. Fake code-sign with this command
$ldid -Sentitlements.xml HelloWorld.app/HelloWorld 

在这之后,你将需要传输整个文件夹HelloWorld.app到您的设备上安装应用程序。有很多方法可以做到这一点,听起来你已经有了一个方法。

我有一个脚本的整个过程设置,使其更容易。

注:我不声明这项权利是否是用于在iOS 6的BKSDisplayServicesSetScreenBlanked()呼叫我没有测试正确的权利。我知道这个权利适用于允许您在较低的iOS版本上使用SBDimScreen()。但是,这个答案只是对的描述,如何为越狱应用添加这种权利。

+0

请问我可以得到您的Skype帐号吗?所以我可以给你发电子邮件,下一次我有越狱类型的问题 – zzzzz 2013-02-15 14:00:17

+0

好的Nate谢谢:) – zzzzz 2013-02-18 05:32:45

+0

我不能使用ldid命令对它进行签名command.it说-bash:-Sentitlements.xml:找不到命令 – zzzzz 2013-02-18 07:57:06

-1

权利是在Xcode项目文件中设置的,或者是在Xcode项目选择的授权文件中设置的。

查找在“摘要”或“构建阶段”的设置或者权利名称的项目设置文件

+2

(-1)这个答案是错误的,或可悲的不完整。这种*正常*添加权利的过程不适用于为**越狱**应用程序添加这种权利。 – Nate 2013-02-14 22:32:18

+1

我可以确认它不适用于越狱应用程序。 (iOS 7.0.4) – 0x8BADF00D 2014-01-13 22:51:55

相关问题