Saya telah bekerja cukup lama untuk membuat aplikasi iPhone. Hari ini ketika baterai saya hampir habis, saya sedang bekerja dan terus-menerus menyimpan file sumber saya kemudian listrik padam ...
Sekarang ketika saya menghubungkan kembali komputer saya dan mendapatkan daya yang baik, saya mencoba membuka file proyek saya dan saya mendapatkan kesalahan:
Tidak Dapat Membuka Proyek
Proyek ... tidak dapat dibuka karena file proyek tidak dapat diurai.
Adakah cara agar orang tahu bahwa saya dapat pulih dari ini? Saya mencoba menggunakan file proyek yang lebih lama dan memasukkannya kembali dan kemudian mengkompilasi. Ini memberi saya kesalahan yang funky yang mungkin karena tidak menemukan semua file yang diinginkannya ...
Saya benar-benar tidak ingin membangun kembali proyek saya dari awal jika memungkinkan.
EDIT
Oke, saya melakukan perbedaan antara ini dan file proyek yang sedikit lebih tua yang berfungsi dan melihat bahwa ada beberapa korupsi di file tersebut. Setelah menggabungkannya (bagian yang baik dan terbaru) sekarang berfungsi.
Poin bagus tentang SVN. Saya punya satu, tetapi ada beberapa hal lucu yang mencoba menyinkronkan Xcode dengannya. Saya pasti akan menghabiskan lebih banyak waktu dengannya sekarang ... ;-)
Jawaban Muhammad sangat membantu (dan membantu memperbaiki saya). Namun, hanya menghapus >>>>>>> ======= <<<<<<< tidak cukup untuk memperbaiki masalah parse di project.pbxproj (untuk saya) saat menyimpan perubahan dari kedua cabang setelah penggabungan.
Saya mengalami konflik penggabungan di bagian PBXGroup (yang awalnya ditandai dengan komentar blok seperti ini: / * Mulai bagian PBXGroup * /) dari file project.pbxproj. Namun, masalah yang saya temui dapat terjadi di tempat lain di file project.pbxproj juga.
Di bawah ini adalah penyederhanaan konflik penggabungan yang saya temui:
Ketika saya menghapus penanda konflik gabungan, inilah yang tersisa:
Biasanya, menghapus penanda konflik gabungan akan memperbaiki masalah parse di file project.pbxproj dan memulihkan integritas ruang kerja. Kali ini tidak.
Di bawah ini adalah apa yang saya lakukan untuk mengatasi masalah tersebut:
Saya sebenarnya harus menambahkan 2 baris di akhir PBXGroup pertama.
Anda dapat melihat bahwa jika saya memilih untuk membuang perubahan dari Head atau cabang penggabungan, tidak akan ada masalah parse! Namun, dalam kasus saya, saya ingin mempertahankan kedua grup yang saya tambahkan dari setiap cabang dan hanya menghapus penanda gabungan saja tidak cukup; Saya harus menambahkan baris tambahan ke file project.pbxproj untuk mempertahankan format yang benar.
Jadi, jika Anda mengalami masalah penguraian setelah Anda mengira telah menyelesaikan semua konflik penggabungan, Anda mungkin ingin melihat lebih dekat pada .pbxproj dan memastikan tidak ada masalah pemformatan!
sumber
Saya mendapat kesalahan yang sama persis karena Cordova akan mengizinkan Anda membuat proyek dengan spasi di dalamnya, dan Xcode tidak tahu cara menanganinya.
sumber
Saya memiliki masalah serupa.
Berikut adalah langkah-langkah untuk mengatasinya:
Arahkan ke folder tempat Anda
projectName.xcodeproj
.Klik kanan dan pilih '
Show Package Contents
'. Anda akan dapat melihat daftar file dengan.pbxproj
ekstensi.Pilih
project.pbxproj
. Klik kanan dan buka file ini menggunakan 'Text Edit
'.Anda akan bisa melihat
<<<<<< .mine
,============
dan>>>>>>>>>> .r123
. Ini biasanya konflik yang muncul saat Anda mengambil pembaruan dari SVN. Hapus ini dan simpan file.Sekarang, Anda dapat membuka proyek tanpa pesan kesalahan apa pun .
sumber
Analisis visual dari file proyek Xcode tidak membantu saya untuk menemukan kesalahan setelah penggabungan. Setelah melihat ke syslog, temukan baris seperti itu ketika Xcode mencoba mengurai file:
Setelah memperbaiki proyek itu dapat dibuka dengan baik.
sumber
Analisis sintaks file proyek Anda. Periksa di dalam proyek Anda di terminal:
plutil -lint project.pbxproj
Ini akan menunjukkan kesalahan dari parser.
Kemungkinan masalah : Beberapa proyek menetapkan strategi penggabungan git
union
untuk file proyek. Ini berfungsi untuk sebagian besar waktu, tetapi diam-diam akan mematikan file proyek Anda jika gagal. Strategi ini ditentukan dalam.gitattributes
file di repositori Anda.sumber
Saya menghadapi masalah yang sama baru-baru ini ketika mencoba menggabungkan cabang saya dengan cabang jarak jauh. Namun, tidak ada solusi di atas yang tampaknya sesuai dengan masalah saya.
Tidak ada konflik gabungan antara file project.pbxproj di cabang saya atau cabang jarak jauh. Namun, file projectName.xcodeproj saya akan menolak untuk dibuka karena alasan yang sama seperti yang ditunjukkan dalam pertanyaan yang diajukan.
Solusi saya adalah melihat-lihat project.pbxproj menggunakan editor teks dan menemukan apakah ada penyimpangan dalam sintaks file (misalnya, braket ekstra keriting). Saya mempercepat proses ini dengan berfokus pada baris yang disisipkan atau dihapus di file lama dibandingkan dengan file gabungan. Pada pemeriksaan lebih dekat, saya menemukan penyebab masalah saya adalah pengulangan baris berikut:
di file gabungan saya. Hal ini menyebabkan kurung kurawal tidak tertutup dan akibatnya sintaks pbxproj tidak valid. Menghapus baris di atas memperbaiki masalah saya.
sumber
Saya baru saja mengalami masalah yang sama. Saya menghapus string yang dihasilkan oleh git seperti biasa tetapi Xcode masih menolak untuk membuka file .xcodeproj. Tetapi semuanya benar, tidak ada tanda kurung yang hilang, dll. Akhirnya saya mencoba untuk keluar dari Xcode dan membuka proyek ketika Xcode ditutup .. kemudian berhasil. Saya harap ini membantu seseorang.
EDIT:
untuk menyelesaikan konflik dalam file .xcodeproj Anda, Anda dapat menggunakan skrip praktis ini:
Berikut skripnya:
projectfile =
find -d . -name 'project.pbxproj'
projectdir =echo *.xcodeproj
projectfile = "$ {projectdir} /project.pbxproj" tempfile = "$ {projectdir} /project.pbxproj.out" savefile = "$ {projectdir} /project.pbxproj.mergesave"cat $ projectfile | grep -v "<<<<<<< HEAD" | grep -v "=======" | grep -v "^ >>>>>>>"> $ tempfile mv $ tempfile $ projectfile
Jalankan dari terminal menggunakan perintah sh: sh resol_conflicts.sh
sumber
resolve_conflicts.sh: line 1: -d: command not found resolve_conflicts.sh: line 3: $tempfile: ambiguous redirect
Kembalikan project.pbxproj
svn kembali --filename--
sumber
Langkah-langkah yang harus diikuti: - 1. Navigasikan ke folder tempat projectName.xcodeproj Anda 2. Klik kanan dan pilih 'Show Package Contents'. Anda akan dapat melihat daftar file dengan ekstensi .pbxproj. 3. Pilih project.pbxproj. Klik kanan dan buka file ini menggunakan 'Text Edit'. 4. Anda akan dapat melihat <<<<<<, ============ dan >>>>>>>>>>. Biasanya ini adalah konflik yang muncul saat Anda mengambil pembaruan dari Sourcetree / SVN / GITLAB. Hapus ini dan simpan file. 5. Sekarang, Anda dapat membuka proyek tanpa pesan kesalahan apa pun.
sumber
Sepertinya Anda harus membuat proyek baru di Xcode, masuk ke direktori lama, dan seret semua file sumber, ujung pena, dan sumber daya Anda ke bilah sisi file Xcode di proyek baru. Ini tidak akan memakan waktu lebih dari beberapa menit, kecuali Anda benar-benar melakukan banyak pekerjaan dengan pengaturan atau target build khusus. Baik itu, atau kembali ke check-in terakhir di kontrol sumber Anda dan secara manual tambahkan file kode apa pun yang berubah antara sekarang dan nanti.
sumber
Dan setelah Anda mendapatkan sesuatu bekerja lagi Anda harus melihat ke dalam menggunakan sesuatu seperti subversi atau lincah untuk cadangan dan kontrol revisi. Ingatlah bahwa dia elektron tidak selalu pergi ke tempat yang seharusnya, cadangan awal dan sering!
sumber
ubah nama folder proyek Anda saat ini dan checkout modul proyek yang sama. kemudian tambahkan perubahan file saat ini.
sumber
Cukup periksa file project.pbproject dan lakukan perbedaan terhadap versi file project yang berfungsi.
Seringkali ini terjadi ketika Anda memiliki konflik dari sistem kontrol versi seperti yang diposting di sini: File pengguna tidak dapat diurai dalam subversi di MAC iphone SDK
sumber
Cobalah untuk menemukan HEAD dan _HEAD di antara baris dan hapus kata-kata ini di project.pbxproj. Cadangkan file ini sebelum melakukan ini ..
sumber
Goto PhoneGapTest >> platform Kemudian hapus folder ios setelah itu masuk ke terminal lalu ketik: sudo phonegap build ios setelah itu anda dapat menjalankan proyek
sumber
Dengan mengembalikan, Anda dapat membatalkan kode yang ditarik.
Jika Anda ingin membatalkan permintaan tarik itu, letakkan saja perintah ini di jalur proyek
->
git merge --abort
sumber
Jika Anda tidak menemukan di Text === atau <<< atau >>>> seperti bagi saya, masalahnya sangat sederhana dan menyenangkan ... Saya mengubah nama App di Xcode, tetapi tidak mengubahnya di UnityProjectSettings sebelum membangun - itulah masalahnya ...
sumber
Jika Anda pernah bergabung dan masih mendapatkan masalah yang tidak tahu apa itu, maksud saya bukan tanda perbedaan yang jelas
Kemudian Anda dapat menganalisis file proyek Anda dengan https://github.com/Karumi/Kin , menginstalnya dan menggunakannya
Ini telah membuat kesalahan luar biasa yang tidak memungkinkan proyek terbuka lebih mudah dipahami dan dipecahkan (salah satu hash, grup, dan sebagainya).
Dan omong-omong, ini juga bisa membantu, saya pikir saya belum menggunakannya mencoba untuk membedakan 2 versi file proyek Anda https://github.com/bloomberg/xcdiff jadi ini akan memberi Anda apa yang sebenarnya terjadi.
sumber
subversi akan merusak file proyek saya setelah svn naik hampir setiap minggu. Saya mencoba mencari tahu mengapa ia melakukan ini sekarang dan menemukan masalah ini.
sumber
Ini karena nama proyek tidak boleh memiliki spasi kosong di antara mereka
sumber