Xcode 8 Beta - การแปลงเป็นไวยากรณ์ Swift ปัจจุบันล้มเหลว: ไม่พบโฮสต์ทดสอบ


115

ฉันได้รับข้อความแสดงข้อผิดพลาดเมื่อพยายามใช้ตัวช่วยสร้างการแปลงของ Xcode 8 หลังจากลองรีบูตดาวน์โหลดโค้ดใหม่และลบไฟล์ DerivedData ของฉันฉันไม่สามารถหลีกเลี่ยงข้อผิดพลาดนี้ได้:

การแปลงเป็นไวยากรณ์ Swift ปัจจุบันล้มเหลว: ไม่พบโฮสต์ทดสอบ

ฉันได้ลองใช้ทั้งสองตัวเลือก ได้แก่ Swift 2.3 และ Swift 3 หลังจากฉันเลือกเวอร์ชันฉันได้รับข้อผิดพลาดนั้นทันที

นี่คือภาพหน้าจอของข้อผิดพลาด:

Xcode 8 แปลงข้อความแสดงข้อผิดพลาด


ฉันมีปัญหาเดียวกันที่นี่ โครงการอื่นที่เล็กกว่าแปลงได้ดี
Gondomir

ฉันไม่แน่ใจว่าอะไรเป็นสาเหตุของมัน ช่วยให้ฉันเลือกโมดูลที่จะแปลง โมดูลทั้งหมดเกิดข้อผิดพลาดเดียวกัน
thejuki

"โฮสต์ทดสอบ" คืออะไร? มันแสดงไฟล์ DerivedData / ding / Build / Products / Debug-iphoneos / ding.app / ding ซึ่งไม่มีอยู่หลังจากลบโฟลเดอร์ DerivedData
Gondomir

คุณยังสามารถตรวจสอบเวอร์ชันภาษา Swift ได้ในการตั้งค่า Build ลองใช้รุ่นที่ต่ำกว่า
iPhoneDeveloper

คำตอบ:


306

สิ่งนี้ใช้ได้ผลสำหรับฉัน:

  1. เลือกโครงการ Xcode ในเบราว์เซอร์ทางซ้าย
  2. คลิกที่เป้าหมายการทดสอบของคุณในGeneralแท็บของโครงการ
  3. เปิดเผย "การทดสอบ" ในโครงการของฉันปุ่มแบบเลื่อนลง "แอปพลิเคชันโฮสต์" ว่างเปล่า เลือกแอปพลิเคชันโฮสต์ที่เหมาะสมของคุณ
  4. ลองสร้างเป้าหมายการทดสอบของคุณตอนนี้ หากประสบความสำเร็จการแปลงไวยากรณ์ก็ควรเช่นกัน

ฉันมีปัญหานี้หลังจากติดตั้ง Xcode 8 beta ดังนั้นฉันคิดว่ามันเกี่ยวข้องกัน

เครดิตภาพ @karthikkck ใส่คำอธิบายภาพที่นี่


5
ที่ได้ผลสำหรับฉัน ขอบคุณ! เพื่อความกระจ่าง: คลิกและเลือกเป้าหมายการทดสอบของคุณบนตัวเลือกทางด้านซ้ายของชื่อแท็บทั่วไป
thejuki

5
ขอบคุณทำงานให้ฉันด้วย สังเกตรายละเอียดที่น่าสนใจที่อาจช่วยผู้อื่นได้เช่นกัน: ช่อง "แอปพลิเคชันโฮสต์" มีค่าที่ถูกต้องอยู่แล้ว แต่เพียงแค่ปิดและกลับไปเป็นค่าเดิมก็ทำให้ใช้งานได้
mz2

5
สำหรับสิ่งที่คุ้มค่า Host Application ของฉันถูกตั้งค่าเป็น "กำหนดเอง" การเปลี่ยนเป็นตัวเลือกเดียวที่ใช้ได้ช่วยแก้ปัญหาได้ ขอบคุณ!
Mark McCorkle

1
จะหาสิ่งที่กล่าวถึงในขั้นตอนที่ 3 ได้ที่ไหน? @Bharathi
JayVDiyk

2
ฉันไม่มีส่วนการทดสอบในแท็บทั่วไปของฉัน ??
Deuce bigalow

62

ฉันต้องเสียเวลาสักหน่อยในการค้นหาแบบเลื่อนลง "แอปพลิเคชันโฮสต์" ที่กล่าวถึงในคำตอบที่เป็นประโยชน์อย่างอื่นโดย iluvcapra

นี่คือสิ่งที่เขาหมายถึง:

คุณจะพบเมนูแบบเลื่อนลง เลือกเป้าหมายหลักของคุณ

คุณจะพบเมนูแบบเลื่อนลง


22

ฉันพบวิธีแก้ไขที่ง่ายเพียงแก้ไข Scheme ของคุณและปิดใช้งานการทดสอบ

ใส่คำอธิบายภาพที่นี่

และเรียกใช้การแปลงอีกครั้ง


1
ขอบคุณ! สิ่งนี้ใช้ได้ผลสำหรับฉันในขณะที่คำตอบที่ยอมรับไม่ได้
daver

นี้. แม้ว่าฉันจะตั้งค่า "แอปพลิเคชันโฮสต์" ไว้อย่างถูกต้องแล้ว แต่ก็ไม่ได้ผล ฉันไม่สามารถทำการทดสอบได้ (ได้รับข้อความแสดงข้อผิดพลาดเดียวกัน ... ) โครงการไม่ได้ใช้การทดสอบหน่วยในขณะนี้ แต่จะต้องพิจารณาในบางประเด็น ...
Nicolas Miari

5

+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

ใส่คำอธิบายภาพที่นี่

โปรดลองทำตามขั้นตอนเหล่านี้:

  1. เลือกโครงการของคุณทางด้านซ้ายของ Xcode
  2. ไปที่เป้าหมายและเลือกการทดสอบโครงการของคุณ
  3. เลือกแท็บทั่วไปและเลือกแอปพลิเคชันโฮสต์แบบเลื่อนลงและเลือกแอปพลิเคชันโฮสต์ของคุณ
  4. แปลงหรือเรียกใช้โครงการของคุณ

การลองทำตามขั้นตอนเหล่านี้ได้ผลสำหรับฉัน


0

ในกรณีของฉันฉันลบเป้าหมายการทดสอบของฉันจากนั้นเพิ่มอีกครั้งโดยใช้ + ด้านล่างเป้าหมายและเลือก "iOs Unit Testing Bundle"

ด้วยเหตุผลบางประการทำให้เกิดข้อผิดพลาดในการคอมไพล์ดังนั้นฉันจึงเปลี่ยน "Per-configuration Intermediate Build Files Path: สำหรับเป้าหมายการทดสอบของฉันเป็น $ (PROJECT_TEMP_DIR) / $ (CONFIGURATION) สำหรับทั้งการดีบักและรีลีสซึ่งทำให้คอมไพล์ทำงานได้


-1

แก้ไขใน 3 ขั้นตอน:

  1. ก่อนอื่นให้ลบเป้าหมายการทดสอบของคุณ
  2. เลือกแก้ไข -> แปลง -> เป็นไวยากรณ์ Swift ปัจจุบัน ... และทำการแปลง
  3. จากนั้นเพิ่มเป้าหมายการทดสอบใหม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.