美文网首页
修改第三方库文件

修改第三方库文件

作者: YxYYxY | 来源:发表于2017-05-30 15:46 被阅读706次

修改第三方库文件

在我们平时写项目的时候,经常用到第三方库,而第三方库一般是用CocoaPods导入(当然还有Carthage),有的时候第三方库里的接口或者说功能并不能满足我们,需要自己动手加点东西,这就会出一大堆坑,我也是在坑里爬了一天才算爬出来.

起因

项目中使用到一个第三方库,但是需要往里面加点功能,但是需要import主工程里的文件和导入另一个第三方库,导入另一个第三方库还算简单,因为毕竟都是在同一个目录下,直接import </>就可以了,但是要import主工程的文件,就报错了,在网上查询了一下,是因为在build的时候,Xcode是先编译pods文件夹,然后在编译主工程,这就出问题了,pods里要import主工程文件,但是主工程文件要在pods后面才编译,不能提前,就会报错说找不到文件。

两种情况

子工程:这是把第三方库作为子工程导入,因为有pods导入oc库默认是静态库.a,要使用动态库一般都是作为子工程导入framework,这种情况下,默认子工程是无法直接importPods里的第三方库的.我在网上查询了些资料,解决办法如下,修改profile如下

xcodeproj 'Demo.xcodeproj'

platform :ios, "8.0"

def common_pods_for_target
pod 'AA', '0.0.1'
end

target "Demo" do
pod 'Demo-A', '3.1.1'
pod 'Demo-B', '1.0'
pod 'Demo-C', '> 1.9.0'
pod 'Demo-D', '> 1.1'
common_pods_for_target
end

target "Second" do
pod 'DemoTests-X', '3.1.1'
pod 'DemoTests-Y', '0.4.0'
pod 'DemoTests-Z', '4.1.1'
common_pods_for_target
end

我解释一下如上的代码,第一行是表示你的主工程是什么,AA是2个工程共用的库,写了一个def.
如上这样写了之后,在工程下pod install后,子工程就可以导入Pods的第三方库了,但是我在其中遇到了个问题,Build的时候会报错linker command failed with exit code 1 (use -vto see invocation)这个错误真不好解决,反正网上查询到的方法都试过,没有解决,不知道是不是我这个工程的特例,如果你们的没有遇到这种情况就可以直接用.

Pods导入:如果第三方库都是使用CocoaPods管理的,那么直接在Pods文件夹里面直接修改你要改的.h、.m或者.Swift文件即可

我跳的坑是,Pods里的第三方库需要使用到我主工程的文件,我在网上搜索了一阵,发现Xcode的编译顺序是先把Pods编译完成了再去编译主工程,但是这个问题就坑人了,Pods要调用主工程文件,但是主工程又比Pods后编译,反正我是没找到办法,希望有大神能指点下.
我的解决办法就是把Pods移除,全部使用子工程来导入,手动添加Path,这样就可以导入其他三方库,并且也可以添加主工程文件了.

期间还试了很多网上的方法,大多都是改podfile,这样依赖,那样依赖,直接弄晕了,索性全部收工来,就搞定了。

如果文中有不对的地方,还请指正,也希望有大神能指点一些新思路!

相关文章

  • iOS-集成OpenCV框架实现简单功能、

    目录 简介iOS如何集成OpenCV ?---- Cocoapods第三方库引入----头文件引入----修改文件...

  • 修改第三方库文件

    修改第三方库文件 在我们平时写项目的时候,经常用到第三方库,而第三方库一般是用CocoaPods导入(当然还有Ca...

  • Android Studio 加载第三方C/C++库

    1 修改app目录下的CMakeLists.tx 添加目标库 设置依赖头文件路径 导入第三方库 设置第三库的所在路...

  • iOS组件化3 之 更新远程私有库

    一、更新远程仓库 二、修改描述文件并更新索引库 三、更新使用 四、第三方依赖 五、子库Subspecs 一、更新远...

  • HelloWord --RN

    1.运行rn到iOS模拟器上 2.错误: 答案:是下载第三方库失败,修改 文件中下载地方的代理, 修改之后: 方可...

  • Typescript面试题(一)

    一、缺点: 需要长时间来编译代码。 在使用第三方库时,需要有第三方库的定义文件,并不是所有第三方库都提供了定义文件...

  • 引入第三方的命名规范

    如果是制作SDK,那么引入第三方的library,需要将第三方库的文件和方法名进行修改(在拿得到源码的情况下),因...

  • pod 安装的第三方库无法更新

    pod 安装的第三方库无法更新1.修改podfile,修改你想更新的第三方库2.晚上下班前使用pod update...

  • Git学习笔记I——版本库文件管理

    创建版本库: 添加文件到版本库: 查看版本库状态: 查看文件修改: 查看各次修改: 版本回退: 版本回退之后恢复(...

  • iOS开发之OC和swift互相调用

    OC文件中使用导入的swift第三方库 导入swift第三方库时,会自动创建一个不可见的文件 库名-Swift.h...

网友评论

      本文标题:修改第三方库文件

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