Building projects for b2b, enterprises – or for any client for that matter – like I do, you might also have to upgrade the projects to the latest iOS versions and upgrade your development environment to OSX 10.10 (Yosemity) along with the Xcode 6.1 IDE.
That’s all fine, but there are some perks when upgrading those older (iOS 6/7) apps to get along with the latest and greatest. In this post I’ll show you an issue with the storyboards in the projects I was updating …
Your Storyboard file doesn’t open in XCode anymore and your project doesn’t compile
This one is a little sneaky; opening the file in Xamarin’s iOS Designer won’t break things but the XCode generated project won’t compile.
It appears that Apple wants us to put all resources (like icons, images, etc..) in the root of the XCode project!? If your storyboard isn’t passing this rule, you can bet that you’re pointing to images contained in some subdirectory (\Images, \Res\img, \Whatever\) and that just won’t fly anymore 🙁
In Xcode you’d normally create logical folders that point to the same map on your drive but show the files in different folders in the XCode project. Ya know, just to keep things neat and tidy. Since the XCode project is being generated from the Xamarin project when you create a clean build that is not an option.
You can be glad that the guys at Xamarin give us the possibility to use the Resources folder.
As I mentioned in this StackOverflow answer (source: BrendanZagaeski on the Xamarin Forum)there are a couple of things you could do. I’d recommend placing all the images into the Resources subfolder and changing the Storyboards file references with find all – replace functionality from your editor to update things fast and clean without starting to rewrite code (and possibly add coding issues to the whole).
Hope this helps you and/or saves you some time!