I'm trying to test an app I'm developing on my iPhone. To do that I changed the target from Simulator to Device on Xcode. The application is correctly uploaded to the device and it works, or better, the main view is shown but if I try to open a secondary view, application crash.
On the iPhone log (I installed iPhone configuration utility to see the console [is the only way to see the log from iPhone?]) I can see that error:
"Could not load NIB in bundle"
but, on simulator it works fine. What's wrong? Any idea?
thanks, Andrea
Source: Tips4all, CCNA FINAL EXAM
I've found that sometimes the device is case sensitive and the simulator is not.
ReplyDeleteWhat's the filename of your xib?
or
Try uninstalling the app from the simulator and installing it again - the simulator might have an old file left over from a previous run of the app - have you renamed / moved the xib at all during development?
I had a similar problem and was getting the same error. Turns out I was using the full name of the xib file in the attributes panel under "NIB Name:"
ReplyDeleteDon't use "SomeViewController.xib", just use "SomeViewController" without the ".xib" extension.
I had the same problem and fixed it like so:
ReplyDeleteOpen XCode Target
Click the "Build phases" tab
Click the "Copy bundle resources" section
Click the +
Add the missing Nib file
I had the same problem when invoking initWithNibName:@"MyViewController"
ReplyDeleteChanging the invocation to initWithNibName:NSStringFromClass([MyViewController class]) worked well
You can try these things:
ReplyDeleteMake sure case is correct
Use xib filename without the ".xib" extension
Remove any -(dash) or other special chars, use _(underscore)
Remove the xib file from the project and add back to the Xcode project
Check the build settings and make sure deployment is changed to currect SDK
In my case, the xib simply wasn't being copied into the bundle. Once I added the xib into the "Copy Bundle Resources" step for the application target, everything went fine.
ReplyDeleteI finally managed to solve that issue with these two steps:
ReplyDeleteIn the view controller files inspector, remove any localization
(just for testing)
Ensure that you have checked the correct target membership
I don't know why it works on the simulator :(
I ran into the same problem. In my case the nib name was "MyViewController.xib" and I renamed it to "MyView.xib". This got rid of the error.
ReplyDeleteI was also moving a project from XCode 3 to 4.2. Changing the Path type did not matter.
For what its worth, I received this error when one of my tab bar buttons had the wrong class assigned to it.
ReplyDeleteI've got it to run with delete all of the localization from the xib
ReplyDeleteIn the right window.
Maybe the file is in the localization folder.
I had the same error message.
ReplyDeleteMy problem, however was that my language settings on my phone were set on "English" and the Region on "United Kingdom". However, the file that could not be loaded was placed in the de.lproj directory.
Moving the file into the root directory solved it.
I've the same problem. And my solution is remove all Localizations for the view.
ReplyDeleteI had exactly the behavior you described: works on simulator but get the "Could not load NIB in bundle" when running on the device, and the app remain stuck on the launch image.
ReplyDeleteIn my case the problem was about the MainWindow.xib file that Xcode automatically created with English localization. I am supporting English and Italian in my app and realized that I was missing the localized version of MainWindow.xib for the Italian language.
Because I had no need to localize this file (it's Xcode default to create it localized) I fixed the problem by simply removing the English localization, so the same file is used independently of the localization. Another way to fix the problem would be to add the missing localized version, if you need it.
The app was crashing on the device because my device is configured for Italian language. The simulator instead was set to English and this is why the app run correctly. Just to verify, I set the simulator to Italian language and the app crashed confirming the localization problem.