美文网首页
Xcode中引用另一个项目及常见错误详解

Xcode中引用另一个项目及常见错误详解

作者: 似奔跑的野马 | 来源:发表于2018-05-07 11:04 被阅读0次

    开发中,某些情况下,需要在一个主工程中引用另一个工程,比如开发framework,然后在主工程中调试。
    具体开发步骤:
    1.将子工程copy到主工程目录下。

    工程目录结构.jpeg
    2.打开主工程,File->add Files to 找到需要应用的工程,然后加入。
    选中的工程.jpeg
    NOTE:1.引用的是工程目录,而不是项目目录。
    2.某些情况下,引用以后,主工程中看不见子工程,重启下Xcode.可能是一个项目中
    打开了对应的工程。

    3.关联2个工程。正确加入后,主工程和子工程目录结构。

    屏幕快照 2018-05-07 上午10.35.34.png
    现在在子工程中(18.4.24-testFramework)写代码,主工程(18.5.6-集成ncnn)并没有关联。
    引用项目步骤.jpeg
    到此两个项目就关联起来了,某些情况下,报找不到子工程对应的头问题 xx.h.
    就需要在主工程building settings 中,加入对应的头文件。
    主工程中添加搜索文件目录.jpeg
    我的习惯是,直接添加../主工程名字(如照片所示../18.5.6-集成ncnn) ,记得把non-recursive,修改为recursive
    也可以添加对应的头文件。

    按照以上步骤基本可以实现2个工程的编译了。(⊙o⊙)哦
    某些情况下,还是报错。

    错误处理

    1.找不到对应架构(啥是架构自行google、百度)。


    找不到对应的armv7.jpeg
    • 报无对应的cpu架构,如没有arm7,首先判断对应框架是否存在对应的架构。framework进入,找到对应的可执行文件,在终端 lipo -info xxx 查看对应的二进制架构。
     xxx$ lipo -info xxx.a
    Architectures in the fat file: xxx.文件 are: armv7 i386 x86_64 arm64 
    
    • 存在对应的架构还报找不到,查看项目中对应的framework 是否为源文件,以及对应的位置,重新添加到子项目中。查看对应的build settings ->search framework path 查看是否有对应的查找条件。
    • 如果所有都没问题还找不到,编译报无对应的架构。主项目无法找到,找到对应的子项目framework,然后拖到主项目的framework,注意:此时主项目仅仅是引用子项目,而不是copy items if need,此时先编译下,主项目,然后运行,查看是否编译通过,正常操作,应该就可以编译过了。至于其他的bitcode 开关,根据情况处理就好了。
    • 如果一个项目直接引用另一个项目,需要关闭打开的项目,最好在主项目中选择引用的工程然后编译一下。

    2.在主工程中引用一个工程,并且这个工程是framework ,引入主工程的同时,还需要引入生成的对应framework,不然报找不到对应的文件。


    如何去掉引用的工程

    找到对应的子工程,点击删除,


    如果是引用,没有复制,记得删除Remove Reference.
    某些情况下还会报找不到对应的架构,但framework导入没问题,删掉本地的DerivedData(如何删,不解释),command+k,clear一下项目,就ok了。

    相关文章

      网友评论

          本文标题:Xcode中引用另一个项目及常见错误详解

          本文链接:https://www.haomeiwen.com/subject/lagprftx.html