Xcode 8 Beta - Konversi ke Sintaks Swift Saat Ini Gagal: Tidak dapat menemukan host uji

115

Saya menerima pesan kesalahan saat mencoba menggunakan Wizard Konversi Xcode 8. Setelah mencoba me-reboot, mengunduh kode baru, dan menghapus file DerivedData saya, saya tidak dapat menghindari kesalahan ini:

Konversi ke Sintaks Swift Saat Ini Gagal: Tidak dapat menemukan host uji

Saya telah mencoba kedua opsi yaitu: Swift 2.3 dan Swift 3. Setelah saya memilih versi, saya langsung mendapatkan kesalahan itu.

Berikut tangkapan layar dari kesalahan tersebut:

Xcode 8 Konversi Pesan Kesalahan

thejuki
sumber
Saya memiliki masalah yang sama di sini. Proyek lain yang lebih kecil dapat diubah dengan baik.
Gondomir
Saya tidak yakin apa yang menyebabkannya. Ini memungkinkan saya memilih modul untuk dikonversi. Semua modul menghasilkan kesalahan yang sama.
thejuki
Apa itu "host uji"? Ini menunjukkan file DerivedData / ding / Build / Products / Debug-iphoneos / ding.app / ding yang tidak ada setelah Menghapus folder DerivedData.
Gondomir
Anda juga dapat memeriksa versi bahasa Swift di pengaturan Build. Coba gunakan versi yang lebih rendah.
iPhoneDeveloper

Jawaban:

306

Ini berhasil untuk saya:

  1. Pilih proyek Xcode di browser kiri.
  2. Klik pada target pengujian Anda di Generaltab Proyek .
  3. Ungkapkan "Pengujian". Dalam proyek saya, tombol tarik-turun "Aplikasi Host" kosong. Pilih aplikasi host yang sesuai.
  4. Coba buat target pengujian Anda sekarang. Jika itu berhasil maka mengubah sintaks juga.

Saya mengalami masalah ini setelah menginstal Xcode 8 beta jadi saya menganggap ini terkait.

Kredit Gambar untuk @karthikkck masukkan deskripsi gambar di sini

iluvcapra.dll
sumber
5
Itu berhasil untuk saya. Terima kasih! Untuk klarifikasi: Klik dan pilih target pengujian Anda pada pemilih di sebelah kiri judul tab Umum.
thejuki
5
Terima kasih, bekerja untuk saya juga. Perhatikan di sini detail gila yang dapat membantu orang lain juga: bidang "Aplikasi Host" sudah diisi dengan nilai yang benar, tetapi hanya menonaktifkannya dan kembali ke nilai aslinya sudah membuatnya berfungsi.
mz2
5
Untuk apa itu layak Aplikasi Host saya disetel ke "custom". Mengubah ke satu-satunya opsi yang tersedia memperbaiki masalah. Terima kasih!
Mark McCorkle
1
Di mana menemukan yang disebutkan di langkah 3? @Bharathi
JayVDyk
2
Saya tidak memiliki bagian pengujian di tab umum saya ??
Deuce bigalow
62

Saya membutuhkan sedikit waktu untuk menemukan tarik - turun "Aplikasi Host" yang disebutkan dalam jawaban yang sangat membantu oleh iluvcapra.

Jadi ini yang dia maksud:

Di sinilah Anda menemukan menu tarik-turun. Pilih target utama Anda.

Di sinilah Anda menemukan menu tarik-turun

Oliver Reinhard
sumber
22

Saya menemukan perbaikan mudah untuk ini, cukup edit Skema Anda dan nonaktifkan tes.

masukkan deskripsi gambar di sini

Dan jalankan konversi lagi.

Never_be
sumber
1
Terima kasih! ini berhasil untuk saya, sedangkan jawaban yang diterima tidak.
daver
Ini. Meskipun saya sudah menyetel "Aplikasi Host" dengan benar, itu tidak berhasil. Saya juga tidak bisa menjalankan tes (mendapatkan pesan kesalahan yang sama ...). Proyek ini tidak secara aktif menggunakan pengujian unit sekarang, tetapi harus memeriksanya di beberapa titik ...
Nicolas Miari
5

+1 iluvcapra

Atau, gunakan editor teks untuk menghapus dua item berikut dari file MyAppSwift.xcodeproj / project.pbxproj Anda , cari TEST_HOST

Sekarang, buka kembali proyek Anda dan jalankan wizard konversi lagi.

    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;
    };
Scott Nguyen
sumber
5

masukkan deskripsi gambar di sini

Silakan coba Langkah-langkah ini:

  1. Pilih proyek Anda di sisi kiri Xcode.
  2. Pergi ke Target dan pilih Tes Proyek Anda.
  3. Pilih Tab Umum dan pilih drop-down Aplikasi Host dan pilih Aplikasi Host Anda.
  4. Ubah atau Jalankan proyek Anda.

Mencoba langkah-langkah ini berhasil untuk saya.

Karthickkck
sumber
0

Dalam kasus saya, saya menghapus target pengujian saya, lalu menambahkannya kembali menggunakan + di bawah target dan memilih "iOs Unit Testing Bundle"

Untuk beberapa alasan ini mendapat kesalahan kompilasi, jadi saya mengubah "Per-konfigurasi Jalur File Pembangunan Menengah: untuk target pengujian saya menjadi $ (PROJECT_TEMP_DIR) / $ (CONFIGURATION) untuk debug dan rilis. Ini memungkinkan kompilasi untuk bekerja.

Mark80
sumber
-1

Perbaiki ini dalam 3 langkah:

  1. Pertama, hapus target pengujian Anda
  2. Pilih Edit -> Konversi -> Ke sintaks Swift saat ini ... dan lakukan konversi
  3. Kemudian tambahkan target tes baru
Marmoy
sumber