次の方法で共有


Apple Platform (iOS および Mac)

コード共有

ユーザー インターフェイス要素がないコードの要素の場合、iOS と Mac の間でコードを共有する最善の方法は、ポータブル クラス ライブラリを引き続き使用することです。

何らかのユーザー インターフェイスの動作を行う必要があり、まだ共有する必要があるコードの場合は、共有プロジェクトを使用する必要があります。共有プロジェクトを使用すると、コードを 1 つのプロジェクトで共有するように配置し、参照時に Mac と iOS の両方でコンパイルできます。

Unified API

iOS および Mac プロジェクト用の Unified API では、フレームワークに同じ名前空間が使用されるため、シームレスなコード共有のために、両方のプラットフォームで同じコード ファイルを使用できます。 また、32 ビット ビルドと 64 ビット ビルドの両方を有効にします。 Unified API は 2015 年初頭からテンプレートの既定値であり、すべての新しいプロジェクトで推奨されています。Unified API プロジェクトのみを App Store に送信できます。

Classic API

Note

クラシック プロファイルの非推奨: Xamarin.iOS で新しいプラットフォームが追加されるため、クラシック プロファイル (monotouch.dll) の機能を徐々に非推奨にし始めています。 たとえば、NRC 以外の (new-ref-count) オプションは削除されました。 NRC はすべての統合アプリケーションに対して常に有効になっており (つまり、NRC 以外はオプションではありませんでした)、既知の問題はありません。 今後のリリースでは、ガベージ コレクターとして Boehm を使用するオプションが削除されます。 これはまた、統合アプリケーションでは使用できないオプションでした。 クラシック サポートの完全な削除は、Xamarin.iOS 10.0 のリリースで 2016 年秋に予定されています。

元の (非統合) Xamarin.iOS API と Xamarin.Mac API では、ネイティブ フレームワークに MonoTouch. または MonoMac. のいずれかの名前空間プレフィックスがあるため、コード共有がより困難になりました。 開発者が同じファイルに MonoMac 名前空間と MonoTouch 名前空間の両方を参照する using ステートメントを追加してコードを共有できる空の名前空間をいくつか提供していましたが、これは少し不自然でした。 Classic API は、内部的に配布されるレガシ アプリでのみ引き続き使用する必要があります (Unified API へのアップグレードをお勧めします)。

Classic API から Unified API への更新

Classic API から Unified API にアプリケーションを更新するための詳細な手順があります。

Objective-C ライブラリのバインド

Xamarin を使用すると、バインドを使用してネイティブ ライブラリをアプリに取り込めます。 このセクションでは、次の内容について説明します。

  • バインドのしくみ、
  • Xamarin に Objective-C コードを取り込めるバインド プロジェクトを手動でビルドする方法、および
  • プロセスの自動化に役立つ Objective Sharpie ツールを使用する方法。

ネイティブ参照

Mac/iOS ネイティブ型

C# と F# から透過的に 32 ビットおよび 64 ビット コードをサポートするために、新しいデータ型を導入します。 詳しくは、こちらをご覧ください。

32 ビットおよび 64 ビット アプリのビルド

32 ビットおよび 64 ビット アプリケーションをサポートするために知っておく必要がある情報。

クロスプラットフォーム アプリでのネイティブ型の使用

この記事では、コードを Android や Windows Phone OS などの iOS 以外のデバイスと共有するクロスプラットフォーム アプリケーションで、新しい iOS Unified API ネイティブ型 (nintnuintnfloat) を使用する場合について説明します。 ネイティブ型を使用するタイミングに関する分析情報を提供し、クロスプラットフォーム コードで新しい型を使用する必要がある場合に、いくつかの可能なソリューションを提供します。

HttpClient スタックと SSL/TLS の実装セレクター

新しい HttpClient スタック セレクターは、Xamarin.iOS、Xamarin.tvOS、Xamarin.Mac アプリで使用する HttpClient 実装を制御します。 iOS、tvOS、または OS X ネイティブ転送 (OS に応じて NSUrlSession または CFNetwork) を使用する実装に切り替えることができるようになりました。

SSL (Secure Socket Layer) とその後継の TLS (トランスポート層セキュリティ) により、System.Net.Security.SslStream を介した HTTP やその他のネットワーク接続がサポートされます。 新しい SSL/TLS 実装ビルド オプションでは、Mono 独自の TLS スタックと、Mac と iOS に存在する Apple の TLS スタックを活用した TLS スタックを切り替えます。