【问题标题】:iPhone + Provisioning Profile + app-info.plist + entitlements.plist = iPhoneApp ? How ? What exactly does entitlemets.plist do?iPhone + 配置文件 + app-info.plist + entitlements.plist = iPhoneApp ?如何 ? entitlemets.plist 到底是做什么的?
【发布时间】:2011-02-10 11:03:19
【问题描述】:

要在 iPhone 中执行我的应用程序,首先我必须将配置文件添加到我的 iPhone 中。好的。但我不明白在资源下 xCode 的 iphone 应用程序中添加 entitlements.plist 的原因。

  • entitlements.plist 文件实际上是做什么的?
  • 为什么 .plist 文件中只有一个布尔值? (get-task-allow)
  • 我们不能将该布尔变量添加到 application-info.plist 吗?

我的意思是,我找不到将单个布尔变量存储在单独的 plist 文件中的原因。相反,application-info.plist 已经包含许多应用程序设置。我们不能把这个布尔变量添加到 application-info.plist 中吗?

好的,无论如何。我知道——这不可能。因为我们必须遵循 - 苹果所说的。 但是,这一切背后的主要意图是

  • “entitlements.plist 的基本需求是什么?”或
  • “entitlements.plist 的功能是什么?”
  • “配置文件、entitlements.plist、application-info.plist 和 iPhone 应用程序如何编译在一起并在 iPhone 上进行验证并在 iPhone 上执行?”

【问题讨论】:

    标签: iphone xcode plist provisioning


    【解决方案1】:

    权利实际上是 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 不同。如果信任链没有中断,这将作为entitlement 对某些(危险)操作的权利。

    【讨论】:

    • run-unsigned-code , com.apple.springboard.launchapplications , task_for_pid-allow - 很棒。你是怎么知道这一切的?
    • @sagar:逆向工程。 (当然,如果您在 AppStore 的权利中包含任何这些内容,它将被拒绝。)
    • 什么样的逆向工程?我很感兴趣。另外,Apple 对提交的应用程序的逆向能力有多深?他们真的检查这些东西吗?我看到最近提交的一款游戏在启动时崩溃,因为应用程序包中缺少纹理文件。他们在 App Store 中缺少一些明显的检查。
    猜你喜欢
    • 2016-03-12
    • 2020-04-14
    • 2021-12-10
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2013-09-02
    相关资源
    最近更新 更多