自分が取り組んでいるプロジェクトを他の人に見せなければなりませんが、プロジェクトのフレームワークが読めないように保護したいと思います。フレームワークにすべてのコードをパックして、プロジェクトに追加しました。
問題は、フレームワークがいくつかのデリゲートメソッドを呼び出し、それらにブレークポイントを設定すると、それらの呼び出し元の完全な.m/.mmファイルが表示されることです。どうすればそれを防ぐことができますか?コードを保護したい。
自分が取り組んでいるプロジェクトを他の人に見せなければなりませんが、プロジェクトのフレームワークが読めないように保護したいと思います。フレームワークにすべてのコードをパックして、プロジェクトに追加しました。
問題は、フレームワークがいくつかのデリゲートメソッドを呼び出し、それらにブレークポイントを設定すると、それらの呼び出し元の完全な.m/.mmファイルが表示されることです。どうすればそれを防ぐことができますか?コードを保護したい。
あなたのマシンで利用可能であり、Spotlightがそれを見つけることができるので、あなたはコードを見ているだけです。コンパイルされたフレームワークバイナリを配布する場合、メソッドの名前は表示されますが、ソースはデバッガーに表示されません。バイナリを削除すると(「StripLinked Product」)、関数の名前が削除されますが、メソッドは削除されません。メッセージディスパッチが機能するには、実行時にこれらの名前が使用可能である必要があるためです。これにより、クラッシュログを利用するのが難しくなるため、本当にスペースを節約する必要がない限り、通常はお勧めしません。
リバースエンジニアリングから保護するためにできること(またはすべきこと)は非常に限られていることに注意してください。すべての言語はリバースエンジニアリングの対象ですが、ObjCはその性質上特に影響を受けやすくなっています。詳細については、 Objective-Cライブラリの逆コンパイルを参照してください。
フレームワークをバイナリにコンパイルします。これにより、ソースコードが読み取れるように「保護」され、ヘッダーファイル(選択したもの)のみが公開されます。