Hôm qua (3/10/14) khi iOS 7.1 được phát hành, tôi cũng đã nâng cấp lên Xcode 5.1 và nhận thấy rằng dự án PhoneGap / Cordova của tôi sẽ không còn biên dịch sang iPhone 5s của tôi nữa. Tôi cũng đã nâng cấp Cordova lên bản phát hành gần đây nhất: v 3.4.0-0.1.3.
Tôi đã đọc nhiều giải pháp khác nhau trên SO có liên quan đến việc thay đổi các kiến trúc đang hoạt động và chỉ xây dựng các kiến trúc đang hoạt động, và không có kiến trúc nào hoạt động. Vì vậy, đây là những gì tôi đã thử và những lỗi tôi nhận được. Ban đầu tôi gặp lỗi:
missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64
Vì vậy, tôi đã thử những điều sau đây. Tôi đã chọn dự án con CordovaLib trong dự án của mình và trong cả dự án và mục tiêu, tôi đi tới Cài đặt xây dựng trong Kiến trúc và đảm bảo rằng dự án đó arm64
không được bao gồm trong bất kỳ kiến trúc Gỡ lỗi hoặc Phát hành nào. Tại thời điểm này, Build Active Architecture Only được đặt thành "Có". Điều đó dẫn đến lỗi sau:
file was built for archive which is not the architecture being linked (armv7):
<long file path omitted> libCordova.a
Undefined symbols for architecture armv7
Đặt Build Active Architecture Only thành "Không", lỗi lại trở thành:
missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64
Tôi không chắc chắn những gì khác để thử. Cài đặt kiến trúc của dự án chỉ bao gồm khóa "Base SDK" được đặt thành iOS 7.1. Mục tiêu của dự án không có cài đặt kiến trúc. Dù sao, tôi khá chắc chắn rằng vấn đề nằm ở dự án con CordovaLib được nhúng. Tôi có thể làm gì để biên dịch thành công thứ này vào thiết bị của mình?
Cập nhật: vấn đề tương tự trên Jira của Apache: https://issues.apache.org/jira/browse/CB-6223