火力地堡分析与iOS框架开发项目

she*_*ath 5 ios cocoapods firebase swift firebase-analytics

我加入火力地堡分析使用coocapods,我Podfile被

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
Run Code Online (Sandbox Code Playgroud)

如果我添加SwiftProtobuf只依赖它的正常工作的主机应用程序以及为框架的项目。

如果我想补充火力地堡的依赖,我得到一个运行时错误和应用程序错误味精崩溃

Foo类在HostApplicationPath和FrameworkProjectPath中都实现。将使用两者之一。哪一个未定义。

对于Firebase的每个类文件。

当我从框架项目,它的做工精细删除其他连接标志$(继承),但我不能火力使用到我的框架项目。

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

我的项目结构是我手动创建一个工作区,并把它命名为“EVAWorkspace.xcworkspace”,并增加我的主机应用程序和框架项目到这个工作区,然后我加入的CocoaPods到工作区。

项目结构

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

Ped*_*lho 0

在尝试以下每项操作之前,请使用XCode 中的“清理构建文件夹”选项,以确保每次都获得干净的构建。如果你想真正确定,你可以DerivedData在开始之前删除该文件夹~/Library/Developer/Xcode(只需确保删除时 Xcode 已关闭)

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

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

要解决这个问题,您应该:

  • 将库添加到“BuildPhases”中的“链接的框架和库”

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

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

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

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