2016-06-16 2 views
101

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

Convert to Current Swift Syntax Failed: Could not find test host

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

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

Xcode 8 Convert Error Message

+0

У меня такая же проблема здесь. Другой, меньший, проект преобразует штраф. – Gondomir

+0

Я не уверен, что может быть причиной этого. Это позволяет мне выбирать модули для преобразования. Все модули производят ту же ошибку. – thejuki

+0

Что такое «тестовый хост»? Он показывает файл DerivedData/ding/Build/Products/Debug-iphoneos/ding.app/ding, который не существует после удаления папки DerivedData. – Gondomir

ответ

282

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

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

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

Изображение Кредит @karthikkck enter image description here

+5

Это сработало для меня. Благодаря! Для уточнения: нажмите и выберите целевую аудиторию в селекторе слева от заголовка вкладки Общие. – thejuki

+5

Спасибо, работал и на меня. Отмечая здесь сумасшедшую деталь, которая может помочь и другим: поле «Хост-приложение» уже имело правильное значение, но просто переключилось на него и вернулось к его первоначальному значению, заставив его работать. – mz2

+5

Для чего для моего приложения-хоста установлено значение «custom». Исправлена ​​проблема с единственным доступным вариантом. Благодаря! –

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; 
    }; 
18

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

enter image description here

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

+0

спасибо! это сработало для меня, а принятый ответ - нет. – daver

+0

Это сработало! Спасибо .. –

+0

Это сработало для меня! – Chris

61

Это стоило мне немного времени, чтобы найти «Приложение для хоста», упомянутое в противном случае очень полезный ответ iluvcapra.

Так это то, что он имел в виду:

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

This is where you find the pulldown menu

+0

, который работал для меня, спасибо большое –

+0

Вау!Это работало как шарм! Спасибо за это :) –

+0

Я сделал это по-прежнему, ошибка такая же. –

0

В моем случае я удалил моя цель испытания, а затем повторно добавили его с помощью + ниже целей и выбора «Ios Unit Testing Bundle»

По какой-то причине это получил ошибку компиляции, так Я изменил «Путь к файлам промежуточной сборки для каждой конфигурации: для моей тестовой цели в $ (PROJECT_TEMP_DIR)/$ (КОНФИГУРАЦИЯ) для отладки и выпуска. Это позволило компиляции работать.

-1

Исправить это в 3 этапа:

  1. Сначала удалите свою цель тест
  2. выберите Edit -> Преобразовать -> Для текущего Swift синтаксиса ... и выполнить преобразование
  3. Затем добавить новую цель тест
4

enter image description here

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

  1. Выберите проект на левой си de Xcode.
  2. Перейдите в раздел Цели и выберите свои проектные тесты.
  3. Выберите вкладку «Общие» и выберите «Хост-приложение» и выберите «Хост-приложение».
  4. Преобразование или запуск проекта.

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

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