Xcode 8 Beta - преобразовать в текущий синтаксис Swift: не удалось найти тестовый хост

Я получаю сообщение об ошибке при попытке использовать Xcode 8 Convert Wizard. После попытки перезагрузки, загрузки нового кода и удаления файлов DerivedData я не могу избежать этой ошибки:

Преобразовать в текущий синтаксис Swift не удалось: не удалось найти тестовый хост

Я пробовал оба варианта: Swift 2.3 и Swift 3. После выбора версии я сразу получаю эту ошибку.

Вот скриншот об ошибке:

Xcode 8 Преобразовать сообщение об ошибке

Ответ 1

Это сработало для меня:

  • Выберите проект Xcode в браузере lefthand.
  • Нажмите на тестовую цель на вкладке General.
  • Раскрыть "Тестирование". В моем проекте кнопка "Хост-приложение" была пуста. Выберите подходящее хост-приложение.
  • Попробуйте создать тестовую цель. Если это удастся, тогда необходимо также преобразовать синтаксис.

У меня возникла эта проблема после установки Xcode 8 beta, поэтому я предполагаю, что это связано.

Ответ 2

Мне стоило немного времени, чтобы найти раскрывающееся меню "Host Application", упомянутое в другом очень полезном ответе iluvcapra.

Вот что он имел в виду:

Здесь вы найдете раскрывающееся меню. Выберите главную цель.

Здесь вы найдете раскрывающееся меню

Ответ 3

Я нашел для вас легкое исправление, просто отредактируйте свою схему и отключите тесты.

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

И снова запустите преобразование.

Ответ 4

+1 iluvcapra

В качестве альтернативы, используйте текстовый редактор для удаления следующих двух элементов из файла 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

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

Попробуйте следующие шаги:

  • Выберите проект в левой части Xcode.
  • Перейдите в "Цели" и выберите "Тесты проекта".
  • Выберите вкладку "Общие" и выберите "Хост-приложение" и выберите "Хост-приложение".
  • Преобразование или запуск проекта.

Попытка этих шагов сработала для меня.

Ответ 6

В моем случае я удалил цель тестирования, а затем повторно добавил его с помощью + ниже целевых значений и выбрав "iO Unit Unit Bingle Bundle"

По какой-то причине это привело к ошибке компиляции, поэтому я изменил "Per-Configuration Intermediate Build Files Path: для моей тестовой цели в $(PROJECT_TEMP_DIR)/$(CONFIGURATION) для отладки и выпуска. Это позволило компилировать работа.

Ответ 7

Зафиксируйте это в 3 этапа:

  • Сначала удалите тестовую цель.
  • Выберите Edit → Convert → To current Swift синтаксис... и выполните преобразование
  • Затем добавьте новую тестовую цель