2012-03-05 25 views
18

Tôi đã ở sau bài đăng blog: Adding unit tests to existing project.OCUnit kiểm tra dự án iOS hiện có. "Ld: không tìm thấy file"

Tôi nhận được tuy nhiên lỗi này:

ld: File Not Found: xây dựng/Sản phẩm/Debug- iphoneos/MyApp.app/MyApp lệnh /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang thất bại với mã thoát 1

tôi có thuộc tính mục tiêu thử nghiệm của tôi,

Bundle Loader = $ (BUILT_PRODUCTS_DIR) /MyApp.app/MyApp

thử nghiệm Host = $ (BUNDLE_LOADER)

(mà cả hai tương đương với: xây dựng/Debug-iphoneos/MyApp. app/MyApp)

Đoán ngẫu nhiên của tôi là các biến đó không trỏ đến cùng vị trí như trình biên dịch. "build/Debug-iphoneos/..." vs "Build/Products/Debug-iphoneos/..."

Tôi có thể hoàn toàn sai khi đoán, nhưng dù bằng cách nào, có ai biết điều gì gây ra lỗi này hay không làm thế nào tôi sẽ sửa chữa những biến môi trường?

Nhờ sự giúp đỡ,

Sam

+1

Có thể bạn có một hệ thống tập tin nhạy cảm và trường hợp có trường hợp sai về một bức thư? Tôi đã từng thấy cái đó trước đây. – fisk

Trả lời

18

Dig vào ~/Library/Developer/Xcode/DerivedData, xuống vào dự án của bạn. Từ đó, hãy làm theo đường dẫn Bundle Loader. Xem những gì thực sự ở đó.

Bây giờ hãy xem Info.plist của bạn (hoặc cài đặt Thông tin của mục tiêu của bạn) và tìm "Tệp thực thi" hoặc CFBundleExecutable. Nếu đó là ${EXECUTABLE_NAME}, hãy kiểm tra cài đặt "Tên sản phẩm" của mục tiêu của bạn.

+5

Một điều cần kiểm tra khác là cài đặt 'Bộ nạp Bundle' cho mục tiêu thử nghiệm đơn vị của bạn. Điều đó có đường dẫn đến ứng dụng thực thi chủ yếu là hardcoded từ khi dự án Xcode 4 được tạo ra. (Tôi đã thay đổi tên sản phẩm trong mục tiêu ứng dụng và mục tiêu thử nghiệm đơn vị không có ý tưởng về nó.) – zekel

+0

Tôi đã có cùng một vấn đề và điều này được giải quyết. Vấn đề là tôi đã đổi tên mục tiêu chính, và sau đó Xcode bị mất. – Giovanni

+0

CMD + Shift + K để "làm sạch dự án" không bao giờ làm tổn thương ai ... – zeroasterisk

6

Tôi đã gặp sự cố tương tự - nó không có ý nghĩa vì đường dẫn mà nó đang sử dụng cho tệp thực thi thực sự tồn tại. Nhìn kỹ vào lệnh biên dịch đã tiết lộ rằng có thêm khoảng trống trên đường dẫn bộ nạp là vấn đề.

+5

Cảm ơn! Việc tìm kiếm này vừa giúp tôi tiết kiệm thời gian. Đã được lái xe cho tôi hạt - đã nhận được một tập tin không tìm thấy nhiều lần trên một bộ nạp bó rõ ràng đã tồn tại. Trong trình soạn thảo cài đặt xây dựng, '$ (BUILT_PRODUCTS_DIR)/FSMTest.app/FSMTest' không giống với' $ (BUILT_PRODUCTS_DIR)/FSMTest.app/FSMTest' (ví dụ: với không gian được thêm trước). Apple có thể không thiết kế đối thoại trình soạn thảo cài đặt với một chút kiểm tra không? – Cris

+1

Trên một lưu ý tương tự, không đặt dấu ngoặc kép xung quanh điều này, ngay cả khi bạn có dấu cách trong tên ứng dụng của bạn. –

+1

Để được rõ ràng, không đặt * bất kỳ * dấu ngoặc kép xung quanh này. Cả hai dấu ngoặc kép cũng không đơn đều làm việc cho tôi, nhưng không có dấu ngoặc kép nào làm việc DID. –

0

Tìm kiếm "Đường dẫn tìm kiếm" bên trong Cài đặt xây dựng. Có thể có các đường dẫn không tồn tại trong "Đường dẫn tìm kiếm khung" hoặc các đường dẫn khác như Đường dẫn tìm kiếm thư viện

0

Có khả năng bạn đã thay đổi tên của ứng dụng sau khi tạo dự án. Vì vậy, tên của dự án và ứng dụng của bạn khác nhau. Trong đường dẫn, sử dụng tên ứng dụng của bạn vì nó sẽ xuất hiện trên cửa hàng itunes thay vì tên dự án của bạn.

0

Tôi đã gặp vấn đề tương tự trước đó và tôi đã giải quyết vấn đề này bằng cách kiểm tra Cài đặt xây dựng -> SDK cơ sở của mục tiêu thử nghiệm đơn vị của mình và đảm bảo nó đúng dựa trên loại dự án của bạn (OSX hoặc iOS).

0

Trong podfile bạn hãy chắc chắn rằng bạn đã bao gồm các xét nghiệm của bạn như là một mục tiêu

mục tiêu 'YourAppNameTests' làm use_frameworks! pod 'AFNetworking', '2.6.0' pod 'TYMProgressBarView' cuối

này sẽ tự động thêm liên kết nhị phân với Libraries Khung

enter image description here

Các vấn đề liên quan