测试目标设置'Host Application'到None,然后找不到bundle资源

Set 'Host Application' to None for test target, then unable to find bundle resources

在将 Host Application 设置为 none 之前,我的单元测试中有这行代码,没有任何问题。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];

设置为None后,出现了这个错误。

<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)”

我发现 this post 给了我解决方案。我刚刚指定了 class 的包,我正在像这样加载视图控制器。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" 
bundle:[NSBundle bundleForClass:[self class]];

我只是想知道为什么会这样。当我删除导致主包中的资源被排除的主机应用程序时会发生什么?

没关系,我知道为什么了。 mainBundle 的文档说

Returns the NSBundle object that corresponds to the directory where the current application executable is located.

自从我删除主机应用程序后,我的项目找不到主包目录,因为没有应用程序可执行文件。