2010-04-21 27 views
3

要在iPhone中執行我的應用程序,首先我需要將配置文件添加到我的iPhone中。好。但我不明白在資源下在xCode中的iPhone應用程序中添加entitlements.plist的原因。iPhone + Provisioning Profile + app-info.plist + entitlements.plist = iPhoneApp?怎麼樣 ? entitlemets.plist到底做了什麼?

  • 那entitlements.plist文件實際上做了什麼?
  • 爲什麼.plist文件只有一個布爾值? (get-task-allow)
  • 我們不能將該布爾變量添加到application-info.plist中嗎?

我的意思是,我找不到在單獨的plist文件中存儲單個布爾變量的原因。相反,application-info.plist已經包含許多許多應用程序設置。我們不能只將這個布爾變量添加到application-info.plist中。

好的,任何方式。我知道 - 這是不可能的。因爲我們必須遵循 - 蘋果所說的。 但是,後面的所有這些在這裏的主要目的是

  • 「什麼是entitlements.plist的基本需要?」或
  • 「entitlements.plist的功能是什麼?」
  • 「如何調配輪廓,entitlements.plist,應用程序的info.plist & iPhone應用程序編譯iPhone上的所有一起&予以覈實&執行它在iPhone上?」

回答

3

應享權利實際上是的iPhoneOS的安全措施。引自iPhone Development Guide

權利。這些文件定義了可讓您的應用程序訪問iPhone OS功能(例如推送通知)和安全數據(如用戶的鑰匙串)的屬性。

在公開場合,你可以使用的唯一授權關鍵是get-task-allow,最終使ptrace() function用於應用程序,從而使調試。

但是有很多私人使用的權利,例如,

  • task_for_pid-allow,以允許控制其它進程(通過task_for_pid()功能)
  • run-unsigned-code,以允許在沒有簽名從運行此應用程序的代碼。
  • com.apple.springboard.launchapplicationscom.apple.springboard.wipedevice

plist中附會和旁邊的應用程序的二進制簽署 - 不同的Info.plist未簽名。如果信任鏈沒有被破壞,那麼這將成爲某些(危險)行爲的權利。

+0

run-unsigned-code,com.apple.springboard.launchapplications,task_for_pid-allow - 很好。你是怎麼知道這件事的? – 2010-04-21 06:32:29

+0

@sagar:逆向工程。(當然,如果你將其中的任何一個包含在AppStore的權限中,它將被拒絕。) – kennytm 2010-04-21 06:47:46

+0

什麼樣的逆向工程?我很感興趣。另外,Apple對提交的應用程序的逆向能力有多深?他們真的檢查這些東西嗎?我看到最近提交的一個遊戲,因爲應用程序包中缺少紋理文件而在啓動時崩潰。他們在App Store缺少一些明顯的檢查。 – Moshe 2010-05-17 03:33:47