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 синтаксис... и выполните преобразование
- Затем добавьте новую тестовую цель