在我的程序,我现在有我所有的代码分离成一个静态的图书馆,以使其更容易设置的模式项目的目标为实际的应用程序,并为单元的测试我的代码。这个问题是,我想把我的大多数xib文件中的静态图书馆以及,但看来,当我跑我的应用程序和尽量参考的xib它不能找到它,除非它被包括在实际应用的目标,而不是静态的图书馆的目标。是否有可能xib文件和其他资源包括在静态图书馆,可以引用的代码,在同样的图书馆,和如果是这样,怎么样?

有帮助吗?

解决方案

不,它不可能的,因为一个静态的图书馆是不一样的"捆绑".

一束是一个目录,该目录可能包含的所有方式的文件,包括资源文件(xib)、可执行的文件和静态的图书馆。它存在于文件系统作为一个集团的单独文件。

一个静态的图书馆是一个单一的文件,该文件包含类、编码和变量是相互关联在一起,通过图书馆的创建者。它没有"含有"其他文件,它基本上是一个数据库的编码。

虽然这将有可能把数据xibs在那里,工业化就没有办法知道它在那里的,因为它看起来他们作为单独文件在文件系统。

在Mac OS,您可以创建一个"框架",这实质上是一种捆绑的代码、资源、设置等其可以重复使用,通过多个项目。但是,苹果似乎不支持定义的框架内建立的iPhone操作系统。

捆绑 https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1

静态图书馆 http://en.wikipedia.org/wiki/Static_library

其他提示

回复意见(不适合在评论框)

不用担心,我一直想要做差不多同样的事情,你的最后一个星期-我想船上的一个"框架"的xibs,包括文件和。libs到一个客户而不给予他们的所有源代码。我不能找到一个很好的方式来做到这捆绑。

无论出于何种原因,苹果正在特别迟钝的关于这个-我看不到他们的一个原因是这样的情况下,静态图书馆(动态库公平足够的).

我的解决方案现在是对手创建一揽子文件夹"Foo"包含以下子文件夹:

  1. "包括"->。h文件在这里
  2. "分辨率"->。xib文件在这里
  3. "lib"->包含"iphoneos"&"iphonesimulator"每个子文件夹与libFoo.一个

然后zip这个送给客户。客户然后可以:

  1. 解压包装在任何他们喜欢。
  2. 可添加"分辨率"下的文件夹的资源组。
  3. 更改以下目标设置:
    其他接头的标志=-Objc lfoo
    标题搜索的路径=/包括
    库搜索的路径=/lib/$(PLATFORM_NAME)

我可以自动化软件包建立一些步骤建立在我的结束,但客户坚持四略繁琐的步骤得到设立。

我找到此一完美的解决方案,所有上述自动和更确实 https://github.com/kstenerud/iOS-Universal-Framework 其一个Xcode插件

它的工作对我来说就像一个魅力, 它仅适用于4的XCode和上述

当然可以。添加一个XIB文件在您的图书馆,你会为任何正常项目做。然后,在库项目目标添加在复制文件部分的厦门国际银行文件,某文件一起。 在您的主项目,你正在使用的库,拖放其中对于库某文件所在的XIB文件。

在分发您也可以创建一个SDK。 JSON.framework在他们的SVN这样做了,我成功地复制此。你可以看到这是如何在 http://hltypes.svn.sf.net/ 在做所述hltypes-ios.xcodeproj和在项目中的iOS文件夹。

主要是你需要“安装”到你的build文件夹,然后你需要复制的特殊格式SDKSettings.plist。然后将路径添加到SDK到应用程序项目“额外的软件开发工具包”列表中。综合软件开发工具包的缺点是重新启动的Xcode 3.x中,每当这种迷你SDK更新的需要,以及Xcode的对构建从苹果公司的基地SDK和迷你SDK创建了一个综合SDK坚持(这意味着你需要等待相当长一点)

应用程序项目仍需要具有的.xib和其他资源手动添加。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top