Ios XCode路径处没有有效的已编译故事板

Ios XCode路径处没有有效的已编译故事板,ios,objective-c,xcode,storyboard,Ios,Objective C,Xcode,Storyboard,我有一个针对iPad和iPhone的通用XCode项目(ObjC),其中有一个子项目包含一个故事板。 子项目是已添加到主项目的静态库。此子项目中包含一个包含bespoken情节提要的捆绑包 当我点击应用程序的某个按钮时,故事板需要加载 [UIStoryboard storyboardWithName:@"UIControls.bundle/Config" bundle:nil]; 这对于iPhone(设备和模拟器)来说非常好,但每当我试图用iPad(设备或模拟器)运行项目时,我都会遇到以下错误

我有一个针对iPad和iPhone的通用XCode项目(ObjC),其中有一个子项目包含一个故事板。 子项目是已添加到主项目的静态库。此子项目中包含一个包含bespoken情节提要的捆绑包

当我点击应用程序的某个按钮时,故事板需要加载

[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找不到故事板呢?

回答我自己的问题

当捆绑包目标不是通用的时,会出现此错误。 因此,确保捆绑包构建设置中的目标设备系列设置为iPhone和iPad


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

  • 转到项目目标->信息,然后删除关键主情节提要文件库名称和主情节提要文件库名称(iPad)的KeyValue对象
  • 要确保已完全删除,请转到Info.plist文件并验证那里不存在KeyValue对象。如果是,则也从中删除
  • 从Xcode项目中删除对情节提要的引用
  • 在Xcode->addfilestoproject\u name中右键单击项目,将情节提要添加回项目,如果需要,勾选复制项,创建组和项目目标选项
  • 通过添加以前删除的KeyValue对象,在Project Target–>Info中设置iPhone和iPad的故事板名称
    从现在起,故事板的工作方式与以前一样

    我花了两天的时间试图解决这个问题,但毫无希望,直到我发现它也没有打开sqlite DB文件,并且在数据库出现故障之后,所有东西都被破坏了。这就是我的情况。所有这些都是一个内存问题,即使弧集数组或字典在完成后为零

    在将项目从通用目标切换到仅iPad,部署目标从iOS 9.0切换到iOS 7.1之后,遇到了这种情况

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


    要选中此复选框,请在“项目导航器”中打开情节提要,然后选择“显示文件检查器”(第一个图标),并向下滚动到Interface Builder文档标题。

    我使用的是自定义CoCoPapod中的情节提要,它一直与

    路径上似乎没有“有效的已编译故事板”


    在受影响的情节提要中,在Interface Builder文档下,我将“Builds for”值从“iOS 7.0或更高版本”切换到“Project Deployment Target”(即9.0),这为我带来了好处。

    在本例中,我们运行了一个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会生成一个正确构造的
    storyboard c
    ,其中包含一个
    Info.plist
    文件。当IBTool失败/生成一个空目录时,我肯定认为它实际上应该失败,并停止编译,因为否则一切看起来都是正确设置和正确的,实际上不是


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

    我遇到这个问题是因为状态栏样式的情节提要颜色发生了变化,而项目设置没有发生变化

    对于me,解决方案是:

    我使用这段代码加载了一个新的视图控制器-[UIStoryboard Storyboard with name:@“UIViewController”bundle:nil]

    首先我尝试了-[UIStoryboard Storyboard,名称:@“UIViewController”bundle:[NSBundle mainBandle]]

    但运气不好,最后我将此代码更改为:

    [self-PerformsgueWithIdentifier:@“Segue”发送方:self]


    它帮助了,也许它也能帮助别人。

    也有同样的问题。在
    链接Bindary与库中添加
    libc++.tbd

    解决了这个问题:
    [UIStoryboard storyboard with name:@“UIControls.bundle/Config”bundle:[NSBundle mainBundle]]不,也不走运。您是否尝试过只使用Config而不是路径“?或者只使用Config and as name并从您的UIControls.bundle而不是mainbundle创建一个bundle属性?事实上,不管怎样,一位同事前来救援。捆绑包本身不包括目标设备系列中的iPad。谢谢你们!谢谢我被这件事弄疯了。我面临着同样的问题。可能的出路是什么?