2010-05-31 21 views
5

Tôi đã tạo một khung làm việc Cocoa mà tôi muốn phân phối lại. Vấn đề là tuy nhiên, nó sẽ không chạy bên ngoài Xcode. Tôi đã đọc điều gì đó về số @executable_path/../Frameworks mà tôi không bao gồm, vì tôi không biết phải đặt ở đâu:/Tạo một khung Cocoa

Do đó tôi chạy ứng dụng của mình bằng Xcode bằng biến số DYLD_FRAMEWORK_PATH hoạt động tốt, nhưng chỉ trong Xcode - nếu tôi cố gắng tự chạy nó, nó sẽ bị treo ngay lập tức và nói IMAGE NOT FOUND.

Tôi chắc chắn @executable_path/../Frameworks là những gì bị thiếu, nhưng tôi không biết phải đặt ở đâu.

Có ai có thể giúp tôi không? :)

Cảm ơn

+1

Ý bạn là gì bởi _running_ khung làm việc của bạn? Các khung thường không có mã thực thi trực tiếp. Ngoài ra, bạn đã đọc Hướng dẫn lập trình khung chưa? http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183-SW1 Có lẽ thậm chí chỉ lướt qua nó sẽ cho bạn câu trả lời của bạn. – zneak

+0

tất nhiên tôi đã đọc qua nó. Khung được nhập vào ứng dụng của tôi, nhưng nó bị treo khi khởi động. Hướng dẫn cũng nói về việc thiết lập '@executable_path /../ Frameworks', nhưng tôi không biết nó ở đâu. – Pripyat

+0

Tôi đã cố gắng đặt tham số "thư mục cài đặt" trong cài đặt Dự án nhưng vẫn không thành công. Nó vẫn nói 'dyld: Thư viện chưa được tải:' và 'Không tìm thấy hình ảnh' – Pripyat

Trả lời

3

Sau đây là cách tôi thường quản lý điều:

  1. Trong dự án Xcode của khung, thiết lập thư mục cài đặt để @rpath

  2. Thêm khuôn khổ để ứng dụng của bạn Dự án Xcode. Thêm một giai đoạn xây dựng Sao chép tệp, chọn Khung trong cửa sổ bật lên Đích, và đảm bảo khuôn khổ của bạn được thêm vào để nó sẽ được sao chép vào thư mục Khung của ứng dụng của bạn khi nó được xây dựng.

  3. Cuối cùng, trong cài đặt của dự án, hãy thêm @loader_path /../ Frameworks vào Đường dẫn tìm kiếm đường chạy.

+0

Tôi nghĩ rằng nó không hài lòng với @executable_path - Tôi đã tải lên ảnh chụp màn hình nhật ký chạy tại đây: http://web.me.com/david.schiefer/error.tiff – Pripyat

+0

Nếu bạn sử dụng @rpath không cần cho @executable_path, vì vậy tôi không chắc tại sao bạn lại gặp lỗi này. – sbooth

0

Bạn có thực sự sao chép khung công tác vào gói ứng dụng của mình không? Hãy tìm thư mục có tên MacOS, đó là những gì chứa nhị phân. Nên có một thư mục khác ở cùng cấp gọi là Khung và cần có khung bên trong nó.

Nếu không có ở đó, bạn cần tạo giai đoạn xây dựng tệp sao chép cho ứng dụng sao chép khuôn khổ vào thư mục Khung.

+0

khi nhấp vào "Hiển thị nội dung", tôi thấy một Khung (nó có khung của tôi trong đó), Tài nguyên và MacOS. – Pripyat

+0

và có nó có khuôn khổ của tôi trong nó, nhưng nó vẫn không hoạt động – Pripyat

+0

OK, điều tiếp theo là để tìm ra nơi ứng dụng nghĩ rằng nó nên được. Mở một phiên đầu cuối, đi vào thư mục MacOS và chạy 'otool -L' trên nhị phân. – JeremyP

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