zoukankan      html  css  js  c++  java
  • OC项目加入swift第三方库遇到的坑

    https://www.jianshu.com/p/96d868dcd69c

    2017.07.07 16:23* 字数 295 阅读 5218评论 2喜欢 4

    首先,在OC项目的Podfile文件中添加如下

    use_frameworks!

    pod 'PromiseKit', '~> 4.2.2' #任意一个swift库

    然后pod install

    接着编译command+r

    会有报错。

    先不管报错,xcode提示修改项目配置,主要是修改

    ALWAYS_SEARCH_USER_PATHS = NO;

    ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

    如果没有提示,请自行到project.pbxproj文件中找到ALWAYS_SEARCH_USER_PATHS改为NO;

    在其上面添加一行ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

    然后就是修改报错

    以前没有加入use_frameworks!前OC调用Pod引入的第三方库时,是这样调用的#import <YYKit.h>,现在全部给它加上frame前缀#import <YYKit/YYKit.h>

    记住不要按照xcode的提示去修改,它提示你把<>改为"",这样就真的找不到头文件了。

    这是一个艰苦的过程,我足足改了100+个文件,还好有批量替换☺

    如果你也和我一样用到mattt大神的Ono,或者其他比较古老的第三方库,或许你也碰到这样的问题(如果没看到,clean后再看)


    引用Ono.h地方

    是的,已经添加frame前缀Ono了,还是报错;

    一共报了2处错误,第一个就是它,一开始以为是frame前缀拼错了,用代码提示来写也不对。

    跳转到Ono.h文件里边也没发现报错

     

    Ono.h.png

    想着处理第二个问题再说咯,这时发现了问题的端倪


    第二个问题才是重点! ONOXMLDocument.h.png

    问题描述是:Include of non-modular header insider framework module 'xxxx'

    解决方案是在Build Setting中修改Allow Non-modular includes in Framework Modules 为YES

    参考资料:include of non-modular header inside XXXX

    OC项目引入使用swift编写的三方库后,报错

    2018年01月15日 15:20:38 jinrui_w 阅读数:1488

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jinrui_w/article/details/79064975

    OC项目引入使用swift编写的三方库后,报错

    • 错误描述:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.
    • 解决办法: 
      • 选中Pods项目
      • TARGETS选择对应的使用swift编写的三方库
      • 切换到Build Setting选项
      • 在搜索框输入swift language搜索
      • 将Swift Language Version中的Unspecified改为对应的Swift版本(Swift 3.2)
      • 重新build项目,这是可能会报一些Swift的语法错误,修改一下就OK了。 

    Alt text

    OC项目Cocoapods导入Swift库出错解决办法

    https://blog.csdn.net/niumanxx/article/details/80481426

    2018年05月28日 14:24:52 niumanxx 阅读数:1088

    版权声明:未经博主允许不得转载。 https://blog.csdn.net/niumanxx/article/details/80481426

    由于本人在开发过程中主要用的是OC语言,所以pod的都是OC库,Podfile里又没加use_frameworks!

    所以一直都是.a类型的。后来因为需求需要用到一个只有swift版本的库,就使用use_frameworks!将所有.a库变成了.framework。然后信心满满地运行工程,结果GG。

    最后归纳出几个需要注意的点:

    1.将用到的库提示找不到的,从#import <xxx.h>改为#import "xxx.h";

    2.找到Target->Build Settings->Other Linker Flags,把Pod进来的库,

    比如:改成,不是Pod进来的不用改;

    3.点击pods Target如图:,,再点击Build Setting,如图:

    搜索Swift Language Version,将版本设置为Swift库能支持的最高版本,如图:

  • 相关阅读:
    easyExcel入门
    UML-从需求到设计--迭代进化
    UML-操作契约总结
    102. Binary Tree Level Order Traversal
    98. Validate Binary Search Tree
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    94. Binary Tree Inorder Traversal
    84. Largest Rectangle in Histogram
    92. Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/sundaysme/p/10647151.html
Copyright © 2011-2022 走看看