WWDC22(Platforms State of the Union)에서 Xcode14의 변경점을 정리해봅니다.
개별 세션 및 Release Note의 내용을 참조한 내용들도 있으며, 글은 계속 수정될 수 있습니다.
Deprecations
- MacOS 앱 및 Mac Catalyst로 구축된 앱에 대해 작성된 위젯 미리보기 지원이 제거되었습니다.
→ macOS WidgetKit Simulator를 사용하면 됩니다. - Xcode Server는 더이상 지원하지 않습니다.
- [UIViewController shouldAutorotate]가 더이상 지원하지 않습니다. [UIViewController attemptRotationToDeviceOrientation]도 더이상 사용되지 않으며 [UIViewController setUpdateOfSupported]로 대체되었습니다.
Request Orientation
[UIWindowScene requestGeometryUpdate:errorHandler:]이나 UIWindowSceneGeometryPreferencesIOS를 사용하여 원하는 디바이스 방향을 요청할 수 있습니다.
App Icon
드디어 1024x1024 아이콘만 넣어도 자동으로 크기를 조정해서 다양한 사이즈가 적용되도록 설정 가능해졌습니다!
→ Assets > AppIcon > inspector에서 Single Size
⚠️ Xcode14부터 Single Size를 설정할 수 있지만, iOS11에서는 지원하지 않습니다. Deployment Target이 iOS11인 경우 Single Size 설정 후 앱스토어로 업로드시 에러가 발생할 수 있습니다.
Deployment Target
Xcode14부터 Deployment Target이 iOS11이 되었습니다. 프로젝트 에디터에서는 지원하지 않는 타겟들(iOS9.0~10.3)도 아직 표시하는 문제가 있다고 하네요.(Xcode 14 supports building applications that target macOS 10.13, iOS 11, tvOS 11, watchOS 4, and later. Xcode incorrectly shows some unsupported deployment targets in the project editor)
Architecture
iOS프로젝트에서 이제 armv7, armv7s, and i386 architecture 타겟 지원하지 않고. arm64만 지원한다고 합니다.(Building iOS projects with deployment targets for the armv7, armv7s, and i386 architectures is no longer supported)
참고로 arm64는 iPhone5s부터 적용되어 있고, iPhone5는 iOS10.3까지, iPhone5s는 iOS12.5까지 지원합니다. 그래서 Deployment Target도 iOS11로 올라간 것으로 보여집니다.
bitcode
Xcode14부터는 bitcode 제출을 허용하지 않게 되었습니다. 현재 Xcode16 Beta에서는 기본적으로 No로 세팅되고. Yes로 세팅해도 업로드시 No로 올라갑니다. 다음 Xcode release에서는 아예 옵션이 제거될 것이라고 합니다.(Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14)
이제 아키텍쳐를 arm64만 지원하니, App thinning이 필요가 없어졌기 때문에 변경된 사항인 거 같습니다.
Build Timeline
Build Timeline을 통해서 이제 각 빌드작업이 얼마나 걸리는지, 어디에서 병목현상이 생기는지 등을 시각적으로 볼 수 있게 되었습니다.
Simulator & APNs Sandbox
이제 애플실리콘, 혹은 T2프로세서를 탑제한 Mac의 MacOS13에서 실행할 때, iOS16에서의 원격알림을 지원합니다. 시뮬레이터는 APNs Sandbox(api.sandbox.push.apple.com)에 연결해 해당 시뮬레이터에서 실행 중인 앱에 원격 알림을 보낼 수 있습니다.
(Device Registration Token의 길이는 다양하므로, 토큰 길이에 대한 하드코딩을 하지 말아야 합니다)
SF Symbols in Xcode
이제 Command+shift+L 단축키에서 SF Symbols를 찾을 수 있게 되었습니다.
Code Structure
이제 Code Structure가 에디터 상단에 고정되어 보여집니다. 사용하지 않으려면 preferences>TextEditing에서 해제할 수 있습니다.
Organizer
- Feedback: Organizer에서 TestFlight의 feedback을 확인할 수 있게 되었습니다. 테스터의 정보, 장치 구성과 같은 세부정보를 볼 수 있고, 더 자세한 내용이 필요한 경우 테스터에게 직접 이메일을 보낼 수도 있습니다.
- Hangs: Appstore 사용자의 가장 큰 영향을 미치는 Hangs의 리포트를 보여줍니다. 심각도에 따라 정렬된 중단 목록이 있고, 각각 문제가 있는 코드를 보여주는 가중치 역추적도 있습니다.