我正在使用CocoaPods在私有吊舱中开发项目。 我将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到了根项目目录中的RealmTest目录中。
我在podspec文件中添加了s.vendored_frameworks = 'RealmTest/Realm.framework', 'RealmTest/RealmSwift.framework'行。
然后,我为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. 并且在项目的产品目录中(技术上编译成功,但链接最终失败),这两个框架的确包含在应用程序包的框架目录中。

实验

我创建了一个支持所有架构的虚拟框架,并将其添加到项目中。
注释掉Realm import后,项目将成功构建。
导入Realm模块后,错误再次浮出水面!
但是,来自Realm的团队成员之一查看了示例项目,到目前为止,在Realm方面还没有发现任何错误。

您可以阅读本期的讨论

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

并下载示例项目 它已经包含在Realm框架和虚拟框架中。
要查看该错误,只需取消注释类文件TestClass.swift顶部的import RealmSwift ,该文件位于RealmTest.xcworkspacePods项目内的Development Pods/RealmTest/RealmTest/Classes组路径下。

我在这里做怪异的事情,将框架包含到pod项目中以加快构建时间吗? 我在互联网上找不到很多相关内容吗?

感谢您的时间!!

Xcode版本

8.3.2

迅捷版

3.1

Podspec

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

Podfile

use_frameworks!

target 'RealmTest_Example' do
  pod 'RealmTest', :path => '../'

  target 'RealmTest_Tests' do
    inherit! :search_paths


  end
end

证明问题的项目

[示例项目(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

  ask by Andy Tong translate from so

本文未有回复,本站智能推荐:

1回复

私有CocoaPod-即使安装了pod,也找不到模块

我创建了一个新框架CocoaPod ,这是我的“podspec”文件的副本: 'podspec' 上传成功,我可以在GitHub看到源代码。 我创建了一个新项目,我正在尝试使用我新创建的CocoaPod 。 这是Podfile样子: 这是我在框架内的代码: CocoaPod及其所有依赖项均已正确
1回复

出现错误:当我将pod推送到私有cocoapods存储库时使用了未声明的类型

我可以成功构建、运行我的测试方案。 我尝试通过执行以下操作将更改推送到我的 pod 的 repo: 但是我收到以下错误: 然而MacAddress是一种public类型。 我重新启动了我的 mac,清理了构建,清理了派生数据,但我仍然遇到同样的错误。
3回复

XcodeWorkspace-找不到从框架开发窗格导入的内容

我设置了一个包含两个Swift项目的工作区:一个是我正在开发的框架,另一个是该框架的演示应用程序。 Podfile看起来像这样: .podspec文件如下所示: 运行pod install ,Xcode / AppCode仍然看不到框架项目中的类。 因此,如果将手动导入添加到演示应
1回复

如何向`pod_target_xcconfig`添加更多标志?

我有podspec文件并使用pod_target_xcconfig 。 现在我只添加了一个标志: 如何添加更多标志? 我的意思是语法。 也许:
1回复

iOS:如何从我现有的项目中制作一个pod?代码

我有一个项目(框架),包括 pod、框架、桥接头和许多其他各种类型的文件。 我想使用 cocoapods 使其可访问,并且可以轻松添加到其他项目中。 我阅读了很多教程,但没有一个提到如何包含项目的所有文件和所有依赖项。 我找到了这个: 添加 podspec 文件,但如何添加具有许多不同文件扩展名的其
1回复

工作副本“Pods”无法提交文件-领域错误

由于出现以下错误,我无法将我的Xcode项目更改提交给Github。 如下所示,它与Realm有关。 我最近更新了豆荚。 有关如何解决此问题的任何建议。
1回复

.framework捆绑包的Cocoapods体系结构

我有一个.framework ,我想通过Cocoapods分发。 我只想分发二进制文件,因此对用户隐藏了实现。 现在,我遇到一个问题,当我尝试使用.framework上传应用程序时,出现错误“错误:ITMS-90087:可执行文件...包含不受支持的体系结构'[x86_64]'”。 这是可
2回复

Podspec:找不到前缀导入

我的项目进展顺利。 当我运行pod spec lint以下错误: 值得注意的是常量文件的位置: Project/Classes/MyConstants.h 。 这是我的podspec : 我也尝试过换线: 有: 但是结果是一样的。 我应该怎么做才能启用前缀以查看源代码?