2

我遵循了本教程:

https://github.com/jverkoey/iOS-Framework

并让一切都在开发端工作。即使是依赖产品也能正常工作。最后,我有一个 .framework、.a、headers 文件夹和构建后的 include 文件夹。文章说您只需将 .framework 拖到您的项目中并包含 #include 但是,当我这样做并构建时,我得到一个链接器错误:

ld: framework not found MyFramework

请记住,我在我的依赖项目中有这个工作、链接等,但在那个项目中,我将框架项目复制到了测试项目中。将 .framework 拖过来后,我是否需要执行一些步骤?我也尝试拖动 .a 没有成功(相同的错误消息)。

感谢您的任何帮助。

4

3 回答 3

3

你确定你的框架结构完全正确吗?由于您之前只是将它用作子项目,因此您可能无法正确构建框架目录。

它应该看起来像:

MyFramework.framework     //(directory)
  info.plist
  MyFramework             //(symbolic link to Versions/Current/MyFramework)
  Resources               //(symbolic link to Versions/Current/Resources)
  Headers                 //(symbolic link to Versions/Current/Headers)
  Versions                //(directory)
    Current               //(symbolic link to directory "A" below)
    A                     //(directory)
      Headers             //(directory containing framework headers)
      Resources           //(directory holding framework resources)
      MyFramework         //(actual compiled library, really a .a file)

框架中的 .a 文件不应以 .a 结尾。如前所述,所有这些符号链接都必须正确,ls -l框架目录中的“”应如下所示:

drwxr-xr-x   7 kendall  admin   238B Feb 19 13:36 ./
drwxr-xr-x  11 kendall  admin   374B Feb 19 13:36 ../
lrwxr-xr-x   1 kendall  admin    24B Feb 19 13:36 Headers@ -> Versions/Current/Headers
lrwxr-xr-x   1 kendall  admin    30B Feb 19 13:36 MyFramework@ -> Versions/Current/MyFramework
lrwxr-xr-x   1 kendall  admin    26B Feb 19 13:36 Resources@ -> Versions/Current/Resources
drwxr-xr-x   4 kendall  admin   136B Feb 19 13:36 Versions/
-rw-r--r--   1 kendall  admin   215B Feb 19 13:36 info.plist

info.plist 的内容(它告诉链接器框架中静态库的名称到底是什么)看起来像:

CFBundleDevelopmentRegion
English
CFBundleExecutable
MyFramework
CFBundleIdentifier
com.pushio.pushiomanager
CFBundleInfoDictionaryVersion
6.0
CFBundlePackageType
FMWK
CFBundleSignature
????
CFBundleVersion
1.0.0
于 2013-02-27T00:19:07.117 回答
2

*)我想您在拖动或复制框架时错过了单击复选框“将项目复制到目标组文件夹(如果需要)”。

*) 并确保通过转到项目 -> 目标 -> 构建阶段 -> 将二进制文件与库链接并添加框架来链接框架。

于 2013-02-27T00:06:50.243 回答
0

在上面的教程中,您需要确保删除了最新版本的 XCode 添加的 Copy Files Build 阶段。这是由于这一步造成的。其他所有内容均已正确添加。

于 2013-02-27T22:19:06.010 回答