Xamarin.iOS: Storyboards Problem nach Up-grade auf XCode 7.0

Version vom 10. Februar 2016, 10:49 Uhr von Alar (Diskussion | Beiträge) (Weitere Informationen)

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://mittelstand.max-it.de/Managed-Services/Server-Applications

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