我可以将故事板附加到静态库

时间:2015-02-11 20:30:22

标签: objective-c iphone xcode storyboard static-libraries

我有一个非常简单的单一视图应用程序,我需要转换为库。

我相信我没有正确开始进入项目设置,然后添加Cocoa Touch静态库。在这之后我将ViewController.h,ViewController.m和Main.storyboard文件移动到新的库目录。

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

然后我转到我的库项目设置并将Main.storyboard添加到Copy Files。最后,我删除了添加库时创建的两个默认的.h和.m文件,然后将ViewController.m文件添加到库编译源。

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

1 个答案:

答案 0 :(得分: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