App Store - 方法调整合法性

时间:2012-01-12 11:26:41

标签: objective-c ios app-store swizzling

关于是否有关于方法调配的最新信息在App Store上是否合法/非法?

我能找到的唯一数据点是Three20 framework shakeup前一段时间,从此通知开始:

  

您目前发布到App Store的应用程序xxx正在使用   method_exchangeImplementations交换Apple的实现   提供了API和您自己的实现。因为即将到来   更改,您的应用程序中的此行为可能会导致崩溃或原因   iPhone OS 4.0上的用户数据丢失。

     

xxx使用method_exchangeImplementations来交换实现   dealloc与您的方法ttdealloc。它还交换了   popViewControllerAnimated方法的实现:用你的   方法popViewControllerAnimated2:。

     

请立即解决此问题并将新二进制文件上传到   iTunes Connect。如果我们相信,我们可能会删除您的申请   这样做是谨慎或必要的。


当我在搜索时,我可以找到关于调配和应用程序商店的最近一次对话似乎引用了同样的Three20事件。通知似乎非常具体,我想知道问题是否是Three20所做的更改或者method_exchangeImplementations被普遍禁止的具体更改问题。

关于是否允许这种做法,还有其他数据吗?在商店中有没有使用应用程序的应用程序的开发人员?

谢谢!

2 个答案:

答案 0 :(得分:8)

AFNetworking是一个用于网络请求的广泛的lib(IMO),它使用至少版本1.3.4来支持类方法中额外的可接受状态代码和内容类型。

这样做似乎是合法的。

注意:他们使用的是class_replaceMethod而不是method_exchangeImplementations。

答案 1 :(得分:0)

通常,调试是为了调试以查看何时调用特定方法,或者在某些情况下您无法将某些内容子类化或使用类别。如果您没有将应用程序放在应用程序商店上的时间紧迫,我猜您可以尝试使用方法调配发送您的应用程序,看看它是否被接受。并非所有应用程序都以相同的方式进行审核,有时它只是由评论者决定。