Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Analytics与iOS框架开发项目_Ios_Swift_Firebase_Cocoapods_Firebase Analytics - Fatal编程技术网

Firebase Analytics与iOS框架开发项目

Firebase Analytics与iOS框架开发项目,ios,swift,firebase,cocoapods,firebase-analytics,Ios,Swift,Firebase,Cocoapods,Firebase Analytics,我正在使用coocapods添加Firebase分析,我的pod文件是 platform :ios, '8.0' use_frameworks! workspace 'ProjectWorkspace.xcworkspace' abstract_target 'Shows' do pod 'SwiftProtobuf', git: 'https://github.com/apple/swift-protobuf.git', :tag => '0.9.24' pod 'F

我正在使用coocapods添加Firebase分析,我的pod文件是

platform :ios, '8.0'
use_frameworks!

workspace 'ProjectWorkspace.xcworkspace'

abstract_target 'Shows' do
    pod 'SwiftProtobuf', git: 'https://github.com/apple/swift-protobuf.git', :tag => '0.9.24'
    pod 'Firebase/Core'
    pod 'Firebase/Messaging'

    target 'HostApp' do
        project 'HostAppFolder/HostApp.xcodeproj'

    end
    target 'HostAppReleaseTarget' do
        project 'HostAppFolderApp/HostApp.xcodeproj'

    end

    target 'FrameWorkProject' do
        project 'FrameworkProjectFolder/FrameWorkProject.xcodeproj'
    end

end
若我只将SwiftProtobuf添加为依赖项,那个么它对于宿主应用程序和框架项目都可以正常工作

如果添加Firebase依赖项,则会出现运行时错误,应用程序会崩溃,并显示错误消息

类Foo同时在HostApplicationPath和FrameworkProjectPath中实现,将使用其中一个。哪一个是未定义的

对于Firebase的每个类文件

当我从框架项目中删除其他链接器标志$(继承)时,工作正常,但我不能在框架项目中使用firebase

我的框架和主机应用程序是用Swfit 3.0编写的,xcode版本是8.x

我的项目结构是 我已经手动创建了一个工作区,并将其命名为“EVAWorkspace.xcworkspace”,并将我的主机应用程序和框架项目添加到此工作区中,然后将cocoapods添加到工作区中


Eva是框架项目,EvaApp是主机应用程序项目。

在尝试以下各项之前,请使用XCode中的“Clean Build Folder”选项,以确保每次都获得干净的生成。如果您想真正确定,可以在开始之前删除
~/Library/Developer/Xcode
中的
DerivedData
文件夹(只需确保删除Xcode时Xcode已关闭)

首先,确保您的Pods项目在其构建设置中将“仅构建活动体系结构”设置为
NO
。然后尝试清理生成文件夹并重建。这可能会解决您的问题,否则请继续阅读

您所描述的问题的最常见原因:“架构X的未定义符号”是您在代码中导入了一个库,但没有正确链接它

要解决此问题,您应该:

  • 将库添加到“构建阶段”中的“链接框架和库”

  • 将库的路径添加到“生成设置”下的“库搜索路径”,然后将“-l{your library}添加到“其他链接器标志”

如果这不能解决您的问题,可能是链接器没有获得所需的标志。您可以尝试将$(继承的)添加回生成设置的“其他链接器标志”部分

在尝试这些技术之前,不要忘记清理构建文件夹


如果完成所有这些操作后,问题仍然存在,请删除项目中所有CoCoapod创建的文件,然后在此处发布
pod安装--verbose
的输出。

您能否显示在框架中尝试使用Firebase时遇到的错误?同时请显示您的项目结构和依赖项:HostApplication and FrameworkProject.Thank@DavidV,当我从框架项目中删除$(继承的)标志时,我得到了错误-->“架构armv7的未定义符号:“\u OBJC\u CLASS\u$\ u FIRAnalytics”,引用自:UtilityMethods.o中的OBJC CLASS ref“修改我的问题以描述项目结构您必须将必要的框架与静态库链接!否则你必须使用动态加载:有同样的问题,你能分享更多的更新吗