Tôi sẽ thêm 2 xu của mình vào đây (theo cách ít đáng sợ hơn :-). Tôi đã gặp khá nhiều thư viện béo từ các Nhà cung cấp mà (vì một số lý do) không hoạt động theo cách thông thường bằng cách thêm chúng vào Frameworks
thư mục như tài liệu của Apple. Cách duy nhất chúng tôi có thể làm cho chúng hoạt động là kéo .framekwork
quyền vào thư mục dự án và liên kết Embedded Frameworks
và Link Binary with Libraries
thủ công trong Cài đặt bản dựng. Điều này dường như đã hoạt động mà không có bất kỳ vấn đề nào, tuy nhiên, như với bất kỳ thư viện béo nào họ đi kèm với Kiến trúc mô phỏng bên ngoài i386
và x86_64
cùng với các arm
kiến trúc.
Một cách nhanh chóng để kiểm tra kiến trúc trên thư viện chất béo là
$ cd 'Project_dir/Project'
$ lipo -info 'YourLibrary.framework/YourLibExec`
Mà nên nhổ một đầu ra như thế này
Architectures in the fat file: YourLibrary.framework/YourLibExec are: i386 x86_64 armv7 arm64
Điều này xác nhận rằng bạn sẽ cần "cắt giảm chất béo" (cụ thể là i386
& x86_64
) khỏi khung của bạn trước khi tải lên iTunesConnect Archival, điều này không cho phép các kiến trúc này (vì chúng không được hỗ trợ cho iOS).
Bây giờ, tất cả các câu trả lời (hoặc ít nhất một số câu trả lời) ở đây cung cấp các Run Script tuyệt vời này mà tôi chắc chắn hoạt động rất tốt, nhưng chỉ khi Framework của bạn nằm trong Frameworks
thư mục. Bây giờ trừ khi bạn là người nghiện kịch bản shell, các tập lệnh không có sửa đổi, sẽ không hoạt động cho kịch bản tôi giải thích ở trên. Tuy nhiên, có một cách rất đơn giản để loại bỏ i386
& các x86_64
kiến trúc khỏi khung.
Mở terminal trong thư mục dự án của bạn.
Thay đổi thư mục trực tiếp vào .framekwork
, như
cd YourProjectDir/YourProject/YourLibrary.framework
Chạy chuỗi lệnh như hình dưới đây-
$ mv YourLibrary YourLibrary_all_archs
$ lipo -remove x86_64 YourLibrary_all_archs -o YourLibrary_some_archs
$ lipo -remove i386 YourLibrary_some_archs -o YourLibrary
$ rm YourLibrary_all_archs YourLibrary_some_archs
Một vài điều cần lưu ý ở đây - lipo -remove
phải được thực hiện một lần cho mỗi kiến trúc để loại bỏ. lipo
không sửa đổi tệp đầu vào, nó chỉ tạo ra một tệp để bạn phải chạy lipo -remove
một lần cho x86_64
và i386
. Các lệnh trên chỉ đơn giản là thực hiện điều đó bằng cách trước tiên đổi tên tệp thực thi và sau đó loại bỏ các vòm mong muốn, sau đó dọn sạch các tệp còn lại. Và đó là, bây giờ bạn sẽ thấy dấu kiểm màu xanh lục trong Tải lên ứng dụng lưu trữ ứng dụng lên iTunesConnect.
Những điều cần lưu ý : Các bước trên chỉ nên được thực hiện trong khi xây dựng sản xuất, vì .framework
sẽ bị loại bỏ các kiến trúc mô phỏng, các bản dựng trên trình giả lập sẽ ngừng hoạt động (dự kiến). Trong môi trường phát triển, không cần phải loại bỏ các kiến trúc khỏi .framework
tệp vì bạn muốn có thể kiểm tra trên cả Trình mô phỏng và thiết bị vật lý. Nếu thư viện chất béo của bạn nằm trong Frameworks
thư mục trong dự án thì hãy xem câu trả lời được chấp nhận.