2015-02-11 32 views
3

我有一个非常简单的单个视图应用程序,我需要将其转换为库。可以将故事板附加到静态库

我相信我已经到了正确的开始去我的项目设置,然后添加一个Cocoa Touch静态库。做完这些之后,我将ViewController.h,ViewController.m和Main.storyboard文件移动到新的库目录中。

然后我去了我的应用程序项目设置,并将我的新库添加到“Link Binary With Libraries”。然后,在常规选项卡下,我将主界面设置为无,因为我已将故事板移至新库目录。

然后我去我的图书馆项目设置,并将Main.storyboard添加到复制文件。最后,我删除了在添加库时创建的两个默认的.h和.m文件,然后将ViewController.m文件添加到库编译源。

该应用程序加载一个空白屏幕并发出警告,因为它无法访问故事板上的任何输入。如何让图书馆加载故事板或者这是完全错误的?

+0

我刚刚指向本指南,似乎它可能会有所帮助。 http://www.galloway.me.uk/tutorials/ios-library-with-resources/所以我现在正在经历它。 – Cvongrim 2015-02-11 21:06:57

回答

3

您需要确保应用程序(不是库)正在复制故事板。

您应该为您的资源建立一个resource bundle(以.bundle结尾的压缩文件)。

如果您真的想要查看一个文件Embedded Frameworks,那么您可以尝试一些黑客技巧。

尽管框架是对库的改进,但Xcode忽略了框架中包含的任何资源。所以如果你的框架中有xib,图像,声音或其他文件,Xcode将不会看到它们。嵌入式框架是诱使Xcode查看包含的资源的一种方式。

您可以看到结构here

KFData.embeddedframework 
├── KFData.framework 
│ ├── Headers -> Versions/Current/Headers 
│ ├── KFData -> Versions/Current/KFData 
│ ├── Resources -> Versions/Current/Resources 
│ └── Versions 
│  ├── A 
│  │ ├── Headers 
│  │ │ ├── .. 
│  │ ├── KFData 
│  │ └── Resources 
│  │  ├── ACKNOWLEDGEMENTS 
│  │  ├── Info.plist 
│  │  ├── LICENSE 
│  │  ├── KFData.bundle 
│  │  │ ├── .. 
│  │  ├── KFData.xcconfig 
│  │  └── VERSION 
│  └── Current -> A 
└── Resources 
    ├── KFData-Acknowledgements -> ../KFData.framework/Resources/ACKNOWLEDGEMENTS 
    ├── KFData-License -> ../KFData.framework/Resources/LICENSE 
    ├── KFData-Version -> ../KFData.framework/Resources/VERSION 
    ├── KFData.bundle -> ../KFData.framework/Resources/KFData.bundle 
    └── KFData.xcconfig -> ../KFData.framework/Resources/KFData.xcconfig 
+0

关于“黑客”链接 - 这个答案帮了我一些,但我不得不[添加一个PR](https://github.com/kstenerud/iOS-Universal-Framework/pull/218)到链接回购与Xcode 7.3.1上的故事板一起工作 - 在这里发布,因为该项目不再维护,但仍然为我工作(与我的修复)。 – manroe 2016-06-21 21:05:53