繁体   English   中英

Cocoapods项目设置问题

[英]Cocoapods project settings issues

在Xcode 8中,我的项目设置似乎有问题。问题如下:

添加新Pod - 比方说, Pod Firebase - 安装工作,并将必要的文件添加到我的项目中。 我可以,做@Import Firebase

一切都很好,到目前为止。 但是,只要我引用Firebase API示例: [FirApp configure]; - 一切都还可以 - Xcode上的自动完成工作正常,没有任何问题。 但是,在构建I时,会遇到编译时问题:

架构arm64的未定义符号:“_ OBJC_CLASS _ $ _ FIRAppIndexing”,引用自:AppDelegate.o中的objc-class-ref ld:未找到架构arm64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v看看调用)

我能够解决这个问题的唯一方法是在我的项目中手动添加_FIRAppIndexing.framework ,构建设置,在Link Libraries with Libraries

为此,我只需将框架工作从项目导航器拖放到链接库下的正确部分即可。

这有时有效; 与Firebase SDK的其他部分一样,我遇到运行时崩溃。

因此,为了尝试找到根本原因,我创建了一个全新的测试项目,使用Pod install安装了Pods - 但是我没有必要手动将framework添加到库中 - 它实际上甚至没有列在那里。

测试项目中的所有内容在编译和运行时都运行良好。

这让我相信它在我的项目设置中的某些因素导致了这一点。

我尝试过的事情

  • 完全删除cocoapods与pod deintegrate并删除所有其他痕迹。 然后做了一个干净的构建。 然后Pod install
  • 添加-objc到链接器标志

Podfile

    # Uncomment the next line to define a global platform for your project
    # platform :ios, '9.0'

    target 'MyApp' do
      # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
       use_frameworks!

      # Pods for MyApp
        pod 'Crashlytics'
        pod 'AsyncDisplayKit', '>= 2.0'
        pod 'Firebase'
        pod 'Firebase/Messaging'
        pod 'FBSDKCoreKit'
        pod "HockeySDK", :subspecs => ['AllFeaturesLib']
        pod 'Fabric'
        pod 'FirebaseAppIndexing'
        pod 'AFNetworking', '~> 3.0'
        pod '1PasswordExtension', '~> 1.8.4'

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing

  end

end

GitHub示例项目

https://github.com/TanderZA/MyApp

我复制了我当前的项目 - 并删除了所有文件。 问题仍然存在。 您将看到项目由于链接器错误而无法编译,并引用了Firebase AP。 通过手动将框架添加到链库与库,您将看到它应该编译。 但这不是它应该如何运作的。 当前项目有一个infoPlist.strings的问题,我没有解决。 但该项目正在该州展示该问题。

顺便说一下,这是一个xcode错误

但试试这个:

  1. 升级到最新版本的xcode和Pods
  2. 删除项目中的所有体系结构
  3. 清理您的项目
  4. 从头开始添加arcitectures。

这应该解决问题。

你试过使用框架吗?

# platform :ios, '10.0'
use_frameworks!

target 'MyApp' do

我不确定,但我认为你需要的是'Firebase/Core' 不是pod'Firebase'。

此链接包含可以使用的Firebase框架列表。

并且,在页面顶部的视频中,它说明了没有可以安装的单个pod,您需要根据所需的功能在podfile上设置它们中的每一个。

我猜他们在一些他们有pod 'Firebase'地方误导了我们。 我不认为他们意味着它应该做的工作。

som尝试以下方法:

# Pods for MyApp
    pod 'Firebase/Core'
    pod 'Firebase/Messaging'
    .
    .

我知道你说你让它在另一个新项目上工作了。

我检查过这个项目,看来你搞砸了方案。

正确创建新方案然后再次安装pod,因为项目在Obj-C中,您不需要在podfile中启用框架。

所以评论像# use_frameworks!

还使用pod update

然后选择新方案并在其中构建项目。

如果你不能这样做,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM