Mục tiêu triển khai có nghĩa là gì?


107

đây là một câu hỏi rất đơn giản mà tôi đang giả định. Ai đó có thể cho tôi biết mục tiêu triển khai có nghĩa là gì. Nếu tôi chọn IOS 10, điều đó có nghĩa là chỉ người dùng có iOS 10 mới có thể tải xuống ứng dụng. Chọn mục tiêu triển khai thấp hơn có tệ không? CŨNG, tiếp tục trên mục tiêu triển khai, không nên chạy trên mục tiêu triển khai thấp hơn.



Câu trả lời:


149

Giả sử bạn đã đặt mục tiêu triển khai tối thiểu cho iOS 9. Điều này có nghĩa là ứng dụng của bạn tương thích với các thiết bị iOS 9 trở lên .

Ứng dụng sẽ không chạy trên các thiết bị dưới 9.0 nhưng có thể chạy trên bất kỳ phiên bản iOS nào lớn hơn iOS 9.0.


Người dùng có phiên bản thấp hơn vẫn có thể nhìn thấy ứng dụng ít nhất trên cửa hàng ứng dụng?
Sagrian

2
@Sagrian Có, họ có thể, nhưng nó sẽ cho họ thấy rằng nó không tương thích với hệ điều hành thiết bị của họ
FreakyAli 27/09/19

Sự khác biệt giữa Mục tiêu triển khai và thông tin là gì? Xcode hãy chọn một phiên bản ios ở 2 nơi.
Daniel Springer

Cài đặt @DanielSpringer Deployment Targetcuối cùng sẽ thay đổi Info.plist. Đó là một cách thuận tiện được thêm vào (có thể là) sau Xcode 4.x
Naveed Abbas

@NaveedAbbas Tôi xin lỗi nhưng tôi không hiểu câu trả lời đó như thế nào. Tại sao hai nơi? Mỗi cái để làm gì?
Daniel Springer

19

Mục tiêu triển khai xác định khả năng ứng dụng của bạn có thể chạy trên các phiên bản iOS cũ hơn.

App with deployment target set to 10 will work on iOS version 10+ (10, 11, 12, 13 ...) but won't work on 9.x.

Khi một phiên bản iOS mới được phát hành, một số người không bận tâm đến việc cập nhật thiết bị của họ lên phiên bản iOS mới nhất và do đó họ can't download your app from the App Store.

Thí dụ

Nếu bạn chọn mục tiêu triển khai cao hơn (e.g 12.1), ứng dụng của bạn sẽ không thể tải xuống cho những người thậm chí có thiết bị mới nhất nhưng có phiên bản iOS cũ hơn (iPhone X với 11.0). Trong Ngược lại Nếu bạn chọn mục tiêu triển khai thấp nhất có thể (e.g 6.0), bạn cố gắng làm cho ứng dụng của mình tương thích ngược tối đa (vì vậy ngay cả khi ai đó chưa cập nhật iOS của họ trong độ tuổi vẫn có thể tải xuống ứng dụng của bạn).

THẬN TRỌNG

Nhiều (gần như tất cả) các tính năng và khung công tác mới hơn sẽ không thể chạy bình thường (Hoạt động như mong đợi) trên các phiên bản iOS thấp hơn, điều này làm tăng nguy cơ ứng dụng bị treo.

Điều gì ảnh hưởng đến mục tiêu triển khai

Sau đây là một số yếu tố đòi hỏi mục tiêu triển khai cao hơn.

1) Sử dụng SDK iOS mới nhất (một mình)

2) Sử dụng các tính năng cụ thể của SDK iOS mới nhất (Ràng buộc, tệp XIB mới hơn, v.v.).

3) Sử dụng thư viện / Khung công tác bên ngoài thích ứng nhanh (ví dụ: Facebook SDK, Firebase, v.v.).

4) Phiên bản Swift cao hơn (5.0) yêu cầu mục tiêu triển khai cao hơn so với việc viết ứng dụng của bạn trong Mục tiêu C kế thừa) !Needs citation.

GIẢI PHÁP

Chúng tôi đã sử dụng Deploymate để được hỗ trợ ngược tối đa. Nó chủ yếu hỗ trợ chúng tôi về việc cảnh báo những điều sau:

1) Các API mới hơn sẽ không hoạt động trên các phiên bản iOS thấp hơn

2) Sử dụng các phương pháp không dùng nữa sẽ không hoạt động trên các phiên bản iOS mới hơn.

Đây là lúc bạn bắt đầu sửa mã của mình để cung cấp mã cho các phiên bản iOS thấp hơn để có khả năng tương thích tối đa.

Lưu ý: Xcode cũng thông báo về một số cạm bẫy. Deploymate không liên kết với chúng tôi hoặc trả tiền cho chúng tôi dưới bất kỳ hình thức nào. Bạn có thể tìm kiếm các thay thế khác.


1

Deployment Targetlà phiên bản iOS tối thiểu được mục tiêu của bạn hỗ trợ.

Nó có nghĩa là:

  • với tư cách là nhà phát triển, bạn hỗ trợ phiên bản này và bạn có thể hỗ trợ tất cả các khả năng tương thích tiếp theo
  • quảng cáo một người dùng mà bạn nên có ít nhất phiên bản iOS này

Để thay đổi nó trong Xcode 11.5

Build Settings -> iOS Deployment Target

-4

Nếu bạn chưa quen với Xcode, tôi khuyên bạn nên chấp nhận mặc định và coi nó như một ràng buộc đối với dự án của bạn.

Khi các phiên bản Xcode mới hơn xuất hiện, hỗ trợ cho các giá trị đích cũ hơn sẽ bị xóa. Các công ty có cơ sở khách hàng rộng rãi phải giải quyết vấn đề này theo cách riêng của họ.

Trong hầu hết các dự án tôi đã làm việc, phiên bản iOS quan trọng vì nó quyết định thiết bị nào có thể chạy ứng dụng của bạn.

Ví dụ, iOS 10 về cơ bản bỏ lại tất cả các đầu nối kiểu iPod.


1
phản đối, nhưng không có nhận xét ... không hữu ích ... Tôi muốn nói thêm, bây giờ iOS 13 đã ra mắt thông qua Xcode 11, rất nhiều mục tiêu mặc định trên các dự án cũ đã phải được chuyển lên.
benc

Bình chọn: thông tin hữu ích "từ chiến hào". Sẽ phù hợp hơn như một bình luận, nhưng tuy nhiên.
timmi4sa

Tôi thà là một người thực dụng với đại diện thấp hơn một chút. Việc mới làm quen với Xcode có rất nhiều thứ cần phải hiểu.
ghế tập cơ bắp
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.