美文网首页Swift编程
记一次令人恶心的Swift--Framework事件

记一次令人恶心的Swift--Framework事件

作者: LD_左岸 | 来源:发表于2017-03-10 17:17 被阅读493次

    1.首先是制作framework阶段 需要注意到CPU的架构适配

    Snip20170619_4.png

    改为NO之后 跑在什么什么机型上 就是什么机型的CPU架构
    2.其次是导出framework时 改成release模式

    3F158D69-8E50-4400-8366-0BDD034ABD08.png

    这个错误的出现 很多人看到可能照着image使劲了 但是和image没🐱关系

    首先.a文件 一定是静态库
    .framework文件 有可能是静态库 也有可能是动态库
    swift打出来的framework一定是动态库

    所以如果你选用的OC的话 可以再导出framework之前 指定你的framework是动态库 还是静态库 指定的方式是:

    Snip20170619_5.png

    如果没指定framework的类型
    你把framework导入到工程里了 尤其是Swift的framework
    工程并不知道他的类型
    所以必须报image Not Found

    解决的方式是:


    Snip20170619_6.png

    在这块再导入一下就好了...
    4.这个Bug对应题目 令人恶心 什么玩意!!!

    <pre>

    当我新创建一个工程的时候 把TextToSpeechV.framework导入工程中 在新创建的Swift文件里 import UIKit
    import TextToSpeechV1
    class LDPerson: NSObject {

    }
    当我Commend+左键 点import TextToSpeechV1 是可以点进去的
    但是当我在目前开发的项目里导入一模一样的framework 而且所有导入细节一致 尝试了多次 每次Commend+左键 点import TextToSpeechV1 都是显示Couldn't Generate Swift Representation

      Error(from SourceKit):
    

    "Could not load module:TextToSpeechV1"。

    </pre>

    什么意思呢 就是一点framework的头文件 就显示这个图了

    Snip20170619_7.png

    最终在StandOverFlow上找到了答案:
    就是工程所在的文件夹不能有空格 比如我的项目在这个文件夹下

    E476FBD3-85F4-4D33-BCFC-DED7683D8612.png

    这个文件夹的名称 AI后面有一个空格 就不行 ! 就点不进去framework的头文件!
    以下下是StandOverFlow的完整解释:
    <pre>
    From my experience there are two possible causes for this issue. The first one is that your framework can't be located. To fix this you need to go to target's Build Settings and add a path to Framework Search Paths either an absolute:

    /Users/{user}/path-to-framework-parent-directory
    or relative to project directory:

    $(PROJECT_DIR)/path-to-framework-parent-directory
    Another possible cause is that the path to your framework contains a space in it. I found that it doesn't matter whether you try to escape it with backslash ../Project\ Name/frameworks or take the whole path in double-quotes "../Project Name/frameworks". The result would be that SourceKit could not load the module.

    Note that $(PROJECT_DIR) could expand to a path with a space in it and it would too result in the same error. So it looks like a bug in Xcode/SourceKit (I tried the latest Xcode 7.2-beta3 and the bug is still there).

    My repository was on the second hard drive /Voluems/Macintosh HD/Repos. I just renamed the hard drive to HD, so the path looks like /Volumes/HD/Repos and the problem was gone.

    </pre>

    <pre>
    写的有误之处 望不吝指教😊
    </pre>

    相关文章

      网友评论

        本文标题:记一次令人恶心的Swift--Framework事件

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