通过 CocoaPods for Swift 项目在 Obj-C lang. 上使用框架时出错(无法在模拟器或设备上运行项目)



我对所有架构的fat Lib有一些代码,然后包装到框架中。

我的目标是通过Cocoapods在Swift Project中使用此框架。实际上是通过Cocoapods发布此框架。

问题:当我将此框架发布到本地POD中并将其导入Swift项目时,我无法在模拟器或设备上运行它。

  • 对于模拟器,我有一个错误:

    "操作无法完成。启动ServicesError错误0。

  • 对于设备,我有一个错误:

    "应用程序安装失败。无法检查应用程序包"

在POD中,我仅将"资源"文件夹与框架本身一起使用。我在podspec文件

中使用此行
`s.resources = ['Resources/*.*']`

对于podfile,我使用此行(我使用本地来尝试如果有效的话)

`pod ‘podname’, :git => 'pod_git_url'`

然后我手动创建桥接标头文件并在

中指定它
`Build Settings > Objective-C Bridging Header`

然后添加框架文件中的框架导入

`#import <FrameworkName/HeaderClass.h>`

,我也将框架添加到Link Binary With Libraries中结果,它给出了上述错误。

有趣的是,如果我直接在项目中直接导入所述框架,而无需使用Cocopods,则可以像魅力一样起作用。但这不是通过可可录。

P.S。我的Swift语言项目是在旧语法中 - 因此,当我添加吊舱后打开它时,它要求我将其转换为Swift 3或Swift 2.3。我选择了2.3。可能是问题的根源吗?

找到解决方案:

实际上,罗汉的提示使我以正确的方式思考。以前,我已经将.framework文件放入Resources文件夹中并相应地指定。因此,框架文件本身并未以正确的方式链接为POD的一部分。

解决方案是将框架文件指定为.podspec中的s.vendored_frameworks,因此:

s.vendored_frameworks = 'FrameworkName.framework'

就是这样。像魅力一样工作。

P.S。如果您在Swift Project中使用框架(OBJC Lang),请不要忘记使用桥接标头文件

相关内容

最新更新