Engineering
스토어 정책 변경에 대비하는 우리의 자세
2018년 3월 29일
원문에서 보기 ↗작년에 이미 Android 8.0(Oreo)와 iOS 11이 릴리즈 되었습니다.

새로운 OS의 출시와 함께 항상 Google 및 Apple의 스토어 검수 정책도 변화하는데요, 넋놓고 먼산만 바라 보다가는

소중한 우리의 어플리케이션이 정상적으로 돌아가지 않거나, 스토어에서 리젝을 먹고 눈물흘리게 될 수도 있습니다.

그래서 과연 어떤점이 바뀌었고, 우리는 어떤 점을 대응해야 할 지 함께 알아보도록 합시다. 혼자가 아니라 외롭지 않아!

Android 편

64bit 필수 지원
- 어플리케이션의 64bit 지원이 필수가 됩니다.
- 이는 32bit 지원을 더이상 하지 않는다는 의미가 아닙니다.
- 32bit 기기에 대한 지원이 필요하다면 계속해서 32bit 라이브러리를 추가하면 됩니다.
- 적용 시기
- 신규/기존 어플리케이션 공통 2019년 8월
TargetSdkVersion 26 강제
- TargetSdkVersion 26(Android 8.0) 이상으로의 빌드가 강제됩니다.
- 적용 시기
- 신규 어플리케이션 :
2018년 8월 - 기존 어플리케이션 :
2018년 11월
- 신규 어플리케이션 :
- TargetSdkVersion을 26 이상으로 올리고자 하는 경우 반드시 아래의
TargetSdkVersion 을 올릴때 고려해야 하는 점항목을 확인하시기 바랍니다.
매해 TargetSdkVersion 상승
2019년부터 필수로 적용해야 하는TargetSdkVersion 버전이 해마다 올라갑니다.
TargetSdkVersion 을 올릴때 고려해야 하는 점
낮은 TargetSdkVersion으로 빌드하던 어플리케이션이 TargetSdkVersion을 올려 빌드하는 경우, 버전에 따라 다음 사항을 고려하여야 합니다.
- Android 5.0 (21) : Implicit intents for bindService() no longer supported - 인텐트 바인딩 조건
- Context.bindService() 메서드가 명시적인 Intent를 요구하고 암시적 인텐트가 있는 경우에는 예외를 발생시킵니다. 어플리케이션의 보안을 보장하려면 Service를 시작하거나 바인드할 때 명시적 인텐트를 사용하고 서비스에 대한 인텐트 필터는 선언하지 마십시오.
- Android 6.0 (23) : Runtime permissions - 런타임 퍼미션
- 중요한(위험한) 권한은 AndroidManifest.xml 뿐만 아니라 API를 호출하여 런타임중에 유저에게 권한을 획득하여야 합니다.
- Android 7.0 (24) : User-added CAs not trusted by default for secure connections - 신뢰하는 공인인증서 적용
- 기본적으로, Android 7.0을 대상으로 하는 어플리케이션은 시스템에서 제공되는 인증서만을 신뢰하며 사용자가 추가한 인증 기관(CA)은 더 이상 신뢰하지 않습니다. Android N을 대상으로 하는 어플리케이션이 사용자가 추가한 CA를 신뢰하려는 경우에는 네트워크 보안 구성을 사용하여 사용자 CA를 신뢰하는 방법을 지정해야 합니다.
Android 8.0 (26)- Notification Channel - 알림 채널
- 빌드에 포함된 Android Support Library 버전이 25 이하인 경우 TargetSdkVersion 을 25 이하로 설정하면 알림이 정상적으로 동작합니다.
- 빌드에 포함된 Android Support Library 버전이 26 이상인 경우 반드시 TargetSdkVersion 을 26 이상으로 설정하고, Notification Channel 또한 설정해 주어야 알림이 정상적으로 동작합니다.
- Apps can't access user accounts without explicit user approval - 사용자 계정 액세스 권한
- 사용자가 계정 액세스 권한을 허용하지 않은 경우에는 어플리케이션이 더 이상 사용자 계정에 액세스할 수 없습니다.
- Notification Channel - 알림 채널
iOS 편

Build with iOS 11 SDK Update your version of Xcode to the latest release of Xcode 9 available on the Mac App Store, which includes the iOS 11 SDK, and build your apps. Starting April 2018, all new iOS apps submitted to the App Store must be built with the iOS 11 SDK. All new apps for iPhone, including universal apps, must support the Super Retina display of iPhone X.
지켜야 하는 점
- iOS SDK 11 (Xcode 9) 이상에서 빌드해야 합니다.
- Unity 4.x 버전에서 Export한 프로젝트도 Xcode9에서 빌드가 가능합니다.
- iPhoneX 호환 UI를 지원해야 합니다.
- Notch 영역을 고려하여 인터페이스를 제작하여야 합니다.
- iPhoneX Guideline : https://developer.apple.com/ios/update-apps-for-iphone-x/
※ 반드시 게임이나 어플리케이션에서 빌드시 가이드를 숙지하여 적용 하여야 합니다.
적용 시기
2018년 4월부터 적용됩니다.
적용 대상
- 신규로 Review 등록하는 어플리케이션 빌드 (
신규 어플리케이션을 등록하는 경우) - 업데이트를 위하여 Review 등록하는 어플리케이션 빌드 (
기존 어플리케이션을 업데이트 하는 경우)
출처
Apple provided confirmation that this requirement impacts new and existing app submissions.
"Thank you for taking the time to reach out to Apple Developer Program Support about the new submission requirements for iOS 11.
We can confirm that the new requirements for App Submission are for new apps as well as updates to existing apps."
마치며
예상보다 많아 보이는 내용에 불안감과 거부감부터 들지도 모릅니다.

하지만 머리를 맑게 하고 하나씩 읽어가다 보면 실제 여러분의 어플리케이션을 수정해야 하는 양은 많지 않다는 것을 알 수 있을거예요.
용기를 가지고 하나 하나 클리어 해나갑시다.
그러면 여러분 모두

참고 자료 출처
- App Store에 iOS 어플리케이션 제출하기
- Apple will require all new apps to natively support iPhone X display from April
- iPhoneX Guideline
- 2018 년 말의 타겟 API 수준 요구 사항
이미지 출처
- http://blog.naver.com/PostView.nhn?blogId=neotenu83\&logNo=220564175797
- https://www.googleplayservicesapk.com/android-8-0-oreo-google-play-services-apk-download/
- http://www.itpathsolutions.com/new-ios-11-release-date-and-features/
- http://jjalbox.com/?act=jjalbox\&v=2373\&cat=\&type=\&tag=흘리는\|81\&m=
- http://www.asiatoday.co.kr/view.php?key=533502
- https://www.engadget.com/2008/09/22/dont-forget-t-mobile-and-google-unveil-the-first-android-phone/
- http://ko.stealthsettings.com/cum-putem-instala-aplicatii-din-itunes-store-care-nu-sunt-disponibile-decat-pentru-anumite-tari.html
- http://ppss.kr/archives/8589/image21
- https://namu.mirror.wiki/w/안녕