Tôi đã tạo một khung Objective-C tùy chỉnh. Tôi muốn nhập nó vào bất kỳ dự án iOS cụ thể nào và sử dụng chức năng được cung cấp của nó trên cả Trình mô phỏng iOS và thiết bị thực tế. Để nhập khung, tôi liên kết nó bằng cách sử dụng các giai đoạn xây dựng Giai đoạn> Liên kết nhị phân với thư viện trong mục tiêu của ứng dụng. Tôi sau đó có thể nhập nó vào một trong các lớp học của tôi với tuyên bố này:Lỗi Xcode 6 - "Thiếu kiến trúc bắt buộc i386" Khi xây dựng cho iOS Simulator
#import <CustomFramework/CustomFramework.h>
tôi có thể nhanh chóng khuôn khổ lớp học của tôi tốt, nhưng khi tôi cố gắng để chạy dự án của tôi trên một thiết bị, tôi nhận được lỗi sau thông điệp:
dyld: Library not loaded: @rpath/CustomFramework.framework/CustomFramework
Referenced from: /var/mobile/Applications/A61E882D-481A-4C0B-B4FD-69F5D24968BF/TestApp.app/TestApp
Reason: image not found
Và nếu tôi cố gắng chạy nó trên giả lập, tôi nhận được một thông báo lỗi khác nhau:
ld: warning: ignoring file /Users/user/Desktop/CustomFramework.framework/CustomFramework, missing required architecture i386 in file /Users/user/Desktop/CustomFramework.framework/CustomFramework (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CustomFramework", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
này xảy ra khi tôi nhanh chóng một lớp từ khuôn khổ. Nếu tôi nhập khung nhưng không thực sự sử dụng nó, ứng dụng của tôi sẽ xây dựng thành công. Nó chỉ là lỗi bất cứ khi nào tôi khởi tạo một lớp từ khung công tác vì một lý do nào đó.
Để ứng dụng xây dựng trên thiết bị, tôi đã theo dõi this SO câu trả lời. Thay vì liên kết khung công tác, tôi đã thêm một giai đoạn Sao chép tệp mới trong cài đặt Xây dựng các giai đoạn của mục tiêu, đặt Đích đến Khung và thêm khung của tôi.
Điều đó hoạt động tốt; tuy nhiên, tôi cũng muốn thử nghiệm ứng dụng của mình trên iOS Simulator. Khi tôi cố gắng chạy ứng dụng của mình trên trình mô phỏng, tôi vẫn gặp lỗi "i386 kiến trúc bị thiếu bắt buộc". Tôi đã thử các giải pháp được đề xuất chỉ về mọi chủ đề liên quan đến SO mà tôi có thể tìm thấy và không có gì giúp tôi giải quyết vấn đề này.
Xin lưu ý rằng tôi đang cố gắng sử dụng khung tùy chỉnh của mình trong dự án Xcode mới, vì vậy không có cài đặt ứng dụng/xây dựng nào được thay đổi từ cài đặt mặc định của chúng.
Làm cách nào để khắc phục lỗi này để tôi có thể chạy ứng dụng trên cả Trình mô phỏng iOS và thiết bị có khung của tôi được bao gồm trong dự án? Bất kỳ cái nhìn sâu sắc sẽ được đánh giá rất nhiều!
Cảm ơn bạn đã trả lời! Tuy nhiên nó là phi lý mà đến năm 2015, chúng tôi vẫn phải nghỉ mát để xây dựng thủ công để có được một khuôn khổ phong nha (hướng dẫn là như thế, dài 10 trang ?!). Xấu hổ với bạn, Apple! – Rick77
@ Rick77 Rất vui được giúp đỡ! Tôi hoàn toàn đồng ý.Tôi cũng phát triển các ứng dụng cho Windows và Windows Phone và thậm chí tôi không phải nghĩ về điều này trên các nền tảng đó. – Alexander
@Alexander Khung của tôi không được biên soạn cho kiến trúc của Trình mô phỏng iOS. Nó chỉ hỗ trợ thiết bị, Cách làm cho khung công việc của tôi hoạt động trong Trình mô phỏng.I đang sử dụng Khung. –
Arun