Xcode 8 Beta - Не вдалося перетворити на поточний синтаксис Swift: Не вдалося знайти хост тесту


115

Коли я намагаюся використовувати майстер перетворення Xcode 8, я отримую повідомлення про помилку. Після спроби перезавантаження, завантаження свіжого коду та видалення файлів DerivedData я не можу уникнути цієї помилки:

Не вдалося перетворити в поточний синтаксис Swift: Не вдалося знайти хост тесту

Я спробував обидва варіанти, які є: Swift 2.3 та Swift 3. Після вибору версії я негайно отримую цю помилку.

Ось скріншот помилки:

Xcode 8 Перетворити повідомлення про помилку


У мене тут те саме питання. Інший, менший, проект конвертує штрафи.
Гондомір

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

Що таке "тестовий хост"? Він показує файл DerivedData / ding / Build / Products / Debug-iphoneos / ding.app / ding, який не існує після видалення папки DerivedData.
Гондомір

Ви також можете перевірити версію мови Swift у налаштуваннях Build. Спробуйте використовувати нижчу версію.
iPhoneDeveloper

Відповіді:


306

Це працювало для мене:

  1. Виберіть проект Xcode у браузері зліва.
  2. Клацніть на тестову ціль на вкладці Проекту General.
  3. Розкрийте "Тестування". У моєму проекті кнопка спаду "Хост-додаток" була порожньою. Виберіть відповідну хост-програму.
  4. Спробуйте скласти тестову ціль зараз. Якщо це вдасться, також слід перетворити синтаксис.

У мене виникла ця проблема після встановлення бета-версії Xcode 8, тому я припускаю, що це пов’язано.

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


5
Це працювало для мене. Дякую! Для уточнення: Клацніть та виберіть тестову ціль на селекторі зліва від заголовка вкладки Загальні.
thejuki

5
Дякую, працювали і для мене. Відзначивши тут шалену деталь, яка може допомогти і іншим: у полі "Хост-додаток" вже було заповнене правильне значення, але лише повернення та повернення до початкового значення змусило його працювати.
mz2

5
Для чого варто, щоб у моєму хост-програмі було встановлено "звичай". Перехід на єдиний доступний варіант вирішив проблему. Дякую!
Марк МакКоркл

1
Де знайти той, що згадується на кроці 3? @Bharathi
JayVDiyk

2
У мене на загальній вкладці немає розділу тестування ??
Біглов Двійці

62

Коштувати мені трохи часу, щоб знайти "Хост-додаток", який згадується в інакше дуже корисній відповіді iluvcapra.

Отже, це він мав на увазі:

Тут ви знайдете спадне меню. Виберіть основну ціль.

Тут ви знайдете спадне меню


22

Мені легко виправити це, просто відредагуйте Вашу Схему та відключіть тести.

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

І знову запустіть конверсію.


1
Дякую! це працювало для мене, поки прийнятої відповіді не було.
daver

Це. Незважаючи на те, що у мене вже було встановлено "Хост-додаток", воно не спрацювало. Я також не міг запустити тести (отримання того ж повідомлення про помилку ...). Проект зараз активно не використовує одиничні тести, але доведеться це вивчити в якийсь момент ...
Nicolas Miari

5

+1 ілівкапра

Крім того, використовуйте текстовий редактор, щоб видалити наступні два елементи з вашого файлу MyAppSwift.xcodeproj / project.pbxproj , знайдіть TEST_HOST

Тепер заново відкрийте проект та запустіть майстра перетворення знову.

    4EFFFAE51B53D5D8003CD25A /* Debug */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            GCC_PREPROCESSOR_DEFINITIONS = (
                "DEBUG=1",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Debug;
    };
    4EFFFAE61B53D5D8003CD25A /* Release */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Release;
    };

5

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

Спробуйте скористатися цими кроками:

  1. Виберіть проект ліворуч від Xcode.
  2. Перейдіть до Цілей і виберіть Тести проектів.
  3. Виберіть вкладку Загальні та виберіть Розташовується програму Хост та виберіть Хост-додаток.
  4. Перетворити або запустити проект.

Спроба цих кроків працювала для мене.


0

У моєму випадку я видалив ціль тестування, після чого повторно додав її, використовуючи цілі + нижче та вибравши "Пакет тестування блоку iOs"

Чомусь у цьому сталася помилка компіляції, тому я змінив "Проміжний шлях файлів збірки за конфігурацією: для моєї тестової цілі на $ (PROJECT_TEMP_DIR) / $ (CONFIGURATION) як для налагодження, так і для випуску. Це дозволило компіляції працювати.


-1

Виправте це в 3 дії:

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