Before setting Host Application to none, I had this line of code in my unit tests which gave me no problems.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
After setting it to None, I got this error.
<unknown>:0: failed: caught “NSInvalidArgumentException”, “Could not find a
storyboard named ‘Main’ in bundle NSBundle
</Applications/Xcode.app/Contents/Developer/Platforms/
iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/Developer/usr/bin> (loaded)”
I found this post which gave me the solution. I just specified the bundle of the class I was loading the view controller in like this.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main"
bundle:[NSBundle bundleForClass:[self class]];
I'm just wondering why this happens. What is happening when I remove the Host Application that causes resources from the main bundle to get excluded?
Nevermind I figured out why. Documentation for mainBundle says
Returns the NSBundle object that corresponds to the directory where the current application executable is located.
Since I removed Host Application, my project couldn't find main bundle directory because there's no application executable.