2013-03-07 70 views
1

我即将为多个客户端自定义项目。该项目使用CocoaPods和Storyboard。由于我期望解决一些错误,并在一路上为每个客户端在UI中进行一些更改,因此我想组织这些项目,如下所示: 1.将启动的iOS应用程序转变为已编译的静态库(不知何故) 2 。创建新的自定义应用程序。将其链接到静态库。 3.将原始Storyboard复制到新的自定义应用程序中。iOS应用程序编译为静态库

现在在“新”故事板中,我可以根据客户需求应用更改。 Storyboard引用中的每个ViewController作为Custom Class都有一个在原始应用程序(现在是已编译的静态库)中定义的类。这样我总是可以替换或扩展原始类,并将新的类设置为故事板中ViewController的自定义类。

这听起来不错。但我无法得到它的工作。 1.我设法从原始iOS应用程序中创建一个静态库,将二级目标添加到项目中作为静态库。经过与标题搜索路径,标志和链接框架挣扎后,我得到它编译(与LOT的警告) 2.我创建了一个新的项目,并链接静态库,但无法得到它编译。

我的问题是。 1.我是否以正确的方式做这件事? 2.如果我有一个带有相关头文件的静态库,并且我创建了另一个使用前面的静态库。如果我想将第二个创建的库用于新项目,是否必须将它与库和头文件链接起来?

+0

嗨,你有能力做到这一点吗? – ekeren 2013-11-12 17:43:12

+0

我决定将我的lib作为Pod来构建。当然,它需要大量的重复......但它确实有效。 – user1170896 2013-11-12 18:24:31

回答

0
  1. 它在理论上应该工作,虽然我个人会去创建一个静态的框架,而不是一个静态库的路线,因为该框架应更容易链接到,可以有不同的版本不同的架构,并在同一个包中包含标题。查看这个项目,为Xcode添加一个Framework项目类型:https://github.com/kstenerud/iOS-Universal-Framework。 (有人真的需要让苹果包括框架目标类型默认)

  2. 有人可以纠正我,如果我错了,但据我了解的事情:是的,你需要将两个库链接到最终执行编译库2对库1不结合库1的代码转换成库2.

我们需要得到更具体的信息的编译错误,以帮助您链接静态库到您的新项目。

+0

是的,当我写下这个问题时,我有点沮丧,并且没有深入详细地讨论错误。关键是,报告这些错误将是非常无用的,因为是特定于我的代码。基本上它总是关于没有找到的接口(这意味着头文件没有找到和/或加载),即使我全部检查了头部搜索路径。也许我的基于CocoaPods的项目结构给整个事情增加了更多的复杂性。 你能指点我的任何文档详细解释与图书馆(静态动态)框架等有关的世界吗? 谢谢 – user1170896 2013-03-08 08:43:13

+0

这不是你收到的具体错误信息,而是错误的类型,这将是一个很长的路要走。它是编译器错误(例如“未知函数:doStuff()”)还是链接器错误(例如“未解析符号:_doStuff”)。我没有一个好的官方文档页面;我从这本书中学到了大部分内容:http://amzn.to/XvvqhD。它们可以是等价的,框架只需要较少的工作就可以使用。看到这个SO帖子,http:// stackoverflow。com/questions/6245761 /差异之间的框架和静态库中的xcode4和如何调用它们 – Chris 2013-03-08 16:20:17

+0

它主要是接口没有定义的错误。即使连接了UIKit和CoreGraphics,我也得到CGFloat没有定义。但是我有另外一个想法:将原始应用程序源代码包装到Pod中,作为依赖项添加到所有Pod中。通过这种方式,我可以创建一个新的工作空间,并使用所有我使用的Pod和我自制的Pod。 – user1170896 2013-03-08 17:05:14