2010-09-19 28 views
5

Một vài tháng trước, tôi nhận được một email gây sốc từ Apple, nói rằng họ sẽ từ chối mọi ứng dụng không được xây dựng dựa trên iOS 4.x SDK. Bây giờ tôi tự hỏi nếu:Bạn vẫn có thể phát triển các thiết bị iOS cũ hơn?

1) đây có phải là trò đùa không?

2) nếu không: điều đó có nghĩa là ứng dụng của tôi sẽ chỉ chạy trên các thiết bị rất gần như iPhone4, iPod touch 4 hoặc bất kỳ thiết bị nào đã cài đặt iOS 4.x?

Tôi đã tải xuống iOS SDK mới nhất và tôi chỉ có thể xây dựng dựa trên 3.2 hoặc 4.1, nơi tôi tin rằng 3.2 chỉ dành cho iPad. Bây giờ tôi có thể vứt bỏ 6 iPod touch của tôi với hệ điều hành cũ được cài đặt hoặc tôi may mắn và vẫn còn một cách để mã cho họ mà không cần nâng cấp tất cả lên 4.1.

Bạn nghĩ sao? Sự thật là gì?

+1

Câu hỏi này giả định rằng SDK 4.x chỉ dành cho các thiết bị nhắm mục tiêu 4.x. Điều đó không đúng. Có sự khác biệt giữa "SDK" và "Target Deployment". – benzado

Trả lời

7

Một vài tháng trước, tôi có một gây sốc email từ Apple, nói rằng họ sẽ từ chối tất cả các ứng dụng mà không phải là xây dựng đối với iOS 4.x SDK. Bây giờ tôi tự hỏi nếu:

1) đây có phải là trò đùa không?

Không, nhưng đó là một điều tốt.

Đầu tiên, nó khuyến khích các nhà phát triển tiếp tục sử dụng SDK cập nhật nhất.

Thứ hai, nó khuyến khích người dùng cập nhật lên chương trình cơ sở mới nhất. (Ít lỗi hơn, ổn định hơn, lỗ hổng bảo mật ít hơn).

Thứ ba, nó trình bày cho bạn mục tiêu cố định mà bạn phải lo lắng khi gửi ứng dụng của mình. Nếu Apple thử nghiệm trên mọi phiên bản iOS, sẽ mất vĩnh viễn cho các ứng dụng được chấp thuận và bạn sẽ nhận được tất cả các loại lỗi nhỏ trên các phiên bản phần mềm cụ thể trên các thiết bị cụ thể. Nó sẽ là điên rồ.

2) nếu không muốn nói: Điều đó có nghĩa là ứng dụng của tôi sẽ chỉ chạy trên lates rất các thiết bị như iPhone 4, iPod touch 4, hoặc bất kỳ thiết bị đã được cài đặt iOS 4.x?

Bạn có thể đặt mục tiêu triển khai trong cài đặt xây dựng cho bất kỳ điều gì bạn muốn, nhưng tôi khuyên bạn không nên thấp hơn 3.1.x cho bất kỳ ứng dụng nào. Bởi vì (1), hầu hết người dùng đang sử dụng 4.x, với tỷ lệ phần trăm nhỏ sử dụng 3.x và hầu như không có ai chạy 2.x hoặc 1.x.

Tôi đã tải xuống iOS SDK mới nhất và I chỉ có thể xây dựng trên 3.2 hoặc 4.1, nơi tôi tin 3.2 chỉ dành cho iPad. Bây giờ tôi có thể vứt bỏ 6 iPod chạm với hệ điều hành cũ hơn hoặc tôi là may mắn và vẫn có cách để mã số cho họ mà không nâng cấp tất cả lên 4.1.

Nếu bạn có iPod Touch cũ hơn (như tôi làm - thế hệ thứ nhất) giữ nó xung quanh (với 3.1.3) để thử nghiệm ứng dụng của bạn. Đừng ném nó ra.

+0

bạn đi vào chi tiết cách đặt mục tiêu triển khai đó? Và điều đó có nghĩa là gì? Xcode có cho tôi biết khi nào tôi sử dụng các phương thức không có sẵn trong iOS 3.0 không? (Vâng, tôi có mọi thế hệ iPod touch ở đây ... đoán các nhà phát triển là những khách hàng tốt nhất của Apple) – openfrog

+0

Bạn đặt mục tiêu triển khai trong cài đặt xây dựng cho dự án: Nhận thông tin về dự án của bạn và nhấp vào tab "Xây dựng". Nó chỉ định cho thiết bị phiên bản iOS tối thiểu phải có trên thiết bị, để thiết bị chạy ứng dụng. Xcode không cho bạn biết phương thức nào trong 3.0 trừ khi các phương thức đó không được chấp nhận. Bạn phải liên kết yếu đến thư viện UIKit và sau đó đi qua mã của bạn để kiểm tra, cũng như kiểm tra kỹ lưỡng. –

3
  1. Không, đó không phải là "luật theo Apple".
  2. Không, không. Có một cài đặt được gọi là "mục tiêu triển khai" mà bạn có thể đặt phiên bản iOS 3.0 trở lên. Sử dụng nó. Nhưng bạn phải xây dựng dựa trên SDK iOS 4.

Sự thật là những gì Apple nói và những gì tôi vừa làm rõ ở trên. :)

+0

Bạn có thể đi sâu vào chi tiết cách đặt mục tiêu triển khai đó không? Và điều đó có nghĩa là gì? Xcode có cho tôi biết khi nào tôi sử dụng các phương thức không có sẵn trong iOS 3.0 không? – openfrog

+0

Tài liệu SDK cho bạn biết khi nào API trở nên có sẵn và khi nào nó đã được (nếu nó đã bị) không được chấp nhận. 'command-option-double click' trên phương thức để hiển thị tài liệu nội tuyến cho phương thức đó. Ngoài ra, trong cài đặt xây dựng cho mục tiêu của mình, bạn có thể tìm thấy "Mục tiêu triển khai" trong đó. Nó có một danh sách thả xuống, chọn một danh sách. – jer

+0

Trong cài đặt của dự án, đặt "SDK cơ sở" là "Mới nhất", sau đó đặt "Mục tiêu triển khai" của bạn ở mức thấp nhất bạn muốn. Tôi vẫn hỗ trợ 3.0! (nhưng không lâu…). –

1

Bạn vẫn có thể phát triển cho các thiết bị cũ hơn. Bạn chỉ cần đặt mục tiêu triển khai cho phiên bản iOS cũ hơn mà bạn hỗ trợ. Bạn phải xây dựng lại SDK gần đây nhất tuy nhiên.

Bạn có thể tìm thêm thông tin trên số documentation chính thức.

+0

"xây dựng dựa trên SDK gần đây nhất" có nghĩa là đặt SDK cơ sở thành một cái gì đó cao? – openfrog

0

Kể từ phiên bản 4.5 của Xcode, việc phát triển cho Arm v6 không còn được hỗ trợ. Điều đó có nghĩa là bạn không thể xây dựng một ứng dụng sẽ chạy trên iPhone gốc, iPhone 3G hoặc iPod Touch thế hệ thứ 1/thứ 2. Nếu bạn cố gắng xây dựng bằng 3G, nó sẽ cảnh báo bạn rằng đây không phải là thiết bị được hỗ trợ.

Nếu bạn cần hỗ trợ các thiết bị cũ hơn, bạn sẽ phải sử dụng Xcode 4.4.1. Nếu bạn sử dụng phiên bản đó, bạn vẫn có thể hỗ trợ lại cho iPhone OS 3 bằng cách đặt mục tiêu triển khai. Bạn có thể tải xuống older Xcode versions from Apple. Thực tế là rất ít người ở trên iPhone OS 3 nữa và trừ khi bạn có lý do rất tốt, bạn chỉ cần truy cập iOS 4. Check the stats để xem liệu nó có thực sự đáng giá trong thời gian của bạn hay không.

Các vấn đề liên quan