测试目标设置'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.
自从我删除主机应用程序后,我的项目找不到主包目录,因为没有应用程序可执行文件。
在将 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.
自从我删除主机应用程序后,我的项目找不到主包目录,因为没有应用程序可执行文件。