2013-02-14 75 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

相關問題