2016-10-11 7 views
7

У меня возникла проблема с Xcode (с помощью Swift), которая полностью меня превзошла. Я понимаю, что этот вопрос задан и ответил, но ни один из ответов не работал для меня, и моя ситуация, похоже, немного отличается от остальных, поскольку все мои стручки не работают (а не только конкретны). Они все отлично работали неделю назад.Нет такого модуля ... в Xcode

Я использую Cocoapods для некоторых наиболее распространенных каркасов Swift (например, Alamofire, Eureka, Kingfisher, SwiftyJSON и т. Д.). Все они отлично работали в Xcode 7. Однако одно из (автоматических) обновлений натолкнуло мою версию Xcode, после чего стало обязательным указывать вашу цель в podfile. Я сделал это и выполнил установку pod. Все струйки все еще есть, но теперь каждое заявление импорта, относящееся к этим фреймворкам, терпит неудачу.

Сначала я подумал, что это проблема с Alamofire, так как это первая, которая не удалась с ошибкой «Нет такого модуля Alamofire». Я попробовал все, что я мог с Alamofire, в том числе следующие:

  • Чистый и перестраивать
  • Чистая папку сборки
  • Restart Xcode
  • Re-загрузки компьютера
  • Удалить все полученные данные
  • Добавлено рамки для «Связанных структур и библиотек»
  • Добавлена ​​структура для «Связывание двоичных файлов с библиотеками»
  • Проверено, что я открываю рабочее пространство, а не проекта
  • установлен Re-CocoaPods
  • установлен Re-Xcode версии 7.3.1

Ничто не уберет «Нет такого модуля ...» Ошибка , Наконец, я удалил Alamofire из стручков и просто перетащил проект Alamofire в свой проект. Это позволило мне удалить операторы импорта для Alamofire. Однако, к моему ужасу, теперь следующая структура вызвала «Нет такого модуля». Я переместил следующие три фреймворка в свой проект, и похоже, что он только собирается продолжать. По-видимому, ни одна из моих подсистем в Pods не признается. Я установил Xcode 8 и попробовал это с Swift 2.3, но у меня такие же ошибки «Нет такого модуля».

Я бы предпочел использовать Cocoapods, так как он упрощает модернизацию наряду с другими бонусами. Я предполагаю, что у меня есть неправильная настройка, которая забивает все мои стручки, но не повезло найти ее. Это немного катастрофа, поскольку она закрыла разработку в течение нескольких дней без каких-либо признаков исправления. Если есть что-то, что я могу сделать или предоставить, чтобы помочь найти решение, просто дайте мне знать. Если бы кто-нибудь мог предложить какие-либо возможные решения или даже попробовать, было бы весьма полезно. В настоящее время я работаю с Xcode версии 7.3.1.

Мой файл стручок выглядит примерно так:

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '8.0' 

target 'Y2GOsp' do 
    use_frameworks! 

    # Pods for Y2GOsp 
    pod 'Alamofire', '~> 3.0' 
    pod 'AlecrimCoreData', '~> 4.0' 
    pod 'Kingfisher', '~> 2.4' 
    pod 'Eureka', '~> 1.6' 
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7' 
    pod 'PhoneNumberKit', '~> 0.1' 
    pod 'PKHUD' 
    pod 'Dollar' 
end 

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['SWIFT_VERSION'] = '2.2' 
     end 
    end 
end 
+0

Вы пытались переустановить или обновить CocoaPods? –

+0

@ l'L'l, да, я переустановил его пару раз. Я даже попробовал версию --pre. Я также переустановил Xcode, так как моя первоначальная версия была обновлена ​​до версии 8. Я выследил установщик версии 7.3 и снова установил его, но все равно получаю ошибку. – Lastmboy

+1

Когда вы попытались добавить фреймворки в свой проект, что настроено для 'build settings> frameworks search path'? –

ответ

14

Комментарии от @ l'L'l привели меня к решению. Я пошел в

build settings > frameworks search path 

и установить его на следующее:

$(inherited) (non-recursive) 
$(PROJECT_DIR)/build/Debug-iphoneos (non-recursive) 
$(SRCROOT) (recursive) 

Это теперь правильно находить рамки стручка.

0

попробовать сделать версию SDK в более ранних версиях

pod 'Alamofire', '~> 3.0' 
pod 'AlecrimCoreData', '~> 4.0' 
pod 'Kingfisher', '~> 2.4' 
pod 'Eureka', '~> 1.6' 
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7' 
pod 'PhoneNumberKit', '~> 0.1' 
pod 'PKHUD' 
pod 'Dollar' 

, например, изменить 3.0 имеющейся предыдущей версии, он работал один раз меня, когда я столкнулся с той же проблемой.

pod 'Alamofire', '~> 2.4' #I am assuming prev available version is 2.4 

Но это не должно быть «Alamofire» версия результат «Нет такого модуля», вы можете попробовать каждый в свой список в файле стручка.

+0

Похоже, это может сработать. В любом случае, я прошел мимо Аламофира. Теперь я получаю ошибку на Эврика. Я собираюсь сражаться с ним больше утром и дам вам знать мои результаты. Благодарю. Хорошее имя тоже ... меня зовут Шелдон :) – Lastmboy

+0

Привет, Шелдон. Пожалуйста, выберите правильный ответ, если вы чувствуете, что это правильно. –

+0

Не повезло :(Я думал, что он работает в течение секунды, но потом понял, что я удалил операторы импорта, поэтому он просто перешел к следующему и в конечном итоге потерпел неудачу позже в компиляции. Когда я добавляю операторы импорта назад, затем он снова начал провал. – Lastmboy

0

В Pod файл

раскомментировать ниже линии, чтобы определить глобальную платформу для вашего проекта

платформы: ИОС, '10 .0'

use_frameworks!

Сейчас в Xcode

а) Очистите ваш проект

б) Убедитесь, что все ваши "Бобы"> "Build Settings"> "Build Активная Архитектура только" установлен в положение " нЕТ»

с) Теперь строите проекту

0

Убедитесь, что вы открыли файл .xcworkspace в Xcode, а не только файл .xcodeproj.