框架'项目移动到另一个地方后,链接路径已更改

时间:2016-07-30 05:20:29

标签: ios frameworks xcode7 structure

请看一下图片: enter image description here

这是我的项目结构:

  1. 1 app(top one)
  2. 3个框架(由我自己创建)
  3. 1个可可豆荚静态库(下一个)
  4. 当我cmd + b时,所有子项目都将从底部开始构建到顶部,这里没问题,一切都很好。

    • 要引用/链接框架,我将框架产品放到每个子项目的/构建阶段/链接二进制文件库和/构建阶段/复制文件。

    问题是:

    • 当我将项目文件夹复制/移动到另一个地方(比如〜/ oldFolder / app到〜/ newFolder / app)时,子项目无法找到框架,它报告Not Found Error,我需要重新构建并删除框架产品以链接以修复错误。

    它太愚蠢而且很难与其他人合作,任何人都可以提供帮助吗?

    p.s:抱歉我的英语很差。

    添加错误图片 enter image description here

3 个答案:

答案 0 :(得分:2)

如果要引用相对于源目录的路径,可以使用$(SRCROOT)。 $(SRCROOT)将指向项目文件的位置。 apple doc

一个例子:

如果您的MyApp文件夹中包含项目文件的目录x,那么文件夹x可以被称为$(SRCROOT)/ x。在Build settings中的frameworks path部分输入,以引用您的库。

答案 1 :(得分:1)

这一切归结为您无法更改已导入框架的位置吗?这是FBSDKCoreKit.framework的一个例子。如果我要更改文件夹位置,我需要更改相对路径。单击名称旁边的文件夹图标,然后选择新位置

enter image description here

答案 2 :(得分:0)

我在这里发布了如何解决这个问题的细节:

  • 在框架中:
    1. 设置" $(SRCROOT)/../ build"在项目"按配置构建产品路径"在Build Setting页面中;
    2. shift + cmd + k清理框架构建,然后cmd + b重建框架;
  • 在MyApp中
    1. 添加" $(SRCROOT)/../ build"在项目"框架搜索路径"在Build Setting页面中;
    2. 将框架从框架项目的产品拖到" Link Binary With Libraries"在Build Phases页面;
    3. 将框架从框架项目的产品拖到"复制文件"在Build Phases页面中(您可以添加"复制文件"项目依据 单击Build Phases页面的左上角;)

请注意,如果您在同一个项目中再使用一个框架,并且框架也链接到另一个框架,就像我在问题中发送的示例一样,您还需要执行上面发布的所有步骤(步骤框架和应用程序)。

如果您在项目中也使用cocoapods,那么您将遇到的另一个问题就是我的样本:完成上述所有步骤后,XCode将在您的框架项目中响应错误,如:

  

ld:找不到框架Pods_xxx.framework

     

clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

" xxx"应该是您的框架项目名称。要解决此问题,您只需删除项目/常规/链接框架和库中的Pods_xxx.framework。重建项目后,错误将消失。 Here您可以找到此问题的详细信息。

  

ps:安装pod后,Pods_xxx.framework将出现在常规/链接的框架和库中,因此如果运行命令&#34; pod install&#34; <则需要再次将其删除/ p>