2013-09-22 29 views
28

Tôi đã phát triển ứng dụng XCode5 ONLY đầu tiên rất giống với các ứng dụng tôi đã thực hiện trên 4.6. Nó chạy hoàn toàn OK trong giả lập và trên iPhone 4, 4S và 5 của tôi, cũng như 2 iPad của tôi. Tuy nhiên, khi tôi cố xác thực nó để gửi lên App Store, tôi nhận được toàn bộ các lỗi liên quan đến arm64 yêu cầu 7.0.0 trở lên. Tôi có mục tiêu triển khai được đặt thành 6.1 và điều này không xảy ra khi tôi chạy các ứng dụng trước đó của tôi trong Xcode 5 đã được bắt đầu trong 4.6. Nếu tôi thay đổi mục tiêu triển khai thành 7.0 thì mọi thứ đều OK. Điều gì đang xảy ra ở đây? Tôi cần phải thay đổi gì để làm cho nó hợp lệ trên 6.1? Cảm ơn. ScreengrabKhông thể tạo mô-đun Darwin - các vấn đề về arm64

EDIT: OK, tôi đã thay đổi kiến ​​trúc trong cài đặt bản dựng thành tiêu chuẩn (armv7, armv7) loại bỏ arm64 và mọi thứ đều ổn. Đó có phải là điều đúng để làm không? Có lẽ nó sẽ vẫn chạy trên iPhone 5S, nhưng không phải trong 64-bit. Chính xác?

Trả lời

13

Bạn phải sử dụng iOS 7.0 làm đích triển khai để xây dựng cho arm64. Nếu bạn muốn hỗ trợ iOS 6.1, bạn sẽ phải tuân thủ nhiều nhất là armv7. Vì bộ vi xử lý arm64 có thể chạy ở chế độ 32 bit, đây không phải là vấn đề.

34

Bạn chưa thể gửi 64 bit và vẫn hỗ trợ iOS 6. Tuy nhiên, bạn sẽ có thể tiếp tục vào tháng tới.

Xem https://developer.apple.com/news/index.php?id=9162013a

Chỉnh sửa: Vâng, nếu bạn có ARMv7 và armv7s, bạn sẽ vẫn chạy trên iPhone 5s, mặc dù trong chế độ 32-bit. Tôi khuyên bạn nên gửi với armv7/armv7s ngay bây giờ và thêm vào arm64 vào tháng tới.


Cập nhật ngày 1 tháng 11 năm 2013:

Theo phiên bản 2013/10/22 của 64-bit Transition Guide for Cocoa Touch, bây giờ bạn có thể sử dụng Xcode 5.0.1 để tạo ra một nhị phân trong đó bao gồm 64-bit và 32 bit kiến trúc bit và chạy trên các phiên bản iOS cũ hơn.

  • Bạn cần phải sử dụng Xcode 5.0.1
  • Phiên bản 64-bit chỉ có thể chạy trên các thiết bị 64-bit chạy iOS 7.0.3+
  • Phiên bản 32-bit chỉ có thể chạy trên các thiết bị chạy iOS 5.1.1+
  • 64-bit các thiết bị chạy iOS 7.0.0-7.0.2 sẽ sử dụng 32-bit lát
+3

Rất hữu ích, cảm ơn. – IainGM

5

tôi có vấn đề này sẽ tăng lên khi tôi đã thêm một biến BOOL. #import UIKit/UIKit.h cũng hiển thị lỗi. Đây là ảnh chụp màn hình về những thay đổi bạn cần thực hiện từ dự án mặc định.

Trước: enter image description here Sau: enter image description here

0

Giải Quyết vấn đề này bằng cách thay đổi nơi tạo ra dự án của tôi, khi tạo dự án của tôi, tôi đã lưu trên máy tính để bàn của tôi và nó làm việc khi tôi tạo ra một kho lưu trữ, ông đã cho thấy vấn đề này .

Tôi hy vọng câu trả lời này sẽ giúp ai đó.

0

Tôi đã có khá nhiều lỗi giống nhau. Có nhiều hoặc ít hơn giống nhau với hai ngoại lệ.Giống như người dùng tjv Tôi cũng gặp lỗi khi nhập #import. Và tôi không có lỗi liên kết liên quan đến arm64. Arm64 bị mất có lẽ là điểm khác biệt chính trong triệu chứng.

Vấn đề của tôi là tôi thiết lập một số macro precompiler trong hồ sơ dự án của tôi trong

của Apple LLVM 5.1 - tiền xử lý

phần. Thay vì thiết lập MACRONAME=1 Tôi đã nhập MACRONAME= 1 Như bạn có thể đã đoán. không gian thêm tạo ra tất cả sự khác biệt.

6

OK, tôi giải quyết sự cố bằng cách thay đổi "Luôn tìm kiếm đường dẫn người dùng" trong "Đường dẫn tìm kiếm" thành "Không" và mọi thứ hoạt động tốt trở lại. Và tôi đặt tham số là "Có", chương trình vẫn OK. Tôi không biết tại sao điều này lại xảy ra.

Sự cố này xảy ra khi tôi thay đổi vị trí của thư mục có chương trình.

+0

Không biết làm thế nào và tại sao, nhưng nó đã giúp tôi! Cảm ơn rất nhiều! –

0

Bạn nên đặt Bật mô-đun (C và mục tiêu c) là KHÔNG trong cài đặt Bản dựng: Apple LLVM 5.0 - language - Modules.

(Answer from official forum)

enter image description here