【问题标题】:Does Jailbreak have any impacts to iOS development?越狱对 iOS 开发有影响吗?
【发布时间】:2011-07-07 04:59:06
【问题描述】:

今天越狱iOS设备很容易,但我不打算在这里弄清楚如何做到这一点。

我想问一下,如果测试设备越狱,对正常的ios开发有影响吗?

我的简单回答是“不”。

但我不确定越狱设备到底发生了什么。所以在这里提问以获得更严肃的答案。谢谢

【问题讨论】:

    标签: ios ios4 jailbreak


    【解决方案1】:

    我花了一个多星期才弄清楚一个大问题:

    inAppPurchase 开发不适用于 JB 设备(它为所有 inApps 提供 InvalidProductID)

    (一些报道说它适用于安装了 AppSync 的 JB)

    【讨论】:

    • 如果属实,那将是一个大问题。但我之前的经验证实 IAP 没有问题。是新的吗?
    • 也许,我是 IAP 新手。它可能是 XCode4。但问题是我的 JB iPhone 在非 JB ipod touch 和 ipad 工作正常的情况下将所有产品 ID 返回为无效。
    • 您必须向 AppStore 提交应用才能注册 IAP。如果您正在为 JB 开发应用程序,您可能会这样做,因为它取消了 AppStore 提交的某些术语,因此您的 IAP 将不会在 AppStore 中注册并且不可用。谁能证实这一理解?
    • Flash84x,不是它与此无关。我说的是普通的 AppStore 应用程序,而不是 JB 应用程序。当您创建“普通”应用程序并想要测试已注册的 IAP 时,它似乎不适用于某些 JB 设备(沙盒 IAP 测试)。很可能(尽管我不确定)应用程序在 AppStore 上发布时的最终版本在 JB 设备上运行良好,问题只是在用于 JB 设备上的 IAP 沙盒环境的 XCode 启动开发测试
    • 我不能强调这一点。如果您正在使用 IAP 开发应用程序,那么如果您有 JB 设备,您将大发雷霆。保证根据 xfze 的回答,您将获得 invalidProductIds。
    【解决方案2】:

    基本上,越狱乍一看并没有任何负面影响,在“有效 - 无效”级别。作为一名越狱开发人员,我可以确认几乎所有(技术上)在非越狱设备上工作的东西也可以在越狱设备上工作。越狱不会放弃 API,不会删除运行官方应用程序所需的软件或系统组件。它只会带来额外的设施和功能,以扩展开发人员(以及用户)的机会。

    但是,鉴于越狱系统几乎是完全开放的,需要考虑安全相关问题。具体而言:

    1. 您的应用程序可能会被破解。有些人会这样做。请注意它。有(曾经)Install0us,有 In-App Purchase 破解程序等。不过,如果您不在乎,那也没关系:只有一小部分 iOS 用户越狱了他们的设备,不是每个每个越狱者都是盗版者,其唯一目的是窃取您的应用程序!

    2. 可以从设备获取敏感数据。如果你不够小心,可能会发生两种情况。要么您将一些敏感的用户数据存储在文件系统 (even the Keychain is insecure on jailbroken devices!) 上并且其他人可以查看它(有效地启用身份盗用),要么您的应用程序可能被黑客入侵(想象一下,如果您将用户的分数存储在 plist 中的游戏中文件,用户只需覆盖 plist 中的值即可作弊)。

    3. 使用 MobileSubstrate 框架可以轻松更改应用程序的行为 - 您可能想要也可能不想要:)

    总而言之:提防作弊者和破解者,但仍然不要惩罚无辜的用户!弹出窗口说“此应用无法在越狱设备上运行”是不公平的,并且会降低您作为开发者的声誉。

    【讨论】:

      【解决方案3】:

      这取决于安装的内容,如果您开始添加一些作为基础服务挂钩的软件包,您可能会看到一些奇怪/不可预测的活动。除此之外,我认为你应该没问题,JB 社区都在 JB 设备上开发和测试他们的应用程序,所以我认为总体上你没问题。

      【讨论】:

        【解决方案4】:

        只有安装了会影响@Flash84x 所说的任何框架或服务的东西时,它才会起作用。

        除此之外你很好。

        【讨论】:

          【解决方案5】:

          基本的开发工作,就像任何其他设备一样,因此使用它应该是安全的。问题是越狱(不是调整,jb 本身)修改了系统的一些核心组件(即一些微妙的沙箱东西)。由于这些变化,可能会发生根本不应该工作的事情突然在越狱设备上工作(更不用说你可以安装的所有调整,这些调整可以改变很多事情)。

          所以,您绝对可以使用越狱设备开发(毕竟不是每个人都能买得起专用设备进行开发),但请务必彻底测试您的应用在普通设备上,否则您可能会遇到意外。

          @H2CO3 我还不能发表评论,但我认为你错过了重点:他没有询问在越狱设备上运行应用程序的问题,而是在越狱设备上测试应用程序(这是很糟糕的主意)。

          【讨论】:

          • 为什么这是一个“非常糟糕的主意”?正如我所说:在越狱设备上进行测试时不会丢失任何内容。
          • 因为有些事情(首先想到的是未签名的代码执行,但这很难意外触发。我记得还有其他的)不应该工作,但他们确实正常工作。如果我没记错的话,iOS Hacker's Handbook 中有提到这一点。
          • “在普通设备上测试是个好习惯”不等同与“在越狱设备上测试是不好的做法”。未签名的代码执行: 1. 它通常不起作用,即使在越狱系统上也不行。为什么你认为ldid 被发明了? 2. 为什么在官方应用程序中会尝试运行未签名的代码?
          • 这就是为什么我说“首先想到的事情”和“这很难意外触发”。如果您加载(甚至使用 Apple 证书正确)签名的二进制文件,然后创建一个 rw+x 内存页面并执行它,它确实可以工作。从创建可执行内存页面开始,这根本不应该工作。
          • 无论如何,说我的答案是错误的并不能使你的答案正确。 ;) 我的意思是,您的回答是从错误的角度出发的:您是在说“所有 [...] 在非越狱设备上工作的东西也可以在越狱设备上工作”,但问题是对于相反的事情,“在越狱设备上工作的所有东西也可以在被监禁的设备上工作”绝对是一个错误的假设。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-02-11
          • 2014-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-04
          • 1970-01-01
          相关资源
          最近更新 更多