我对所有架构的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),请不要忘记使用桥接标头文件