包含领域框架时找不到私有Pod架构

时间:2017-08-16 00:32:10

标签: swift xcode realm cocoapods podspec

我正在使用CocoaPods在私有pod中开发项目。 我在将Realm框架包含到我的私有pod中时遇到了问题:

  

ld:未找到框架体系结构x86_64
  clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

(尝试在podspec文件中包含Realm框架时发生此错误)
我在Realm提交了一个问题(github.com/realm/realm-cocoa/issues/5230) 然而,问题仍然没有解决 你没有必要回答这个问题,我将大部分内容复制到这篇文章中 所以我想问你们,看看是否有解决这个问题的线索。

报告

你做了什么?

我们假设示例项目的名称是RealmTest 我使用pod lib create RealmTest创建了它 我为Realm在Swift中运行了两个必要的框架,添加到根项目目录中的RealmTest目录中。 我将行s.vendored_frameworks = 'RealmTest/Realm.framework', 'RealmTest/RealmSwift.framework'添加到podspec文件中 然后我为Example项目做了pod install

您期望发生什么?

构建确实成功了,我期望通过所有这些来加速项目的构建时间,而不是从源代码编译Realm。

反而发生了什么?

直到我import RealmSwift并开始使用它。 构建报告如前所述: ld: framework not found Realm for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

注释

  1. 我特意使用lipo -info来检查从其官方网站下载的两个Realm框架。它们都支持所有这四种架构。

  2. 这两个框架已经包含在Pods中。

  3. 在项目的产品目录中(编译技术成功,但最后链接失败),两个框架确实都包含在app bundle的框架目录中。

  4. 实验

    我创建了一个支持所有架构的虚拟框架,并将其添加到项目中 随着Realm import的注释,该项目成功构建 一旦我导入Realm模块,错误就会重新出现! 但Realm的一名团队成员看了一下示例项目,到目前为止在Realm方面找不到任何错误。

    您可以阅读问题

    中的讨论
      

    github.com/realm/realm-cocoa/issues/5230

    并下载sample project。它已包含在Realm框架和虚拟框架中 要查看错误,只需取消注释import RealmSwift位于TestClass.swift项目Development Pods/RealmTest/RealmTest/Classes项目组Pods下的类文件RealmTest.xcworkspace顶部的Pod::Spec.new do |s| s.name = 'RealmTest' s.version = '0.1.0' s.summary = 'A short description of RealmTest.' s.description = <<-DESC TODO: Add long description of the pod here. DESC s.homepage = 'https://github.com/ivsall2012/RealmTest' s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { 'ivsall2012' => 'ivsall2012@gmail.com' } s.source = { :git => 'https://github.com/ivsall2012/RealmTest.git', :tag => s.version.to_s } s.ios.deployment_target = '8.0' s.source_files = 'RealmTest/Classes/**/*' s.vendored_frameworks = 'RealmTest/DummyFramework.framework','RealmTest/Realm.framework', 'RealmTest/RealmSwift.framework' end

    我在这里做了一件奇怪的事情,包括将框架纳入pod项目以加快构建时间?我在互联网上找不到太多相关内容?

    感谢您的时间!!

    Xcode版本

    8.3.2

    Swift版本

    3.1

    Podspec

    use_frameworks!
    
    target 'RealmTest_Example' do
      pod 'RealmTest', :path => '../'
    
      target 'RealmTest_Tests' do
        inherit! :search_paths
    
    
      end
    end
    

    Podfile

    {{1}}

    演示问题的项目

    [样本项目(32.96 MB)]

      

    https://firebasestorage.googleapis.com/v0/b/savori-6387d.appspot.com/o/Realm_Test_ProjectBB.zip?alt=media&token=24db5807-23e8-482c-bc14-39581d9b7658

0 个答案:

没有答案