XCodepath中没有有效的编译故事板

我有一个通用的XCode项目(ObjC)的iPad和iPhone与子项目,其中包含一个故事板。 子项目是一个已经添加到主项目的静态库。 包含在这个子项目中的是一个包含bespoken storyboard的包。

无论我点击某个button的应用程序,故事板需要加载;

[UIStoryboard storyboardWithName:@"UIControls.bundle/Config" bundle:nil]; 

这对iPhone(设备和模拟器)来说工作得很好,但是每当我尝试运行一个iPad(设备或模拟器)的项目时,我都会收到以下错误;

 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'There doesn't seem to be a valid compiled storyboard at path... 

那是什么? 该项目是一个普遍的项目,为什么iPad不能find故事板?

回答我自己的问题;

捆绑目标不通用时出现此错误。 因此,请确保套件的构build设置中的“目标设备系列”已设置为“iPhone和iPad”。

在这里输入图像说明

刚刚将一个项目从通用目标切换到iPad,以及从iOS 9.0到iOS 7.1的部署目标后,碰到了这个问题。

解决scheme是在故事板上禁用“使用大小类”,只保留iPad的大小。

要打开此checkbox,请在项目导航器中打开故事板,然后select然后显示文件检查器(第一个图标),然后向下滚动到界面生成器文档标题。

我从一个自定义的Cocoapod使用故事板,它一直崩溃

似乎没有一个“有效的编译故事板”的path…

在受影响的故事板中,在Interface Builder文档中,我将“Builds for”值从“iOS 7.0或更高版本”切换到“Project Deployment Target”(9.0版本),这对我来说是个窍门。

我很抱歉我以前的评论。
我不知道为什么它不起作用,但目前我通过以下步骤解决了这个问题:

  1. 转到项目目标 – >信息,然后删除主要故事板文件基本名称主要故事板文件基本名称(iPad)的 KeyValue对象。
  2. 为确保完全删除,请转至Info.plist文件并validationKeyValue对象在那里不存在。 如果是,那么也从那里删除。
  3. 从Xcode项目中删除对故事板的引用。
  4. 通过右键单击Xco​​de中的项目 – >将文件添加到project_name ,将复制项目添加回项目,勾选复制项目(如果需要)创build组和项目目标选项。
  5. 通过添加先前删除的KeyValue对象,在Project Target – > Info中为iPhone和iPad设置Storyboard名称。

从现在开始Storyboards和以前一样工作!

我试图解决这个问题2天没有任何希望,直到我发现它也没有打开sqlite数据库文件,并且之后,这个数据库失败后,一切都损坏了。 那是我的情况。 所有这些都是一个记忆问题,即使ARC设置数组或字典后,完成为零;

在我们的例子中,我们正在运行一个shell脚本来执行XCode的一个命令行工具ibtool

 ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target 6.0 --output-format human-readable-text --compile ./Build/Release-iphonesimulator/TestApp.app/TestStoryboard.storyboardc ./Resources/TestStoryboard.storyboard --sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk 

虽然它似乎运行没有错误,它实际上产生了一个空的storyboardc目录。 将最小部署目标升级到8.0会生成一个正确构build的storyboardc ,其中包含一个Info.plist文件。 当IBTool失败/产生一个空的目录时,我肯定认为它应该实际上失败,并停止编译,否则一切看起来正确设置和正确,实际上不是。

所以是的,我们的解决scheme是升级我们的应用程序的最低部署目标。

由于状态栏样式的故事板颜色发生更改,并且在项目设置中未更改,所以出现此问题

对我来说解决方法是:

我用这个代码来加载一个新的视图控制器 – [UIStoryboard storyboardWithName:@“UIViewController”bundle:nil];

首先我试过 – [UIStoryboard storyboardWithName:@“UIViewController”bundle:[NSBundle mainBandle]];

但没有幸运,最后我改变了这个代码:

[selfsegueWithIdentifier:@“Segue”sender:self];

这也有帮助,也许它也可以帮助别人。