Gửi ứng dụng iOS: thiếu hỗ trợ 64 bit


91

Tôi đã gửi một ứng dụng ngày hôm qua để xem xét, không có vấn đề gì. Sau đó, tôi nhận ra rằng tôi còn rất ít sửa chữa (thay đổi mức thu phóng tối đa của bản đồ từ 19 thành 18, không có gì khác), vì vậy tôi đã xóa tệp nhị phân khỏi iTunes Connect và cố gắng gửi lại.

Bây giờ tôi đang gặp cảnh báo này:

warning_xcode

Tôi không hiểu tại sao, vì kiến ​​trúc của tôi là:

  • kiến trúc: armv7
  • kiến trúc hợp lệ: armv6, armv7, armv7s, arm64

Ứng dụng chạy tốt trong trình mô phỏng. Nếu tôi cố gắng sử dụng các kiến ​​trúc tiêu chuẩn (armv7, arm64) như được đề xuất trong cảnh báo, thì ứng dụng sẽ không được tạo và tôi nhận được:

  • Các ký hiệu không xác định cho kiến ​​trúc x86_64
  • ld: (các) biểu tượng không tìm thấy cho kiến ​​trúc x86_64

Tôi đang sử dụng lib route-me và tôi đặt các cài đặt kiến ​​trúc tương tự.


Chúng tôi cũng có vấn đề này. :(
Azik Abdullah

Cũng chỉ kể từ ngày hôm qua?
Tim Autin

1) thử xóa Dữ liệu gốc cho Xcode sau khi bạn thay đổi điều đó; 2) có lẽ bạn đang sử dụng một api bên ngoài, sdk, khuôn khổ cũ, vv
TonyMkenu

@Tim Bạn có khắc phục được sự cố này không? bạn có thể vui lòng đăng giải pháp cho điều đó?
user2056563

Xin chào, xin lỗi, tôi không tìm thấy giải pháp và tôi không làm việc với dự án này nữa. Hiện tại, nó chỉ là một cảnh báo, vì vậy tôi đã có thể gửi ứng dụng.
Tim Autin

Câu trả lời:


106

Sử dụng " Standard architectures" như thế này:

  • Kiến trúc: "Kiến trúc tiêu chuẩn" arm7, arm64
  • Kiến trúc hợp lệ: " arm64 ", armv7 ...
  • Build Active Architecture Only - NO (đặc biệt ... nếu thiết bị được kết nối của bạn không tương thích với arm64)

như thế này:

nhập mô tả hình ảnh ở đây

  • Ngoài ra, rút ​​phích cắm điện thoại và ipad khỏi mac đã được biết là sẽ hữu ích, đặc biệt nếu chúng là phiên bản 32-bit.

2
Cảm ơn cho câu trả lời của bạn, nhưng như đã nêu trong câu hỏi của tôi, tôi đã cố gắng đó, và dự án không biên dịch với các thiết lập này: /
Tim Autin

3
@Tim, vâng, tôi cũng đã có armv7 and arm64trong Kiến trúc. Tuy nhiên, cảnh báo hỗ trợ 64 bit bị thiếu vẫn xảy ra khi xác thực ứng dụng để ủy quyền.
Azik Abdullah

@NAZIK bạn có arm64 ở cả hai dòng (Kiến trúc và Kiến trúc hợp lệ) không? Tôi gặp lỗi tương tự và đây là giải pháp
TonyMkenu

@ Tim cố gắng để làm sạch DerivedData bạn và kiểm tra khuôn khổ bên ngoài mới nhất của bạn hoặc SDK nếu họ có chút hỗ trợ 64
TonyMkenu

3
Ngoài ra, hãy đảm bảo rằng thiết bị của bạn KHÔNG được kết nối khi lưu trữ bản dựng cuối cùng. Xem @powertoold câu trả lời dưới đây ( stackoverflow.com/a/26848865/1715004 )
Filipe Borges

68

Sau khi xác nhận đúng cấu trúc, hãy đảm bảo rằng thiết bị của bạn KHÔNG được kết nối với máy tính của bạn khi TÌM KIẾM bản dựng cuối cùng để gửi lên App Store.

Lý do cảnh báo này xuất hiện là do THIẾT BỊ bạn đã kết nối có thể không tương thích với arm64.


4
Bỏ mũ ra! : D bạn đã tiết kiệm thời gian của tôi
Vaibhav Limbani

1
Giúp đỡ lớn !! Đã tiết kiệm cho tôi rất nhiều thời gian cho điều này. Mẹo hay để nâng cấp ứng dụng cũ.
harry

Tôi tin rằng bạn có thể giữ thiết bị không phải 64bit của bạn kết nối nếu bạn thay đổi thiết lập xây dựng Build Active Architecture Onlyđể No. Điều này sẽ buộc xcode xây dựng hệ nhị phân 64bit bất kể thiết bị nào được kết nối.
jxmallett

3
Ngoài câu trả lời của @jxmallett, hãy đảm bảo Lưu trữ cấu hình lược đồ của bạn được đặt thành Bản phát hành, trong đó bộ lưu trữ Build Active Architectuređược đặt thành No. Lập lược đồ lưu trữ
KarenAnne

1
FYI Tôi đã phải rút phích cắm thiết bị của mình, chuyển sang trình mô phỏng và sau đó chuyển về "Thiết bị iOS" để thiết bị này hoạt động.
nwkeeley

37

Như Tony đã viết, điều quan trọng là phải có cả những cài đặt đó. Vì dự án của tôi (và rõ ràng là của bạn) đã được tạo trước khi arm64 được thêm vào tiêu chuẩn, nên nó không được phản ánh trong "Kiến trúc hợp lệ" ngay cả khi nó được hiển thị là Tiêu chuẩn.

Tôi đã làm gì:

  • Tôi đã đi đến cấu hình Dự án (so với Mục tiêu)
  • Đã nhập "arm64" trong Kiến trúc hợp lệ (nó tự động được phản ánh trong các mục tiêu và lược đồ

Sau khi dọn dẹp / xây dựng, tôi thậm chí còn nhận được một số cảnh báo về việc chuyển đổi không chính xác float thành CGFloat, v.v., vì vậy các cài đặt rõ ràng đã được áp dụng.

Cảnh báo xác thực cũng biến mất!

nhập mô tả hình ảnh ở đây


1
> không được phản ánh trong "Kiến trúc hợp lệ" ngay cả khi nó được hiển thị là Tiêu chuẩn Đây là điểm đối với tôi. Cám ơn!
Romain

1
Trong trường hợp nó giúp những người khác, tôi đã phải thay đổi trong cả hai dự án và mục tiêu để có được để làm việc
djburdick

@djburdick Cảm ơn. Điều đó làm việc cho tôi khi không có gì khác làm.
Dave Chambers

27

Rút phích cắm thiết bị vật lý của bạn khỏi máy Mac. Trong XCode trên danh sách thiết bị, chọn Thiết bị iOS và tạo lại Lưu trữ. Nó đã làm việc cho tôi.


5

Hôm nay tôi giải quyết vấn đề đó bằng các bước sau:

Cài đặt Tòa nhà:

Kiến trúc: Kiến trúc tiêu chuẩn (arm7, arm64) - $ (ARCH_STANDARD)

Kiến trúc hợp lệ: armv7 armv7s arm64

  1. Làm sạch và xây dựng ứng dụng của bạn với iPhone được kết nối
  2. Ngắt kết nối iPhone của bạn và kiểm tra thanh trên cùng nếu có trong "Thiết bị iOS"
  3. Lưu trữ
  4. Xác thực và Gửi

@ Timuçin. Xin lỗi vì tôi trả lời muộn, bạn đúng là: armv7 armv7s arm64.
Leonel Folmer


2

Được rồi, điều này thật điên rồ. Tôi đã thử mọi câu trả lời. Nhưng nó chỉ hoạt động khi tôi đặt arm64trước armv7armv7strong Kiến trúc hợp lệ.

Tái bút: xcode version : 7.2


1
Đúng vậy. chỉ sau đó và chỉ sau khi kết nối thiết bị, nhật ký lỗi thực tế mới hiển thị. Sau đó, một số dòng mã không được dùng nữa và bắt buộc phải sửa (màu đỏ) và một số vấn đề với lib RSA xuất hiện.
maxweber

1

Tôi đã giải quyết vấn đề bằng cách thay đổi,

Kiến trúc: arm7, arm64

Kiến trúc hợp lệ: arm7, arm64

Chỉ xây dựng kiến ​​trúc đang hoạt động: Có


1

Tôi đã gửi thành công bằng cách cấu hình như hình ảnh: nhập mô tả hình ảnh ở đây

(Được lưu trữ bằng thiết bị thực)


1
Nên thiết lập chế độ phát hành để không
ZYiOS

1

Đã thoát khỏi mọi cảnh báo. Đã trải qua tất cả mọi thứ hơn và hơn. Tìm thấy câu trả lời một từ ở đây ở trên.

"Chỉ xây dựng kiến ​​trúc hoạt động - KHÔNG (đặc biệt ... nếu thiết bị được kết nối của bạn không tương thích với arm64)"

IPad của tôi không phải là 64 bit. Đặt KHÔNG cho Xây dựng Kiến trúc Hoạt động và bài nộp của tôi đã thành công!


0

Thay đổi mục tiêu phát triển iOS của bạn thành ít nhất 5.1.1 hoặc xóa cài đặt kiến ​​trúc tiêu chuẩn và áp dụng lại. Bạn có thể đã thấy cảnh báo rằng arm64 không tương thích với mục tiêu xây dựng của bạn. Trên trang tổng quan, hãy kiểm tra cả cài đặt "mục tiêu triển khai" xây dựng và mục tiêu. Trong trường hợp của tôi, mục tiêu là 6.0, nhưng dự án là 5.0.

Ngoài ra, hãy kiểm tra "Kiến trúc hợp lệ" trong cả mục tiêu và dự án của bạn. Tôi đã cài đặt đúng dự án nhưng không đúng mục tiêu. Sau đó, nó đã làm việc cho tôi.

Chuyển đổi giữa dự án / mục tiêu trên trang tổng quan ở góc trên cùng bên trái của hộp.


Ý bạn thực sự là 5.1.1? 5.1 không đủ gần đây?
Dirk

Nó đã được một thời gian dài. Tôi không biết hoặc không nhớ logic của điều này. Chỉ cần thực hiện các bước và một cái gì đó có thể trở lại đúng vị trí của nó. Tìm hiểu kiến ​​trúc và tất cả các trang được đề cập.
user1122069

0

Vui lòng kiểm tra tùy chọn Build Active Architecture. Đặt nó thành KHÔNG. Nó làm việc cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.