Xamarin アプリの保護
この手順では、Dotfuscator Professional を使用して Xamarin プロジェクトを保護する方法を段階的に説明していきます。 手順を完了すると、プロジェクトに保護プロセスが統合されるため、このプロジェクトは Visual Studio または MSBuild でビルドするたびに、Dotfuscator によって自動的に保護されるようになります。 アプリがサポートする各プラットフォームに Dotfuscator を統合して、アプリを実行するデバイスに関係なく、実績のある階層化された保護戦略を備えたアプリを作成できます。
Dotfuscator は、他の .NET プラットフォームと同様のアプローチを用いて、通常の Xamarin のビルド処理の一環として Xamarin アプリケーションに統合されます。 ただし、Xamarin 統合独特の面もいくつかあるので、作業を開始する前に理解しておく必要があります。 以下で、さまざまなプラットフォームの Xamarin ソリューションの概要について図解します。
Android
Xamarin Android プロジェクトの場合、Dotfuscator は MSIL のコンパイル後、Xamarin Android apk のパッケージ手順の前に自身を挿入します。
iOS
iOS のビルドはより複雑になります。C# コンパイラと Dotfuscator は Windows で実行され、その後 Xamarin iOS のパッケージ手順は Mac OS コンピューターでリモートに実行されます。
UWP
Xamarin UWP プロジェクトの構造は Xamarin Android プロジェクトとよく似ています。Dotfuscator は、Appx のパッケージ手順の前に自身を差し込みます。
メモ:Dotfuscator-Xamarin 統合は、Android、iOS、およびユニバーサル Windows プラットフォーム(UWP)で行うように設計されています。 その他のプラットフォーム、特に Windows 8.x プラットフォームはサポートされていません。
ソリューション内の各対象プラットフォームの出力プロジェクトに Dotfuscator を統合する必要があります。 上の図で示されているように、ビルド処理における Dotfuscator の位置はプラットフォームごとに若干異なっており、それぞれのプラットフォームに固有の構成設定が必要になる場合があります(たとえば、Android のルート チェックや改ざんチェック、iOS でのみ必要となる名前の変更の対象除外などがあります)。
Dotfuscator は、モバイル アプリ パッケージを生成するプロジェクト、たとえば、APK を生成する Android プロジェクトなどの出力プロジェクトにのみ統合する必要があります。 Dotfuscator はこれらの出力プロジェクトを保護するときに、そのプロジェクトの一部としてパッケージ化されたすべてのアセンブリも自動的に保護します。 .NET Standard ライブラリやポータブル クラス ライブラリ(PCL)などの、ライブラリ プロジェクトに Dotfuscator を統合する必要はありません。これらは出力プロジェクトによって使用されるため、自動的に保護されるからです。 詳細については、保護するプロジェクトの選択を参照してください。
Dotfuscator を統合する出力プロジェクトごとに、どのビルド構成に保護を適用するかを決定する必要があります。 手順で提供されている既定の構成では、Release、Ad-Hoc、および AppStore 構成を保護します。 Ad-Hoc 構成と AppStore 構成は、iOS プロジェクトでのみ使用されます。 詳細については、保護する構成の選択を参照してください。
作業を開始するには、アプリケーションの保護ページに記載されている、いずれかの対象プラットフォームの手順に従います。 その後、さらに保護する各プラットフォームについて、該当する処理を繰り返します。
'PreEmptive.Dotfuscator.Xamarin.targets' ファイルの変更点
Dotfuscator の Xamarin 統合は、最初に導入されてから大幅に改善されました。
当初の統合方法では、PreEmptive.Dotfuscator.Xamarin.targets
ファイルをダウンロードする必要がありました。一部の外部ドキュメントやブログ投稿はまだ、ダウンロードするよう指示している可能性があります。
しかし、Dotfuscator Professional v4.37 の時点で、その必要はなくなり、統合を使用することが格段に簡単になりました。
お使いのバージョンの Dotfuscator の適切な手順に従ってください。
- Dotfuscator Professional の場合は、このページの先頭からの手順に従ってください。
- Dotfuscator Community の場合は、Dotfuscator Community ドキュメントの最新の integration instructions for Xamarin を参照してください。