이것은 제가 가정하고있는 매우 간단한 질문입니다. 누군가 배포 대상이 무엇을 의미하는지 말해 줄 수 있습니까? IOS 10을 선택하면 iOS 10 사용자 만 앱을 다운로드 할 수 있습니다. 더 낮은 배포 대상을 선택하는 것이 좋지 않습니까? 또한 배포 대상에서 계속하는 것은 낮은 배포 대상에서 실행하지 않는 것이 좋습니다.
이것은 제가 가정하고있는 매우 간단한 질문입니다. 누군가 배포 대상이 무엇을 의미하는지 말해 줄 수 있습니까? IOS 10을 선택하면 iOS 10 사용자 만 앱을 다운로드 할 수 있습니다. 더 낮은 배포 대상을 선택하는 것이 좋지 않습니까? 또한 배포 대상에서 계속하는 것은 낮은 배포 대상에서 실행하지 않는 것이 좋습니다.
답변:
최소 배포 대상을 iOS 9로 설정했다고 가정 해 보겠습니다. 이는 애플리케이션이 iOS 9 이상 장치 와 호환된다는 것을 의미합니다 .
응용 프로그램이 실행되지 않습니다 아래 9.0 장치 있지만 아이폰 OS 버전에서 실행할 수있는 큰 아이폰 OS 9.0 이상.
Deployment Target
궁극적으로 Info.plist를 변경합니다. Xcode 4.x
배포 대상은 앱이 이전 iOS 버전에서 실행되는 기능을 결정합니다.
App with deployment target set to 10 will work on iOS version 10+ (10, 11, 12, 13 ...) but won't work on 9.x.
새 버전의 iOS가 출시되면 일부 사람들은 장치를 최신 iOS 버전으로 업데이트하지 않아도되므로 can't download your app from the App Store
.
예
더 높은 배포 대상을 선택하면 (e.g 12.1)
최신 기기를 보유하고 있지만 이전 iOS 버전 (11.0이 설치된 iPhone X)을 사용하는 사용자는 앱을 다운로드 할 수 없습니다. 대비 가능한 가장 낮은 배포 대상을 선택하는 경우 (e.g 6.0)
앱을 최대 하위 호환 가능하게 만들려고합니다 (따라서 누군가가 나이에 iOS를 업데이트하지 않은 경우에도 앱을 다운로드 할 수 있습니다).
주의
많은 (거의 모든) 최신 프레임 워크 및 기능이 낮은 iOS 버전에서 제대로 실행 (예상대로 작동)되지 않아 앱 충돌 가능성이 높아집니다.
배포 대상에 영향을 미치는 요소
다음은 더 높은 배포 목표를 요구하는 몇 가지 요소입니다.
1) 최신 iOS SDK 사용 (단독)
2) 최신 iOS SDK 특정 기능 사용 (제약 조건, 최신 XIB 파일 등).
3) 빠르게 적응하는 외부 라이브러리 / 프레임 워크 (예 : Facebook SDK, Firebase 등) 사용.
4) 더 높은 Swift 버전 (5.0)은 레거시 Objective C)에서 앱을 작성하는 것보다 더 높은 배포 대상이 필요합니다 !Needs citation
.
해결책
우리는 최대한의 하위 지원을 위해 Deploymate 를 사용 하고 있습니다. 주로 다음 사항을 경고하는 데 도움이됩니다.
1) 낮은 iOS 버전에서 작동하지 않는 최신 API
2) 최신 iOS 버전에서 작동하지 않는 더 이상 사용되지 않는 방법 사용.
최대 호환성을 위해 더 낮은 iOS 버전에서 사용할 수 있도록 코드를 수정하기 시작할 때입니다.
참고 : Xcode는 또한 몇 가지 함정에 대해 알려줍니다. Deploymate는 우리와 제휴하거나 어떤 형태로든 지불하지 않습니다. 다른 대안을 찾을 수 있습니다.
Xcode를 처음 사용하는 경우 기본값을 수락하고 프로젝트의 제약 조건으로 생각하는 것이 좋습니다.
최신 Xcode 버전이 나오면 이전 대상 값에 대한 지원이 제거됩니다. 광범위한 고객 기반을 가진 회사는이 문제를 자체 방식으로 처리해야합니다.
내가 작업 한 대부분의 프로젝트에서 iOS 버전은 애플리케이션을 실행할 수있는 장치를 지정하기 때문에 중요합니다.
예를 들어 iOS 10은 기본적으로 모든 iPod 스타일 커넥터를 남겼습니다.