2012-01-12 13 views
19

濡れているかどうかについての最新情報はありますか?スウィズルは、App Storeで合法/違法ですか?私は見つけることができますApp Store - Method Swizzling Legality

のみのデータポイントはThree20 framework shakeupあるこの通知で開始しばらく前、:

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

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

すぐにこの問題を解決し、新しいバイナリを iTunes Connectにアップロードしてください。 が賢明または必要であると思われる場合は、お客様の申請を削除することがあります。


私の周り探していたとき、私はスウィズリングとアプリケーションストアについては見つけることができるすべての最近の会話が同じThree20事件を参照しているようです。この通知は非常に具体的なようで、Three20が行った変更や、method_exchangeImplementationsが普遍的に禁止されているかどうか、問題が特定の変更の問題かどうかは疑問です。

練習が許可されているかどうかについての他のデータポイントはありますか?スウィズルを使用している店舗内のAppsの開発者はいますか?

ありがとうございます!

+1

あなたは本当にやりたいことは何ですか?ほとんどの場合、方法のスウィズルは、より良いデザインで回避できるハックです。 – JeremyP

+4

私はこの質問をAppleの拒否ポリシーだから議論の対象外としている。 「あなたが好きな会社の顧客サポートではない理由」(https://meta.stackoverflow.com/questions/255745/why-were-not-customer-support-for-your-favorite-company)も参照してください。 – FelixSFD

答えて

7

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

だから、それは正当だと思われます。

注:これらは、method_exchangeImplementationsではなくclass_replaceMethodを使用しました。

+0

AFNetworkingで 'method_exchangeImplementations'のワークスペース検索を実行しましたが、その参照が見つかりませんでした。AFNetworkingは、一部のビューのカテゴリに対してのみランタイムライブラリを使用し、キー値バインディングにobjc_setAssociatedObjectメソッドを使用します。私はそれが方法swizzlingではありません。 –

+0

AFNetworkingが大幅に改訂されました。おそらくバージョン2.0はうねりなく動作します。しかし、バージョン1.3.4までは、AFHTTPRequestOperationの前にclass_replaceMethodを使用しました。 –

+0

あなたの答えを更新してください。 –

0

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

+0

誰もがこれを試してみましたか?それとも私は最初に見つかるのでしょうか? –

+1

@ShayanRCそれは合法だ、あなたはうろつきを使用することができます。 – Peres