Verpacken von Verschleiß-Apps
Warnung
Die folgenden Dokumente und Beispielprojekte werden möglicherweise nicht mehr verwaltet. Ab Xamarin.Android 11.1 wird das automatische Verpacken einer Android Wear-Anwendung in einer Android Handheld-Anwendung nicht mehr unterstützt. Es wird empfohlen, stattdessen Android Wear-Anwendungen als eigenständige Anwendungen zu verteilen.
Android Wear 1.0-Apps werden mit einer vollständigen Android-App für die Verteilung auf Google Play verpackt.
Android Wear 2.0-Apps können als eigenständige Anwendungen an Google Play übermittelt werden.
Automatische Verpackung
Ab Xamarin Android 5.0 wird Ihre Wear-App automatisch als Ressource in Ihrer Handheld-App verpackt, wenn Sie einen Projektverweis vom Handheld-Projekt zum Wear-Projekt erstellen. Sie können die folgenden Schritte zum Erstellen dieser Zuordnung ausführen:
Wenn Ihre Wear-App noch nicht Teil Ihrer Handheld-Lösung ist, klicken Sie mit der rechten Maustaste auf den Lösungsknoten, und wählen Sie "Vorhandenes Projekt hinzufügen" > aus.
Navigieren Sie zur CSPROJ-Datei Ihrer Wear-App, wählen Sie sie aus, und klicken Sie auf " Öffnen". Das Wear-App-Projekt sollte jetzt in Ihrer Handheld-Lösung sichtbar sein.
Klicken Sie mit der rechten Maustaste auf den Knoten "Verweise", und wählen Sie "Verweis hinzufügen" aus.
Aktivieren Sie im Dialogfeld "Verweis-Manager " Ihr Wear-Projekt (klicken Sie, um ein Häkchen hinzuzufügen), und klicken Sie dann auf "OK".
Ändern Sie den Paketnamen für Ihr Wear-Projekt so, dass er dem Paketnamen des Handheld-Projekts entspricht (der Paketname kann unter "Eigenschaften > Android Manifest" geändert werden).
Beachten Sie, dass sie eine XA5211-Fehlermeldung erhalten, wenn der Paketname der Wear-App nicht mit dem Paketnamen der Handheld-App übereinstimmt. Zum Beispiel:
Error XA5211: Embedded wear app package name differs from handheld
app package name (com.companyname.mywearapp != com.companyname.myapp). (XA5211)
Um diesen Fehler zu beheben, ändern Sie den Paketnamen der Wear-App so, dass er dem Paketnamen der Handheld-App entspricht.
Wenn Sie auf "Alle erstellen" klicken>, löst diese Zuordnung die automatische Verpackung des Wear-Projekts in das Hauptprojekt Handheld (Phone) aus. Die Wear-App wird automatisch erstellt und als Ressource in der Handheld-App enthalten.
Die Vom Wear-App-Projekt generierte Assembly wird nicht als Assemblyverweis im Handheld-Projekt (Phone) verwendet. Stattdessen führt der Buildprozess folgende Aktionen aus:
Überprüft, ob die Paketnamen übereinstimmen.
Generiert XML und fügt es dem Handheld-Projekt hinzu, um es der Wear-App zuzuordnen. Zum Beispiel:
<!-- Handheld (Phone) Project.csproj --> <ProjectReference Include="..\MyWearApp\MyWearApp.csproj"> <Project>{D80E1FEF-653B-448C-B2AA-609C74E88340}</Project> <Name>MyWearApp</Name> <IsAppExtension>True</IsAppExtension> </ProjectReference>
Fügt die Wear-App als Rohressource zum Handheld-Projekt hinzu.
Manuelle Verpackung
Sie können Android Wear-Apps in Xamarin.Android vor Version 5.0 schreiben. Sie müssen jedoch die folgenden anleitungen zum Verpacken der App befolgen:
Stellen Sie sicher, dass Ihr Wearable-Projekt und Ihre Handheld-Projekte über die gleiche Versionsnummer und denselben Paketnamen verfügen.
Erstellen Sie das Wearable-Projekt manuell als Release-Build .
Fügen Sie die Version manuell hinzu. APK aus Schritt (2) in das Ressourcen-/Rohverzeichnis des Handheld-Projekts (Telefon).
Fügen Sie im Handheld-Projekt manuell eine neue XML-Ressource "Resources/xml/wearable_app_desc.xml " hinzu, die sich aus Schritt (3) auf Wearable APK bezieht:
<wearableApp package="wearable.app.package.name"> <versionCode>1</versionCode> <versionName>1.0</versionName> <rawPathResId>NAME_OF_APK_FROM_STEP_3</rawPathResId> </wearableApp>
Fügen Sie dem AndroidManifest.xml-Element
<application>
des Handheld-Projekts ein<meta-data />
Element manuell hinzu, das auf die neue XML-Ressource verweist:<meta-data android:name="com.google.android.wearable.beta.app" android:resource="@xml/wearable_app_desc"/>
Siehe auch die Anleitungen zum manuellen Packen der Android-Entwicklerwebsite.