越狱对iOS开发有影响吗?

4

如今越狱iOS设备非常容易,但我不会在这里讨论如何进行越狱。

我想问一下,如果测试设备被越狱了,对正常的iOS开发是否有影响?

我的简单回答是“没有”。

但我不确定越狱设备到底发生了什么。因此,请提供更严肃的答案。谢谢。

5个回答

2

我遇到了一个大问题,花费了一周的时间才解决:

在越狱设备上开发inAppPurchase无法正常工作(所有inApps都会显示InvalidProductIDs)

有些报告称这是由于安装了AppSync导致的。


如果这是真的,那将是一个很大的问题。但是根据我的之前经验,IAP没有任何问题。这是新出现的吗? - Forrest
也许是因为我对IAP不太熟悉。可能是XCode4的问题。但是我的越狱iPhone返回所有产品ID都无效,而非越狱的iPod Touch和iPad却可以正常工作。 - xfze
你必须将应用提交到AppStore,才能注册IAP。如果您正在为JB开发应用程序,则可能是因为违反了AppStore提交的某些条款,因此您的IAP将无法在AppStore上注册并且不可用。有人可以确认这种理解吗? - Chris Wagner
Flash84x,它与此无关。我说的是普通的AppStore应用程序,而不是JB应用程序。当您创建“正常”应用程序并想要测试注册的IAP时,它似乎在某些JB设备上无法工作(沙盒IAP测试)。很可能(尽管我不确定)当应用程序在AppStore发布时的最终版本在JB设备上正常工作,问题只是由于XCode在用于开发测试的JB设备上启动IAP沙箱环境时引起的。 - xfze
我再强调一遍,如果你正在开发使用IAP的应用程序,并且你有一个JB设备,那么你会抓狂的。根据xfze的回答,你肯定会得到invalidProductIds。 - Yannis

2
基本上,在“工作-不工作”层面上,越狱并没有任何负面影响。作为一个自己也越狱的开发者,我可以确认几乎所有在非越狱设备上运行的技术(从技术上讲)都可以在越狱设备上运行。越狱不会放弃API,不会删除官方应用所需的软件或系统组件。它只提供了额外的便利和功能,扩展了开发者(因此也扩展了用户)的机会。

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

您的应用程序可能会被破解。而且,有些人会这样做。请注意这一点。有(曾经有)Install0us,还有应用内购买破解器等。如果您不在意,那就没问题了:只有很少一部分iOS用户越狱他们的设备,并且并非每个越狱用户都是盗版者,他们唯一的意图就是窃取您的应用程序!
敏感数据可以从设备中获取。如果您不够小心,可能会发生两种可能的事情。要么您将某些敏感用户数据存储在文件系统上(即使在越狱设备上,Keychain也不安全!),然后其他人可以查看它(有效地启用身份盗窃),要么您的应用程序可能会被黑客攻击(想象一下,如果您将用户在游戏中的得分存储在plist文件中,用户可以简单地覆盖plist中的值来作弊)。
使用MobileSubstrate框架可以轻松地改变您的应用程序行为 - 这可能是您想要或不想要的:)
总之:要小心骗子和破解者,但不要惩罚无辜的用户!弹出窗口显示“此应用程序无法在越狱设备上运行”是不公平的,并会降低您作为开发人员的声誉。

1

这取决于安装了什么,如果您开始添加一些基础服务的钩子包,可能会看到一些奇怪/不可预测的活动。除此之外,我认为您应该没问题,JB社区所有开发和测试他们的应用程序都在JB设备上进行,所以我认为通常情况下您是安全的。


0

只有在您安装了可能影响任何框架或服务的内容时,它才无法正常工作,就像@Flash84x所说的那样。

除此之外,您没有问题。


0

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

因此,您绝对可以使用越狱设备进行开发(毕竟并非每个人都能负担得起专门的开发设备),但务必在普通设备上彻底测试您的应用程序,否则您可能会有不好的惊喜。

@H2CO3 我还不能评论,但我认为您错过了重点:他没有问关于在越狱设备上运行应用程序,而是要在越狱设备上测试应用程序(这是一个相当糟糕的想法)。


为什么这会是一个“相当糟糕的想法”?正如我所说:在越狱设备上测试不会有任何损失。 - user529758
因为有些事情(首先想到的是未签名代码执行,但这很难意外触发。我记得还有其他的)本应该不起作用,但它们确实能够正常工作。如果我没记错的话,在《iOS黑客手册》中也提到了这一点。 - EliaCereda
“在普通设备上测试是一个好的实践”与“在越狱设备上测试是一个不好的实践”并不等同。未签名代码执行:1. 它通常不起作用,即使在越狱系统上也是如此。你认为 ldid 是为什么而发明的?2. 为什么在官方应用程序中会有任何尝试运行未签名的代码呢? - user529758
这就是为什么我说“脑海中浮现的第一件事”和“这很难意外触发”。如果您加载了一个(即使是经过Apple认证的)已签名二进制文件,然后创建一个rw+x内存页面并执行它,它确实可以工作。从创建可执行内存页面开始,这根本不应该起作用。 - EliaCereda
无论如何,声称我的答案是错误的并不能使你的答案变得正确。 ;) 我想说的是,你的回答是从错误的角度出发的:你说“在非越狱设备上运行的所有内容也可以在越狱设备上运行”,但问题要求相反的事情,“在越狱设备上运行的所有内容也可以在未越狱设备上运行”绝对是一个错误的假设。 - EliaCereda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接