2016-12-13 3 views
1

Я переношу проект с xcode 7.3 на 8.1 и теперь просто конвертирую в swift 2.3 (from 2.2). Это была борьба, особенно с объективными c-рамками, которые были добавлены через cocoapods.Не удается удалить фреймворк из этапа Xcode link

У меня в настоящее время проблема: я не могу избавиться от ссылки на одну структуру на этапе ссылки.

Когда я пытаюсь построить проект он терпит неудачу на этапе связи с:

ld: framework not found DateTools 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

и я могу видеть это по команде, что не удается:

... -framework CoreText -framework DateTools -framework GLKit ... 

Я извлекал рамки и в настоящее время я просто включаю файлы, которые мне нужны в проекте.

Вот что я сделал до сих пор:

  1. очистить проект
  2. возбужденного Xcode
  3. удалены рамки из Podfile, удалил каталог Бобов, а затем переустановил оставшиеся стручки
  4. просмотрел весь проект (через скрипт) для DateTools и удалил все, что я нашел
  5. удаленные данные
  6. перезагрузили компьютер

Но проблема остается.

Одна интересная вещь, которую я нашел, что, когда я искал Производный папку данных (до удаления), я сделать увидеть запись -framework DateTools в файле с именем dgph

found pattern in OurLatitude-eliemxgbqrgibwbimtxzdyhuagll/Build/Intermediates/OurLatitude.build/Debug-iphonesimulator/OurLatitude.build/dgph 
line: 68 -framework DateTools 

Что я пришел для поиска есть какой-то граф зависимостей, используемый xcode. Проблема в том, что даже после удаления данных Derived, как только я перезапущу xcode, этот файл, похоже, будет воссоздан и все еще содержит ту же запись.

Есть ли какое-то другое место, которое я должен искать в этой статье?

ответ

0

Я был в состоянии решить эту проблему! Оказывается, я пропустил запись в одном из моих файлов проектов. Я был одурачен, потому что я все еще ожидал появления строк DateTools (поскольку я пытался включить файлы вручную). Как только я полностью удалил все, что связано с DateTools, я был удивлен, увидев строку DateTools.

Запись была "-framework" "\"DateTools\"", под OTHER_LDFLAGS в

~/development/ourlatitude/OurLatitude.xcodeproj/project.pbxproj 

(Так что в основном именно то, что линкер жаловался).

После удаления этой записи я смог повторно установить DateTools через cocoapods.

Я думаю, что на самом деле есть две общие причины ld: framework not found XXXX

  1. вызваны тем, что я был выше
  2. обусловлены наличием старого/плохого импорта в одном из тестовых файлов.

, например, мой следующий вопрос, после очистки выше, подобное сообщение, но на этот раз это было вызвано это в одном из моих тестовых файлов:

import ObjectMapper 
import Alamofire 
import AlamofireObjectMapper 
import OurLatitude 

меняющегося, что это:

//import ObjectMapper 
//import Alamofire 
//import AlamofireObjectMapper 
@testable import OurLatitude 

решить мой последний вопрос, и я был в состоянии получить чистую сборку с быстрым 2,3 в Xcode 8,1

Надеемся, что это поможет ей omeone else, или, по крайней мере, я найду его в следующий раз, когда я удалю ld: framework not found XXXX

Смежные вопросы