Xamarin.iOS: Storyboards Problem nach Up-grade auf XCode 7.0
Inhaltsverzeichnis
Symptom
Sie haben ein Upgrade für die komplette Xamarin-Umgebung durchgeführt. Dabei haben Sie auf Ihrem Windows-Entwicklungsrechner die Xamarin.iOS Version auf 9.0 hochgezogen, und auf Ihrem Mac- Entwicklungsrechner haben Sie XCode auf die Version 7.0 hochgezogen.
Nun können Sie Ihre Storyboards in VisualStudio nicht mehr öffnen. Es lässt sich auch kein Build mehr aus VisualStudio erzeugen. Ein Xamarin.iOS Downgrade auf 8.10 hilft auch nicht mehr.
Ursache und Lösung
Es gibt da tatsächlich Kompatibilitätsprobleme, die im Oktober 2015 auch in offiziellen Release-News von Xamarin teilweise kommuniziert wurden:
https://forums.xamarin.com/discussion/50971/stable-release-xamarin-ios-9-0-ios-9-0-upstream-release/p1 [iOS] [Designer] The Xamarin iOS designer does not yet support Xcode 7 features. Storyboards will fail to load in designer with "There was a problem parsing the XML" when attempting to use new iOS 9 (Xcode 7)
Zuerst prüfen Sie bitte genauer, welche Fehlermeldungen in den Logs hinterlassen wurden. Xamarin-Logs finden Sie auf dem Mac über Finder:
Finder -> Menü „Gehe zu“ –> Menü „Gehe zu“ -> eintippen „~Library“ und dann navigieren zu: /Logs/Xamarin/MonoTouchVS/mtbserver.log
Möglicherweise finden Sie dort im Log einen Eintrag wie:
Exception: Exception type: Foundation.ObjCException NSInvalidArgumentException: *[NSInvocation _invocationWithMethodSignature:frame]: method signature argument cannot be nil
Und / oder Fehlermeldung:
Exception: Exception type: System.IO.DirectoryNotFoundException. Could not find a part of the path /Users/MyUser/Library/Caches/Xamarin/mtbs/builds/MyApp/ee246a90f/Resources/UrlHelper.xcassets/AppIcons.appiconset/Contents.json
Einleuchtend, es klingt nach fehlenden App-Icons! Gerne können Sie versuchen, zunächst die angeblich fehlenden Icons nachzupflegen, z.B. wie es bei Developer.Xamarin beschrieben ist:
https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_images/app-icons/
Aber auch das hilft i.d.R. nicht, da es da um einen Bug geht. Folgender Workarround kann dagegen helfen:
1) .cproj-Datei Ihres Projektes manuell im Editor öffnen
2) Folgenden XML-Knoten komplett löschen:
<ItemGroup> <ImageAsset Include="Resources/UrlHelper.xcassets/AppIcons.appiconset/Contents.json"> <InProject>false</InProject> </ImageAsset> <ImageAsset Include="Resources/UrlHelper.xcassets/LaunchImages.launchimage/Contents.json"> <InProject>false</InProject> </ImageAsset> </ItemGroup>
3) .cproj-Datei abspeichern
Falls die .cproj sich nicht abspeichern lässt, stellen Sie sicher, dass Sie den Editor mit der Option „als Administrator“ gestartet hatten und erst danach die betroffene .cproj-Datei im Editor geöffnet hatten.
Und nun können Sie nach dem Löschen des fehlerhaften Xml-Knoten:
- Storyboards im VisualStudio-Designer öffnen
- Build erstellen
- App auf dem Simulator laufen lassen
- und endlich wieder weiter arbeiten!
Weitere Informationen
https://www.max-it.de/techcorner/Xamarin.iOS:_Storyboards
Links und Quellen
https://forums.xamarin.com/discussion/50971/stable-release-xamarin-ios-9-0-ios-9-0-upstream-release/p1
http://forums.xamarin.com/discussion/49839/suddenly-cant-build-error-performing-task-actool
https://forums.xamarin.com/discussion/52806/error-in-storyboard-after-xcode-upgrade
Kontakt
Wenn Sie Fragen oder Anmerkungen zu diesem Artikel haben, melden Sie sich bitte bei uns: mailto:techcorner@max-it.de.
Über m.a.x. Informationstechnologie AG:
Als etabliertes Münchner Systemhaus zeichnen wir uns seit 1989 als verlässlicher IT-Partner mittelständischer und großer Unternehmen aus. Unser Portfolio reicht von IT- Services über individuelle Softwareentwicklung bis hin zur ERP-Beratung.
Tags
Xamarin, App-Entwicklung, iOS Version, XCode Version, Upgrade, Kompatibilität, Storyboards, Build, Fehler