Швидкий. Не вдалося побудувати модуль Obje-c "Alamofire"


117

Встановити свіжий підмодуль ванілі Alamofire, використовуючи XCode6 та дотримуючись вказівки до T. Щось тут просто не підходить. Помилка, яку я отримую, - "Не вдалося створити об'єктивний модуль" alamofire "при імпорті alamofire. Ось знімок екрана помилки, яку я отримую:

введіть тут опис зображення І моя конфігурація:

введіть тут опис зображення



я думаю, вам доведеться встановити alamofire відповідно до інструкції, наведеної тут github.com/Alamofire/Alamofire
Saurabh Prajapati

ти змусив його працювати? він працював на мене, і після чергового "Створення та запуску" він зупинився, і я отримав те саме повідомлення про помилку ... :(
Георг

2
У колеги просто було те саме повідомлення про помилку, але причиною виявилося те, що він все ще використовує Xcode 6.1 (це ми ера 6,3, коли я це пишу). Кажучи це лише для запису, чи повинен хтось ще боротися з тим же самим.
villapossu

Відповіді:


103

Коли це станеться, просто спочатку побудуйте рамки окремо. У вашому випадку:

  • Змініть схему на Alamofire
  • Збірка ( ⌘B )
  • Поверніться до своєї схеми
  • Біжи

3
Чудова відповідь; Я не забував змінити схему збірки, щоб виправити подібні помилки!
tehprofessor

1
Дякую за допомогу.
Тидан

5
Якщо ви маєте будувати схему окремо, це, ймовірно, означає, що у налаштуваннях збірки програми не встановлено фреймворк як цільову залежність. Зробіть це, і вам не доведеться будувати це вручну.
Чарльз А.

Я проголосував за це, оскільки він працює в Xcode. На жаль, він не працюватиме, якщо будувати з командного рядка або будувати для випуску.
Енеко Алонсо

Це вирішило проблему, з якою у мене виникло GoogleApiClient / Drive. Збірка буде успішною, але як тільки в файл внесли будь-які зміни, Xcode поскаржиться на імпорт.
Нік Олександр

53

Зайдіть у Developer / Xcode / DerivedData та видаліть папку для вашої основи. (Або просто видаліть DerivedData)

Якщо у вас є збірка вашої програми в запущеному симуляторі, вам потрібно буде видалити її.

Потім очистіть і складіть


Це також працювало для мене, але тоді я зіткнувся з декількома видами команд, це посилання допоможе: stackoverflow.com/questions/50718018/… .
Бхімбім

32

Це завжди працює для мене:

  1. Закрити Xcode
  2. Видалити ~/Library/Developer/Xcode/DerivedData
  3. Перейдіть до своєї схеми та побудуйте ⌘B
  4. Перейдіть до схеми свого додатка та складіть ⌘B

22

Видалення папки DerivedData та очищення та побудова проекту вирішили цю проблему для мене.


15

Спробуйте виконати наступне в цьому порядку, і один із кроків повинен працювати.

  1. Cmd+ B- Створює робочу область і, можливо, повинен будувати потрібну ціль або модуль.

  2. Cmd+, Kа потім Cmd+ B- Очистити, а потім скласти

  3. Cmd+ Shift+ Option+ Kі Cmd+ B- Очистити папку збірки

  4. Закрити Xcode, Видалити отримані дані, запустити Xcode та Cmd+ Shift+ Option+, Kа потім Cmd+B

Це буває найчистішим можливим способом очищення отриманих даних та інших кешів від Xcode.


Для тих , хто використовує ICloud синхронізації (наприклад, маючи проект в папку Документи , так що це буде легко синхронізувати з множинним Мака), перевірка файла з ім'ям: XXX 2.swift. Знайдіть і видаліть їх, а потім запустіть pod install.
Джон Панг

12

Якщо ви отримуєте цю помилку, намагаючись імпортувати динамічну рамку, переконайтеся, що рамка включена в цільові залежності від цілі.

Project > "Target" > Build Phases > Target Dependencies


Крім того, якщо ви працюєте з іншим фреймворком, розробленим у тій же робочій області, не забудьте додати Проект як пов’язану бібліотеку замість файлу фрейму, інакше фреймворк не буде видно як цільова залежність.
Давид Пастор

11

Збірка чиста працювала для мене.

  1. Побудувати чисто для Аламо
  2. Побудувати чисто для HTTPDemo

6

Прокоментуйте імпорт та весь код, використовуючи його, складіть, запустіть, а потім прокоментуйте. Це працювало для мене ...


1

Я вирішив це питання в одному з гібридних проектів Objective-C / Swift.

У своєму мостовому файлі Objective-C додайте наступний рядок:

#import <Alamofire/Alamofire.h>


0

Будь-який стручок, який не вдалося створити, також може спричинити цю помилку. (у моєму випадку старий струк із використанням застарілого синтаксису не вдалося створити).

Ви можете спробувати pod updateоновити свої стручки до останньої версії та побачити, як все йде.


Для тих , хто використовує ICloud синхронізації (наприклад, маючи проект в папку Документи , так що це буде легко синхронізувати з множинним Мака), перевірка файла з ім'ям: XXX 2.swift. Знайдіть і видаліть їх, а потім запустіть pod install.
Джон Панг

0

Божевільне виправлення цього питання - єдине робоче рішення для мене

Створіть нову схему та додайте рамку, яка показує помилку. У цьому випадку "Аламофір". Запустіть усі ці схеми.

Після складання всіх схем ваша ціль проекту також буде добре працювати.

Це може здатися шаленим виправленням, але єдиним робочим рішенням для мене.


0

Якщо дійсні архітектури проекту Alamofire не містять дійсних архітектур вашого проекту, виникає помилка "Не вдалося побудувати модуль Objec-c ..".

Додайте ці архітектури i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64 до розділу " Дійсні архітектури " проекту Alamofire у розділі " Налаштування збірки ".

Створіть однаковий цільовий пристрій для обох проектів. Наприклад, спочатку побудуйте проект Alamofire для iPhone 8 (13.2), потім складіть свій проект для того ж симулятора.

Якщо збірка проекту Alamofire займає дуже короткий час, це означає приблизно 0,5 секунди, це означає, що в проекті Alamofire виникає помилка, оскільки архітектура вибраного симулятора відсутня у Дійсних архітектурах .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.