我有一个非常简单的单一视图应用程序,我需要转换为库。
我相信我没有正确开始进入项目设置,然后添加Cocoa Touch静态库。在这之后我将ViewController.h,ViewController.m和Main.storyboard文件移动到新的库目录。
然后我转到我的应用程序项目设置并将我的新库添加到" Link Binary With Libraries"。然后在常规选项卡下,我将主界面设置为空,因为我已将故事板移动到新的库目录。
然后我转到我的库项目设置并将Main.storyboard添加到Copy Files。最后,我删除了添加库时创建的两个默认的.h和.m文件,然后将ViewController.m文件添加到库编译源。
该应用加载一个空白屏幕并发出警告,因为它无法访问故事板上的任何输入。如何让图书馆加载故事板或者这完全错了?
答案 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