24

メソッドの入れ替えが App Store で合法/違法かどうかに関する現在の情報はありますか?

私が見つけることができる唯一のデータ ポイントは、この通知から始まった、しばらく前のThree20 フレームワークのシェイクアップです。

現在 App Store に投稿されているアプリケーション xxx は、method_exchangeImplementations を使用して、Apple 提供の API の実装を独自の実装と交換しています。今後の変更により、iPhone OS 4.0 でアプリケーションのこの動作が原因でクラッシュしたり、ユーザー データが失われたりする可能性があります。

xxx は method_exchangeImplementations を使用して、dealloc の実装をメソッド ttdealloc と交換します。また、メソッド popViewControllerAnimated: の実装をメソッド popViewControllerAnimated2: と交換します。

この問題をすぐに解決して、新しいバイナリを iTunes Connect にアップロードしてください。削除することが賢明である、または必要であると判断した場合は、アプリケーションを削除することがあります。


調べてみると、スウィズリングに関する最近の会話はすべて、同じ Three20 事件を参照しているようです。通知はかなり具体的であるように思われます.Three20が行った変更に伴う特定の変更の問題なのか、それともmethod_exchangeImplementationsが普遍的に禁止されているのか疑問に思っています.

慣行が許可されているかどうかについて、他にデータポイントはありますか? スウィズリングを使用しているストア内のアプリの開発者はいますか?

ありがとう!

4

2 に答える 2

8

ネットワークリクエストに広く使用されているlib(IMO)であるAFNetworkingは、クラスメソッドで追加の受け入れ可能なステータスコードとコンテンツタイプをサポートするために、少なくともバージョン1.3.4までのスウィズリングを使用していました。

したがって、それを行うことは合法のようです。

注:method_exchangeImplementationsではなくclass_replaceMethodを使用しました。

于 2013-02-06T15:21:49.633 に答える
1

通常、スウィズリングは、特定のメソッドがいつ呼び出されたかをデバッグするためのものです。または、状況によっては、何かをサブクラス化したり、そのカテゴリを使用したりすることはできません。アプリケーションをアプリストアに配置するスケジュールが厳しくない場合は、メソッドswizzlingを使用してアプリケーションを送信し、受け入れられるかどうかを確認してみてください。すべてのアプリケーションが同じ方法でレビューされるわけではありません。場合によっては、実際にはレビュー担当者次第です。

于 2012-06-27T13:34:04.533 に答える