[履歴]
以前は、次の複数の Google Play 開発者サービス コンポーネントと NuGet パッケージが存在しました。
- Google Play 開発者サービス (Froyo)
- Google Play 開発者サービス (Gingerbread)
- Google Play 開発者サービス (ICS)
- Google Play 開発者サービス (JellyBean)
- Google Play 開発者サービス (KitKat)
Google では実際には、Google Play 開発者サービス用に、次の 2 つの .jar ファイルのみを出荷しています。
google-play-services-froyo.jar
google-play-services.jar
この不一致は、指定のアプリで使用される最大リソース API レベルが何であったかをツールで aapt.exe
に正確に示されていなかったことが原因でした。 つまり、Google Play 開発者サービス (KitKat) のバインディングを、Gingerbread などのより低い API レベルで使用しようとすると、コンパイル エラーが発生しました。
Google Play 開発者サービスの統一
Xamarin.Android のより新しいバージョンでは、使用する最大リソース バージョンが aapt.exe
に示されるようになったことから、この問題は解消されています。
つまり、Gingerbread/ICS/JellyBean/KitKat 用に別個のパッケージを用意する意味は特にありません (ただし、Froyo の .jar ファイルはまったく異なるため、引き続き別のバインディングが必要です)。
開発者にとってわかりやすいように、コンポーネントと NuGet パッケージを次の 2 つに統一しました。
- Google Play 開発者サービス (Froyo) (バインド
google-play-services-froyo.jar
) - Google Play 開発者サービス (バインド
google-play-services.jar
)
どちらを使用すべきか
ほとんどすべての場合、Google Play 開発者サービスを使用することをお勧めします。 (Froyo) パッケージを使用する唯一の理由は、積極的に Froyo をターゲットにしている場合です。 この Google 提供の別個の .jar ファイルが存在する唯一の理由は、Froyo が使用されているデバイスの割合はごくわずかで、Google でのサポート終了が決まっているためです。そのため、この .jar ファイルは Google Play 開発者サービスの凍結されたサポートされていないスナップショットです。
Gingerbread に関する注記
Gingerbread では、Fragment が既定でサポートされていません。このため、バインディング内のクラスの一部は、実行時に Gingerbread デバイス上のアプリで使用できません。 MapFragment
のようなクラスは Gingerbread では機能しません。SupportMapFragment
の代わりに Support バリアントを使用する必要があります。 どちらを使用するかを開発者が理解しておく必要があります。 この非互換性は、Google によって Google Play 開発者サービスのドキュメントに記載されています。
古いコンポーネント/NuGet はどうなるか
不要になったため、次のコンポーネント/NuGet を無効またはリストから削除しました。
- Google Play 開発者サービス (Gingerbread)
- Google Play 開発者サービス (JellyBean)
- Google Play 開発者サービス (KitKat)
既存の Google Play Services (ICS) コンポーネント/NuGet の名前は "Google Play 開発者サービス" に変更され、今後も最新の状態に保たれます。 無効またはリストから削除されたパッケージのいずれかを参照しているすべてのプロジェクトは、このパッケージを使用するように更新する必要があります。
無効になっているコンポーネントは引き続き存在し、中断を避けるために、それらが参照されているプロジェクトで復元できます。 同様に、リストから削除された NuGet パッケージは引き続き存在し、復元できます。 これらは今後は更新されません。