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

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

记一次令人恶心的Swift--Framework事件_第1张图片
Snip20170619_4.png

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

记一次令人恶心的Swift--Framework事件_第2张图片
3F158D69-8E50-4400-8366-0BDD034ABD08.png

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

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

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

记一次令人恶心的Swift--Framework事件_第3张图片
Snip20170619_5.png

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

解决的方式是:


记一次令人恶心的Swift--Framework事件_第4张图片
Snip20170619_6.png

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

当我新创建一个工程的时候 把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"。

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

记一次令人恶心的Swift--Framework事件_第5张图片
Snip20170619_7.png

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

记一次令人恶心的Swift--Framework事件_第6张图片
E476FBD3-85F4-4D33-BCFC-DED7683D8612.png

这个文件夹的名称 AI后面有一个空格 就不行 ! 就点不进去framework的头文件!
以下下是StandOverFlow的完整解释:


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.


写的有误之处 望不吝指教

你可能感兴趣的:(记一次令人恶心的Swift--Framework事件)