我目前正在构建一个应该在几个iOS项目内部使用的库,但也应该分发给访问我们的库服务的客户。图书馆本身完全由C ++代码组成,我基本上能够在iOS上用它创建应用程序。我的问题是创建一个可轻松分发的单个文件,可以发给客户,可以轻松安装它们,使用提供的标题,而不需要在链接时遇到我目前面临的麻烦。
我们的代码依赖于另外两个项目,即boost和websocketpp。对于boost,我使用脚本on github来生成框架。对于websocketpp,我将其导入XCode并使用this github project中的脚本来构建框架。我将两个框架作为依赖项添加到我的(潜在)框架中,并使用相同的脚本构建一个。
我有一个应用程序使用我的库作为子项目正常工作。即使将框架包含到项目中并在设备上运行它也能正常工作。到现在为止还挺好。
但是,尝试创建App项目的存档会导致几个问题和令人头疼的问题。
我的库似乎没有包含所有体系结构的代码。所以我尝试归档Framework项目,在构建脚本中进行少量修改后,使用不同的位置来搜索标题工作正常。
它似乎不包含所有二进制代码或对本地文件的引用(即我的提升的具体位置)。我从链接器错误中收集到了我仍然得到的错误,告诉我一些提升调用无法满足。
第二个问题让我觉得我必须做一些根本错误的事情,而且我的直觉告诉我,为iOS开发创建框架或库不是那么困难和“hackish”。
正如你现在可能已经发现的那样,我对iOS并不是很有经验,我想知道我是否从根本上遗漏了一些东西。所以,我确信这个问题相当广泛,所以更具体的任务:
例如,我得到的一个错误是:
File is universal (2 slices) but does not contain a(n) armv7s slice: <file>
<file>
切片是框架中文件的路径,该框架位于不同XCode工作区的Products
文件夹中(该库是在与应用程序不同的工作区中构建的)。我从一个完全不同的位置将框架文件夹放入了该测试的项目中。
答案 0 :(得分:1)
您是否在“编译源代码”和“复制文件”下检查了项目构建阶段,以确定是否在构建中包含了框架源文件?
您也可以在OSX下试用C / C ++ Library模板 - &gt;框架&amp;库。
最后,还有kstenerud’s iOS Universal Framework,我发现它非常有用。我在blog中写了几篇关于使用它的文章。