Error running google tool kit for mac unit test - iphone

I am trying to install google toolkit for mac, everything is setup as advised here : http://code.google.com/p/google-toolbox-for-mac/wiki/iPhoneUnitTesting
but when I try to compile I get this error
Terminating app due to uncaught
exception
‘NSInternalInconsistencyException’,
reason: ‘Could not load NIB in bundle:
‘NSBundle (loaded)’ with name
‘MainWindow’‘
Any suggestions..? what am I missing...?
*EDIT : * Solution is to add your .xib file to the unit test target you have.

Alternative solution is to modify your unit testing target to not try and load the MainWindow nib:
Open your unit testing Target's info page
Switch to Properties tab
clear the contents of the "Main Nib File" textbox (it will probably have "MainWindow" before you clear it).

You mean when you run, not when you compile?
Are you sure you've created the proper type of application? The MainWindow.xib file is created by Xcode when creating a new project.

Delete MainWindow.xib from the project-info.plist file.

Related

How to fix "Thread 1: Exception: "Could not find a storyboard named 'Main' in bundle NSBundle" error in Xcode 11.4 when I do not have Main storyboard?

I know there are many questions here relating to this error but none of them. quite fit my situation. I have made an Xcode project trying to create a Star rating UIView with CocaoPods and Cosmos. I am following a tutorial. I was told in the beginning to delete the main storyboard and delete "main" as the main interface. So far I have installed two Cocao Pods on my project through the terminal and I am now using a new workspace that the Cacoa pods created. Every time I run the simulator, my app crashes and I get the error mentioned above but I can't do anything because I have deleted the main storyboard. I have tried making a new one and re-coding and more but nothing works. In the tutorial, the guy ran the exact same code that I have and he just magically has a storyboard with stars on it that you can tap and change. I've done everything he has, how do I fix this?
Here is my info.plist
To delete Main.storyboard as the main interface you have to delete it from the Info.plist file too. Look for the property "Main storyboard file base name".

Could not find a storyboard named 'MainStoryboard_iPad'

I cannot run my project in simulator because i get this error:
Could not find a storyboard named 'MainStoryboard_iPad'
But the storyboard is there.
Thank you
I managed to solve this problem in my iPad App through the following steps:
Checking the Build Phases
Editing the Info.plist file to add the option "Main storyboard file base name (iPad)"
Just like in this picture:
In my case, the iPad storyboard file was already in the project, and testing the app worked until I introduced what seems to be an unrelated bug... I fixed this by changing the filename in xCode for the MainStoryBoard_iPad to MainStoryBoard_iPad1 and changing the TARGETS > Summary > iPad deployment Info > Main Storyboard entry. For good measure also verifying the same in -Info.plist file and Build Phases accordingly... similar to #daniel-lima.
Hopefully, this may help others that did not fix based on above notes. This started after I fixed a CoreData related bug in a category-file. The issue was reproducible on another machine... and this fixed it on both machines.
My issue was only on iOS 5. The resolution was found at http://need-bee.com/b/2013/08/could-not-find-a-storyboard-in-xcode-5-for-ios-5-0/
To summarize:
In Xcode, open each story board file and uncheck "Base" under localization on the right hand side. It will prompt you to move to English. Select ok. Once rebuilt my issue was resolved.
Click target and there is Mainstoryboard with textfield. Click and select your storyboard named "Mainstoryboard_iPad" and clean your project and then run it.
Remove from the project all the StoryBoards and add all of them again, for me worked.
I got this problem today as well, for me, a Product > Clean solved the problem. After that, I can rebuild the app and run it inside the Simulator without any issue.
I was encountering the same problem as in the original question but for me there wasn't really a bug - rather, the storyboard which appeared in the project navigator as "Main.Storyboard" actually had a base name of "Main" in info.plist. So my attempts to use "MainStoryboard" and "Main.Storyboard" in my code were generating a crash, but once I changed it to "Main" it worked just fine - didn't need any of the elaborate workarounds above.
If the failure occurs after launch, check to make sure any references to a storyboard via storyboardWithName: refers to the correct name. You may have an incorrect name hardcoded in your binary.
In my case, I renamed the storyboard (based on a suggested workaround on stack overflow), but forgot to rename references to the storyboard in code. The symptoms were that changes to the storyboard weren't visible in the running application, but once I reset the simulator, the app stopped working completely. In that case, the old, stale copy of the storyboard was around at first and was used; once the simulator was reset, the stale copy disappeared and the "could not find a storyboard" message started appearing.

NIB in bundle is missing with name MainWindow-iPad

I have a Tab bar application having 6 tabs. When I debug and runthe app, it crashes by giving following message in console :
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/priyachaturvedi/Library/Application Support/iPhone Simulator/4.2/Applications/7C5CE523-A843-443A-9B0B-BDF2336EA7D0/Aljex Mobile-iPad.app> (loaded)' with name 'MainWindow-iPad''
I have already searched out the answersin the following links
How to fix iPhone Simulator trying to launch a Nib that isn't there?
How are XIBs loaded for localized apps?
and
Could not load NIB in bundle
and many other but nothing worked for me.
any one have any idea why this is happening to me???
Thanks in advance !!!
Suppose you already checked filenames and so on. So I exclude hypothesis of filenames mismatch. Where might be a problem? You might by mistake excluded MainWindow-iPad.xib from being copied into your app during build (linking) time. How to check that?
Insure MainWindow-iPad.xib is in your project.
In project in section Products select your app and in context menu choose Show in Finder. In Finder in context menu choose Show Package Contents. Ensure your MainWindow-iPad.xib is there. If it isn't there, go to step 3. If MainWindow-iPad.xib is in package, double check file names, the problem seems to be in filenames mismatch.
If it isn't there find MainWindow-iPad.xib in your project, select it and ensure checkbox of your target in Inspector isn't deselected. You might did that by mistake. Check this checkbox and rebuild.
I have the same problem too. I realise that when you enter the name of the xib file, it has to be "MainWindow-ipad" without the xib extension in your app targ

How to create Resource only Bundle for iPhone

We are experimenting with delivering our nibs in language specific bundles. For a couple of different reasons this would help us out.
My questions are around setting up a resource only bundle.
When I add a new bundle in xcode through the “New Project - Framework & Library - Bundle” menu xcode will add a new xcodeproj file. Is this correct? I thought a bundle was just a directory with a .bundle extension.
If I want to only have nib files in my bundle do I still need an executable file and a info.plist file?
So far I have manually created a bundle directory and added nib files. I and can access it with
NSBundle bundleWithPath
Not sure if it's loaded correctly, but the bundleWithPath method does not return nil.
But when I try to open a nib file from the bundle I get the following error:
* Terminating app due to uncaught exception
'NSInternalInco nsistencyException', reason: 'Could not load NIB in
bundle: 'NSBundle
(not yet loaded)' with name 'Nib''
And I have added the bundle to "Copy Bundle Resources".
Thanks for any info. I'm sure I'm making this harder than it should be.
EDIT: I went back and for a test added the line below to look for the xib instead of the nib. It works for xib but not for nib. I think this means that that the xib maybe is not getting compiled.
[languageBundle pathForResource:#"TestNib" ofType:#"xib"];
No, this is not correct. You should add a new target to your current project instead of creating a new project.
You don't need an executable, but you will probably need an Info.plist for it to be a proper bundle (it might not be strictly necessary, but it won't hurt to have one).
Now, is there a reason you're putting your nib files in a bundle instead of in .lproj directories? Also, you'll need to show some of your actual code before we can offer further help.

Could not load nib in bundle on iPhone device

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. The main view is shown but if I try to open a secondary view, the application crashes.
On the iPhone log (I installed the iPhone configuration utility to see the console [is the only way to see the log from iPhone?]) I can see this error:
Could not load NIB in bundle
But, on the simulator it works fine. What's wrong? Any ideas?
I had the same problem and fixed it like so:
Open XCode Target
Click the "Build phases" tab
Click the "Copy bundle resources" section
Click the +
Add the missing Nib file
I've found that sometimes the device is case sensitive and the simulator is not.
What'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:"
Don't use "SomeViewController.xib", just use "SomeViewController" without the ".xib" extension.
I had the same problem when invoking initWithNibName:#"MyViewController"
Changing the invocation to initWithNibName:NSStringFromClass([MyViewController class]) worked well
You can try these things:
Make 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.
I finally managed to solve that issue with these two steps:
In 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 :(
For me, the problem was exactly what FreeAsInBeer said: the nib somehow was missing from the bundle, whereas it had been there before and worked properly in previous versions of the app.
To fix the problem, I did the following:
Select the project in the Project Navigator.
In the project settings select Build Phases.
Expand Copy Bundle Resources.
Scroll down (if necessary) and click on the + button.
In the dialog that appears, click on the Add Other... button.
Browse for the missing .XIB file in the file system.
Build and Run... the missing nib should appear when you run it.
This is just what worked for me when I got that message. Your mileage may vary, since circumstances are not always the same for everyone, but I hope this helps someone who runs into this issue.
-Evan
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.
I was also moving a project from XCode 3 to 4.2. Changing the Path type did not matter.
I had the same error message.
My 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.
A simple mistake that might cause this error is trying to initWithNibName on an imported viewController when you are using a storyboard rather than individual Nib files. If this is the case then just init the controller instead of trying to init with a nib that doesn't exist, or init those fields with nil.
If Storyboard and no nib, change initWithNibName: bundle: to just be init OR initWithNibName:nil bundle:nil
For what its worth, I received this error when one of my tab bar buttons had the wrong class assigned to it.
I've got it to run with delete all of the localization from the xib
In the right window.
Maybe the file is in the localization folder.
I've the same problem. And my solution is remove all Localizations for the view.
I 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.
In 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.
I also had this problem when I loaded a child view controller from initWithCoder, which is a good place to initialise, but keep in mind you have to add it as an actual child AFTER the view has loaded.
So shift something like this:
[self addChildViewController: self.pageViewController];
[self.view addSubview: self.pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];
...out of your init method and into viewDidLoad. Not saying this is your problem in particular but this may be helpful to others.