Xamarin.iOS mehrere Asset-Kataloge

8

Mit dem neuesten Xamarin Studio (4.0.13) versuche ich Asset-Kataloge in meiner App zu verwenden. Die App verfügt über zwei verschiedene App-Icon-Sets: eins für alle Test- (Test.plist) und Staging (Staging.plist) Builds und eines für die gesamte Vorproduktion (PreProduction.plist) und Produktion (Produktion .plist) baut. Das Test-Paket enthält keine App-Icons, da wir wollen, dass die QA klar ist, das ist nicht das Gleiche wie ein Produktions-Build.

Ich habe bereits angefangen, einen Pre-Build plist cp Schritt zu machen (nicht ideal; Xamarin Studio sollte bedingt auch Dateien basierend auf der Build-Konfiguration unterstützen). Gibt es eine Möglichkeit, die ImageAsset und .appiconset , die spezifisch für meine Build-Konfiguration sind, konditional zu bündeln (Build Action .launchimage )? Ich habe die relevanten XSAppIconAssets und XSLaunchImageAssets angegeben, aber da sie alle mit ImageAsset markiert sind, werden sie trotzdem kopiert und (leider) in den Stammordner kopiert, wo Springboard sie finden und anzeigen kann.

Gibt es einen Weg ohne:

  • Noch mehr Pre-Build cp ing hinzufügen, um die korrekten Icon-Sets zu einem Set zu bündeln, das als einziges ImageAsset markiert ist:

    %Vor%
  • Hinzufügen leerer Bilddateien zum TestAppIcons.appiconset -Katalog? Dies funktioniert nicht, die Auftragssymbolsätze werden in den Ausgabeordner kopiert undefiniert

darvids0n 23.10.2013, 07:06
quelle

1 Antwort

2

Ich habe das obige Skript cp benutzt, das mein Problem im Wesentlichen gelöst hat.

Weitere Informationen, die anderen helfen können:

Sie können sich nicht darauf verlassen, dass XSAppIconAssets und XSLaunchImageAssets aktiviert sind, nachdem Sie einen Pre-Build-Plist-Kopierschritt ausgeführt haben. Xamarin Studio scheint die Werte zu verwenden, die in Info.plist am Anfang des Buildprozesses vorhanden sind.

Asset-Kataloge funktionieren folgendermaßen unter der Haube:

  • Im Allgemeinen werden Katalogbilder in die .app in der Form CatalognameModifiers.ext (z. B. [email protected] ) kopiert.
    • Beim Starten von Images wird der Katalogname dem Schlüssel UILaunchImages in Info.plist zugewiesen, und das Betriebssystem übernimmt das transparente Nachschlagen von
    • Bei App-Symbolen werden die Symbole in CatalognameDimensions.ext , einschließlich 57x57 (zuvor einfach Icon.png / [email protected] ) umbenannt. Diese Namen werden Arrays unter CFBundleIcons und% co_de zugewiesen % Schlüssel in CFBundleIcons~ipad

Als Ergebnis der obigen Umbenennung müssen Sie den Katalognamen angeben, nicht den 'Objektnamen', wie erwähnt hier . In meinem Fall war ich verwirrt über Startbilder, die plötzlich nicht in der App erscheinen (meine App bewegt sich von einem Begrüßungsbildschirm zu einem Lade-Spinner über das Splash-Bild). Die Lösung änderte den Code, um Info.plist anstelle von UIImage.FromBundle("LaunchImages") anzufordern. Beachten Sie, dass Sie für das iPhone 5 derzeit "Default" anfordern müssen, um das richtige Bild zu erhalten.

    
darvids0n 25.10.2013, 05:22
quelle