我有一个 ios 应用程序,我正在修改它,以便它可以作为静态库简单地插入到一系列其他应用程序中。但是,我还需要拥有所有相应的资源,因此我创建了一个自定义捆绑包来包含这些资源。该捆绑包包括所有选项卡栏图像、可本地化字符串、默认图像,以及对于这个问题最重要的故事板文件。当我运行应用程序时,它无法在自定义捆绑包中找到故事板文件。
我的项目布局如下: 嗯...好吧,看来在我的声誉得分增加之前我无法发布图像,而且由于我是第一次...我会尽力描述它。
将静态库项目作为子项目拖入主项目中。静态子项目包括 2 个目标:库(生成 libOMPhotoGalleryLibrary.a 文件)和libraryResources(创建 OMPhotoGalleryLibraryResources.bundle 文件)。资源构建阶段的复制捆绑资源部分包括(以及一堆图像和字符串文件):
然后,主项目在“链接的框架和库”部分中包含子项目的静态 .a 文件,并且自定义捆绑包包含在其复制捆绑包资源中。
当我运行该项目时,我收到消息:在捆绑 NSBundle 中找不到名为“MainStoryboard_iPhone”的故事板
好的,这并不完全出乎意料,因为我需要弄清楚如何告诉应用程序在自定义包中查找。
作为调试练习,我(暂时)将主项目中的引用直接添加到故事板文件中,并且可以让一切正常工作。因此,我知道静态库工作正常,并且捆绑包已部署,图像和可本地化字符串已部署并可访问。因此,在删除主项目中的临时引用后,运行时将无法再找到故事板文件。
我尝试将主项目的信息部分中的故事板文件名调整为以下各项,但无济于事:
OMPhotoGalleryLibraryResources.bundle/MainStoryboard_iPhone
OMPhotoGalleryLibraryResources.bundle/en/MainStoryboard_iPhone
OMPhotoGalleryLibraryResources.bundle/en.lproj/MainStoryboard_iPhone
我还在主项目的应用程序删除中尝试了几种编程方法,但也没有运气。因此,我不确定如何告诉应用程序在 OMPhotoGalleryLibraryResources.bundle 中查找故事板文件。故事板加载后,我可以成功读取此捆绑包中的所有其他文件。