Saya baru saja memutakhirkan ke xcode 4.0 dan saya tidak bisa lagi menyebarkan ke iPhone, saya mendapatkan Kesalahan Apple Mach-O Linker, masih berfungsi untuk simulator sekalipun.
Ld /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel normal armv7
cd /Users/yveswheeler/iParcel
setenv IPHONEOS_DEPLOYMENT_TARGET 3.2
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -L/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -F/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -filelist /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel.LinkFileList -dead_strip -all_load -ObjC -lxml2 -miphoneos-version-min=3.2 -framework UIKit -framework CoreGraphics -framework QuartzCore /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a -framework AddressBook -lz.1.2.3 -framework Foundation -framework CFNetwork -framework MobileCoreServices -framework SystemConfiguration -framework MessageUI -framework AudioToolbox -o /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a: No such file or directory
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 failed with exit code 1
objective-c
iphone
xcode
xcode4
CodeVomit
sumber
sumber
Jawaban:
Berikut ini adalah solusi permanen. Proyek yang biasanya ditimpa dapat menyebabkan perkembangan ini. Coba metode ini.
-UPDATE - Kesalahan dentang - Kesalahan Mach-O Linker
Dalam beberapa kasus, jendela log kesalahan menampilkan kesalahan .xctest, untuk memperbaikinya
-> Pilih proyek Anda
-> Di samping ini (tepat sebelum tab General) pilih file projectTest Anda dari dropdown
-> Ada satu opsi (seperti ProjNameTests)
-> Di Aplikasi Host, pilih proyek Anda dari dropdown hanya jika itu menunjukkan kustom
DIBUAT!
Metode lama dihapus
sumber
Saya memiliki masalah yang sama dan masalahnya adalah saya secara tidak sengaja mengimpor file .m bukannya .h dalam file implementasi - semoga membantu
sumber
Baru saja mengalami masalah yang sama.
Solusinya (untuk saya) = periksa kerangka kerja Anda.
Dalam kasus saya, saya telah menambahkan kelas yang terkait dengan CoreData tanpa "CoreData.framework". Menambahkannya memecahkan keluhan MACH_O.
sumber
libPods.a
file untuk saya (karenanya simbol duplikat). Terima kasih, Dante!buka file .xcworkspace bukan .xcodeproj. Saya ulangi file .xcworkspace yang terbuka. Semua kesalahan Anda akan hilang.
sumber
Re: Masalah sebagaimana diuraikan dalam judul:
Hanya untuk berjaga-jaga jika ada orang yang melewatkan ...
Saya menemukan kesalahan ini setelah menginstal Xcode4 versi baru dan menyeret file yang ada ke proyek baru. Saya gagal menemukan bahwa kotak centang 'tambahkan ke target' dibiarkan tidak dicentang di dialog 'Pilih opsi untuk menambahkan file:'. Mengoreksi kelalaian saya di Target> Build Phases> Compile Sources menyelesaikan masalah.
sumber
Menu> Produk> Bersih, inilah yang membuatnya berfungsi. Saya tidak yakin tentang orang lain. Saya menambahkan foto untuk ditampilkan.
sumber
Kesalahan aneh. Bagi saya, saya baru saja membersihkan dan memulai ulang Xcode dan masalahnya hilang.
sumber
Perbaiki: Bangun Pengaturan> Aktifkan Bitcode> Tidak
sumber
Tidak satu pun dari jawaban ini yang membantu saya. Kemudian saya mencoba menginstal ulang Cocoapods:
Masalah terpecahkan!
sumber
Masalahnya adalah bahwa di XCode 4, dependensi tidak menganggap pengaturan arsitektur proyek utama, seperti yang mereka lakukan sebelumnya di XCode 3. Saya harus melalui semua dependensi saya mengaturnya untuk arsitektur yang benar.
sumber
Saya memiliki hal yang sama dan berhasil menyelesaikannya.
Dalam preferensi xcode , tab lokasi mengubah nilai di bawah membangun lokasi menjadi "
Place build products in locations specified by targets"
.sumber
Saya berjuang dengan ini sebentar, dan dalam kasus saya itu akhirnya menjadi Pengaturan Bangun di bawah Jalur Pencarian yang disebut FRAMEWORK_SEARCH_PATHS. Itu membantu saya memilih tombol "Level", yang tampaknya membandingkan pengaturan proyek, target, dan "Terselesaikan" saya. Saya melihat bahwa pengaturan target saya entah bagaimana mengesampingkan default "$ (diwarisi)", dan nilai yang diganti adalah apa yang XCode "selesaikan" pengaturan menjadi. Ketika saya menghapus override, yang dalam hal ini menentukan 3,2 sdk, kesalahan linker hilang - seperti yang beberapa baru saja muncul peringatan tentang setiap kelas di mana saya memanggil metode post-4.0.
Tentang peringatan itu - saya tidak pernah melihatnya sebelum saya menambahkan kerangka kerja MessageUI untuk perubahan baru-baru ini. Saya curiga, tetapi tidak tahu pasti, bahwa ketika saya menambahkan kerangka kerja itu, XCode mencoba melakukan sesuatu yang pintar dengan menambahkan penggantian itu ke target saya. Saya tidak melakukannya secara eksplisit pada titik mana pun. Peringatan itu, misalnya, tentang metode URLByAppendingPathComponent dari NSURL, yang tidak muncul sampai SDK 4.0. Sebelum menambahkan kerangka kerja MessageUI, saya tidak pernah mendapatkan peringatan itu. Dan karena saya menghapus override, saya tidak lagi mendapatkannya.
sumber
Saya punya masalah ini dan mengimpornya
QuartzCore
diperbaiki.sumber
Mengubah "Build Hanya Arsitektur Aktif" menjadi Ya di CordovaLib.xcodeproj -> Pengaturan Build melakukan trik untuk saya. sebelumnya aplikasi berjalan di simulator, tetapi tidak di perangkat.
sumber
Anda mungkin perlu memperbarui pengaturan bangunan Anda.
Verifikasi versi target iOS dan arsitektur prosesor, karena Anda mungkin tidak memiliki SDK lama dengan XCode 4.
Anda mungkin melihat «SDK Hilang» pada pengaturan build. Ubah itu menjadi apa pun yang berlaku.
sumber
Saya memiliki masalah yang sama: hanya secara tidak sengaja menghapus file .m, sementara .h berada di proyek. Masalahnya hilang ketika saya mengembalikan file .m.
sumber
Periksa untuk memastikan bahwa Anda tidak memiliki jalur pencarian kerangka kerja tertentu yang ditentukan. jika Anda pergi ke info tentang target dan hanya menghapus entri jalur pencarian kerangka kerja itu harus menggunakan default untuk versi penyebaran yang ditentukan.
sumber
Saya hanya mencoba membuat
category class
file dan mendapatkan masalah aneh ini..dan akhirnya ....Cara yang salah untuk membuat kelas kategori yang menyebabkan masalah:
New File
->Cocoa Touch
->Objective-C class
, maka saya memodifikasi nama file menjadi Kategori Kategori suka nama .. (yaituOriginalClass_CategoryName.h/m
untukOriginalClass+CategoryName.h/m
, dan juga memodifikasi konten dalam file).Jalan yang benar di sini:
New File
->Cocoa Touch
->Objective-C category
, dan itu akan secara otomatis menghasilkan file (OriginalClass+CategoryName.h/m
).Oh, betapa bodohnya aku !!
sumber
Jika Anda menggunakan CoreData, dan Anda menggunakan XCode untuk menghasilkan subclass NSManagedObject untuk entitas Anda, pastikan Anda hanya menghasilkan satu untuk setiap entitas.
Masalah saya adalah bahwa ia menghasilkan beberapa subclass NSManagedObject untuk entitas yang sama (dan menempatkannya di folder yang berbeda).
Saya baru saja menghapus semuanya dan membuat ulang subclass NSManagedObject.
sumber
Untuk menambahkan ke daftar hal-hal aneh yang memperbaiki masalah ini ...
Saya punya beberapa variabel CGFloat const dalam file header global seperti itu
Saat saya menghapus ini, semuanya baik-baik saja :)
sumber
NSString static *key = @"someKey"
keconst NSString *key = @"someKey"
Saya memiliki masalah yang persis sama hanya karena saya memiliki dua konstanta yang sama di kelas yang berbeda. Anda juga dapat memiliki masalah ini jika Anda mengimpor file .m bukan file .h
sumber
Tidak yakin apakah itu terkait, tetapi melihat bahwa Anda menjalankan tiga20 perpustakaan, Anda mungkin ingin memeriksa posting ini di situs web mereka: http://three20.info/article/2011-03-10-Xcode4-Support
sumber
Saya memiliki masalah yang sama, dan saya menyelesaikannya. Dalam kasus saya, pengaturan "arsitektur" menyebabkan masalah. Dalam file proyek saya, tab Bangun Pengaturan, Arsitektur ditetapkan ke armv6. Saya mengubahnya ke Standar (armv7), lakukan pembersihan dan bangun. Lalu berhasil!
sumber
Dalam kasus saya masalahnya adalah arsitektur yang berbeda ditentukan di bawah target yang berbeda. Saya sedang membangun target aplikasi saya dengan armv6, armv7 dan cocos2d dengan Standar (amrv7). Pergilah ke pengaturan build dan pastikan arsitektur Anda menyetujui semua target.
sumber
Saya memecahkan masalah ini terlalu aneh!
Pergi ke Target > Bangun Fase > Tautkan Biner dengan perpustakaan :
Hapus semua kerangka kerja Anda dan tambahkan lagi!
Semoga berhasil untuk Anda!
sumber
Untuk bahasa Swift ...
Saya mendapatkan kesalahan ini "ld: file terlalu kecil (panjang = 0) ...."
Dalam kasus saya, saya hanya membersihkan proyek dan kemudian membangunnya kembali ..
Langkah:-
1) Proyek goto -> Bersih
2) Proyek goto -> Build
Semoga ini membantu..
sumber
Ini melakukan trik untuk saya:
Pergi ke
1) Produk> bersih
2) Windows> Proyek
3) Pilih proyek Anda dan klik " Hapus " Data yang diperoleh
4) Produk> Bangun
sumber
Satu kemungkinan: Nyalakan "Pengupasan kode mati" di pengaturan build Xcode 4.
Kemungkinan lain: Bisa jadi Anda beralih menggunakan LLVM untuk beberapa kerangka kerja yang sebelumnya menggunakan GCC. Kembali ke GCC (atau LLVM GCC) dapat menyingkirkan peringatan tersebut.
sumber
Saya salah mendefinisikan konstanta baru dengan nama yang sama dengan konstanta yang ada di file yang berbeda dan itu menyebabkan kesalahan ini bagi saya menggunakan xCode 4.3.1. xCode tidak mengeluh tetapi kompiler tidak menyukainya.
sumber
Saya dapat memperbaiki kesalahan ini dengan mengedit "Jalur Pencarian Perpustakaan"
Itu dipotong di tempat pertama karena saya telah memindahkan beberapa folder, dan yang akhirnya memberikan pengaturan build saya dua jalur pencarian yang berbeda karena mereka secara otomatis ditambahkan ke pengaturan build Anda ketika Anda menghubungkan perpustakaan / kerangka kerja, tetapi mereka tidak selalu dihapus.
Jadi, jika Anda memindahkan pustaka / kerangka kerja yang ditautkan ke direktori yang berbeda dan menautkannya kembali, Anda harus mengedit jalur pencarian secara manual.
Anda mungkin bisa mengelak dengan menghapus library / framework sebelum memindahkannya, tapi saya belum mengujinya.
sumber