Частная архитектура стручка не найдена при включении платформ Realm
Я использую CocoaPods, разрабатываю проект частями. У меня проблема с включением фреймворков Realm в мой частный модуль:
ld: framework не найден Область для архитектуры x86_64
clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)
(Эта ошибка произошла при попытке включить платформы Realm в файл podspec)
Я подал проблему (github.com/realm/realm-cocoa/issues/5230) в Realm.
Тем не менее, проблема осталась нерешенной.
Вам не нужно обсуждать этот вопрос, я скопировал большую часть этого сообщения.
Поэтому я хочу спросить вас, ребята, и посмотреть, есть ли какой-нибудь ключ к решению этой проблемы.
отчет
Что ты сделал?
Давайте предположим, что имя образца проекта RealmTest
,
Я создал это с помощью pod lib create RealmTest
,
И я добавил две необходимые рамки, чтобы Realm работал в Swift, в каталог RealmTest
в корневом каталоге проекта.
Я добавил строку s.vendored_frameworks = 'RealmTest/Realm.framework', 'RealmTest/RealmSwift.framework'
в файл podspec.
И тогда я сделал 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)
Заметки
Я специально использую
lipo -info
чтобы проверить обе платформы Царства, скачанные с их официального сайта. Оба они поддерживают все четыре архитектуры.Обе рамки уже включены в
Pods
,И в каталоге продукта проекта (компиляция была выполнена технически, но ссылка не была выполнена в конце), обе платформы действительно включены в каталог инфраструктуры пакета приложения.
эксперимент
Я создал фиктивный фреймворк, который поддерживает все архитектуры, и добавил его в проект.
С закомментированным импортом Realm проект успешно создан.
Как только я импортирую модуль Realm, появляется ошибка!
Но один из членов команды из Realm взглянул на пример проекта и до сих пор не нашел ничего плохого на стороне Realm.
Вы можете прочитать обсуждение вопроса
github.com/realm/realm-cocoa/issues/5230
и загрузите пример проекта. В него уже включены как фреймворки Realm, так и фиктивные фреймворки.
Чтобы увидеть ошибку, просто раскомментируйте import RealmSwift
в верхней части файла класса TestClass.swift
который находится под групповым путем Development Pods/RealmTest/RealmTest/Classes
в пределах Pods
проект в RealmTest.xcworkspace
,
Я делаю здесь что-то странное, включая фреймворки в проект pod, чтобы ускорить время сборки? Я не мог найти большую часть соответствующего контента в Интернете?
Спасибо за ваше время!!
Версия XCode
8.3.2
Swift Version
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 МБ)]