我可以将故事板附加到静态库吗
Can I attach a storyboard to a Static Library
我有一个非常简单的单视图应用程序,我需要将其转换为一个库。
我相信我正确地开始了我的项目设置,然后添加了一个 Cocoa Touch 静态库。这样做之后,我将 ViewController.h、ViewController.m 和 Main.storyboard 文件移动到新的库目录。
然后我转到我的应用程序项目设置并将我的新库添加到 "Link Binary With Libraries"。然后在常规选项卡下,我将主界面设置为空,因为我已将故事板移动到新的库目录。
然后我转到我的库项目设置并将 Main.storyboard 添加到复制文件。最后,我删除了添加库时创建的两个默认 .h 和 .m 文件,然后将 ViewController.m 文件添加到库编译源中。
应用加载空白屏幕并发出警告,因为它无法访问故事板上的任何输入。我如何让库加载情节提要,或者这完全错误?
您需要确保应用程序(不是库)正在复制故事板。
您可能应该为您的资源构建一个 resource bundle(一个以 .bundle 结尾的压缩文件)。
如果您真的想专注于一个文件,可以尝试一种 hack,Embedded Frameworks。
Although frameworks are an improvement over libraries, Xcode ignores any resources contained within frameworks. So if you have xibs, images, sounds, or other files in your framework, Xcode won't see them. An embedded framework is a way to trick Xcode into seeing the included resources.
可以看到结构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
我有一个非常简单的单视图应用程序,我需要将其转换为一个库。
我相信我正确地开始了我的项目设置,然后添加了一个 Cocoa Touch 静态库。这样做之后,我将 ViewController.h、ViewController.m 和 Main.storyboard 文件移动到新的库目录。
然后我转到我的应用程序项目设置并将我的新库添加到 "Link Binary With Libraries"。然后在常规选项卡下,我将主界面设置为空,因为我已将故事板移动到新的库目录。
然后我转到我的库项目设置并将 Main.storyboard 添加到复制文件。最后,我删除了添加库时创建的两个默认 .h 和 .m 文件,然后将 ViewController.m 文件添加到库编译源中。
应用加载空白屏幕并发出警告,因为它无法访问故事板上的任何输入。我如何让库加载情节提要,或者这完全错误?
您需要确保应用程序(不是库)正在复制故事板。
您可能应该为您的资源构建一个 resource bundle(一个以 .bundle 结尾的压缩文件)。
如果您真的想专注于一个文件,可以尝试一种 hack,Embedded Frameworks。
Although frameworks are an improvement over libraries, Xcode ignores any resources contained within frameworks. So if you have xibs, images, sounds, or other files in your framework, Xcode won't see them. An embedded framework is a way to trick Xcode into seeing the included resources.
可以看到结构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