I lost half a day realizing this, and I do not see a direct solution online.
I created the iOS CocoaTouch Framework. I have private and public classes and everything works fine. The problem is when I add the .xib file inside this frame .
Inside my frame, I want to instantiate an .xib file, and I get a message:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/dino/Library/Developer/CoreSimulator/Devices/FEDECDC2-D4EA-441E-B53B-329A5B3DFB7A/data/Containers/Bundle/Application/78CEC01F-4C36-4143-A7D6-DDE6CCAC801B/MyApp.app> (loaded)' with name 'NUInAppMessageView''
I heard that .xib files cannot be contained in a static library, but I think they should be accessible inside the frame.
My framework target contains βCopy Bundle Resourcesβ and this .xib file was automatically added when I created it inside the framework project.

I read a few places where resources should be added to a separate .bundle target, but when creating new goals there is no βbundleβ option, and I think this is a form of old static library days.
This is the code that I use to initialize my view (inside the frame):
NSBundle * frameworkBundle = [NSBundle bundleForClass:[self class]];
I tried to break this down into more method calls and realized that the thread itself was being created:
UINib *nib = [UINib nibWithNibName:@"NUInAppMessageView" bundle:frameworkBundle]; // fine (not nil) NSArray *objects = [nib instantiateWithOwner:self options:nil]; // <-- CRASH
I have no more ideas. I tried with the Clean project by deleting the derived data, but they don't seem to do the job.
Did I miss something?