티스토리 뷰

공부

Xcode 11.4 Beta Release Notes

Zedd0202 2020. 2. 6. 14:02
반응형

 

안녕하세요 :) Zedd입니다.

오늘은~~ Xcode 11.4 Beta Release Note에 공유하고 싶은 내용들이 좀 있어서 

아주아주 간단하게 봐볼까해요~~

11.3, 11.3.1은 릴리즈노트가 굉장히 짧았는데..11.4는 좀 기네요!!

 

11.4 베타 릴리즈 노트라는 점...!!!! 참고해주시길 바래요.

New Feature만 다룰 예정입니다.

 

Xcode 11.4 Beta Release Notes


Xcode 11.4 includes SDKs for iOS 13.4, iPadOS 13.4, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.4. Xcode 11.4 supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 11.4 requires a Mac running macOS Catalina 10.15.2 or later.

 

따로 해석은 안하겠슴

위에서 보실 수 있듯이 macOS Catalina 10.15.2이상에서 동작합니다. 이거때매 업뎃함 ㅇㄴ 

 

General - New Feature

- macOS app의 빌드 및 배포를 universal purchase로 지원.

(universal purchase : macOS 앱을 구입한 사람은 iOS 기기에서 앱을 구매 할 수 있으며 그 반대도 마찬가지.)

관련 애플 뉴스는 https://developer.apple.com/news/?id=02052020a

 

Updates to Universal Purchase and App Store Categories - News - Apple Developer

Starting in March 2020, you’ll be able to distribute iOS, iPadOS, macOS, and tvOS versions of your app as a universal purchase, allowing customers to enjoy your app and in‑app purchases across platforms by purchasing only once. You can choose to create a n

developer.apple.com

Xcode에서 universal purchase을 setup하는 방법.

https://developer.apple.com/documentation/xcode/distributing_your_app_for_beta_testing_and_releases

 

Distributing Your App for Beta Testing and Releases | Apple Developer Documentation

Article Distributing Your App for Beta Testing and Releases Release your app to beta testers and users. OverviewAfter you thoroughly test your app in Xcode, distribute it to beta testers or release it to users to run on their personal devices. Choose a dis

developer.apple.com

- macOS 앱을 universal purchase로 배포하려면 새 프로젝트 생성 시 Xcode template assistant에서 iOS app과 동일한 bundle identifier를 지정할 것. 기존 프로젝트가 있는 경우, Project Editor에서 bundle identifier를 수정 할 것.

 

- Xcode 11.4에서 생성된 Mac Catalyst apps의 경우 기본적으로 Universal purchase가 활성화 되어있음. Mac Catalyst app을 새로 생성하면 iOS app과 동일한 bundle identifier가 사용됨.

 

- Xcode 11.4에서 Automatic signing은 custom bundle identifier를 사용하여 Mac Catalyst app 빌드를 지원. 

 

- iOS app과 일치하지 않는 custom bundle identifier를 사용하여 Mac Catalyst app을 빌드하도록 선택하면, 앱을 universal purchase로 배포할 수 없음. 

 

Build System - New Feature

음 모르겠네

 

Debugging - New Feature

- 이제 view debugger는 layout guides(UILayoutGuide, NSLayoutGuide) 및 걔네의 referencing constraints를 제공.

- View debugging은 Editor메뉴의 show Layers메뉴 항목을 사용하여 레이어 표시를 지원.

- 이제 exception reason은 editor annotation으로 표시. Variables View에서 exception object를 검사하고, Debug Navigator에서 발견되지 않은 원래 exception의 backtrace를 찾을 수 있음. (뭔소리..?)

 

Interface Builder - New Feature

- inspector color picker에 dynamic system gray colors추가.

11.3 / 11.4 Beta

 

Organizer - New Feature

- 이제 Crashes Organizer는 universal purchase macOS apps에 대한 crash log를 보여줌.

 

Previews - New Feature

- 이제 Xcode Preview canvas내에서 view를 직접 copy, cut, paste, duplicate, 그리고 delete할 수 있음. (오?)

 

- 코드에서 SwiftUI preview를 선택하면 canvas에서 해당 preview가 강조 표시되고 그 반대도 마찬가지.

 

 

Simulator - New Feature

- SSL인증서(CER or PEM file)을 시뮬레이터에 끌어다 놓으면 인증서가 시뮬레이션 된 장치의 신뢰할 수 있는 루트 저장소(trusted root store)에 설치됨.

 

- simctl은 keychain subcommand를 지원. 이 command는 trusted root store 또는 keychain에 인증서를 추가할 수 있음. 또한 저장된 항목을 모두 삭제하여 keychain을 재설정 가능.  

 

예를들어 "my-selfsigned.cer"을 trusted root store에 설치하려면

xcrun simctl keychain <device> add-root-cert my-selfsigned.cer

trusted root store에 인증서를 추가하면 TLS/SSL연결이 인증서를 신뢰함. 

 

- simctl은 이제 개인 정보 보호 권한 수정을 지원. 테스트 목적 상태를 만들기 위해 개인 정보 권한을 수정할 수 있음.  예를들어 example app이 프롬프트 없이 사진 라이브러리에 액세스 하도록 허용하려면 다음을 수행.

xcrun simctl privacy <device> grant photos com.example.app

 

(근데 왜그래야하지?)

 

- 이전에 앱을 설치한 적이 없는 것처럼 모든 권한을 기본값으로 재설정하려면

xcrun simctl privacy <device> reset all com.example.app

 

이건 대박이네

 

시뮬레이터는 iOS simulators(13.0+)의 appearance toggling을 지원. 앱 내에서 debug > Toggle Appearance를 선택. 커맨드로도 가능. dark appearance로 셋할려면

xcrun simctl ui <device> appearance dark

 

한번 볼게요.

 

 

누르면

 

ㅇㅇ

 

- iOS 시뮬레이터에서 app switcher를 불러오는 메뉴항목과 키보드 단축기를 가짐. 

 

 

시뮬레이터 위에 뭔가가 생겼습니다.

 

 

가장 왼쪽 버튼은 Save Screenshot으로, 누르면

 

데스크탑에 저장됩니다. 

 

두번째는 Home버튼입니다. 

 

누르면

 

홈으로 갑니다.

 

3번째는 Rotate버튼입니다. 

 

누르면 당연하게도

시뮬레이터가 Rotate됩니다.

 

- simctl status_bar는 이제 operator (carrier) name을 변경 할 수 있음. (오?)

어케변경하는지 모르겠네요...

 

- 이제 iOS Simulator에서 guest screenshot feature을 트리거하는 메뉴 항목을 가짐. 스크린샷이 시뮬레이션 된 장치의 카메라 롤에 저장됨?!?!. 기존 스크린샷 기능을 명확하게 하기 위해 "Save Screen"으로 이름이 바뀌었으며 기본적으로 디바이스의 프레임 버퍼를 Mac의 데스크탑에 계속 저장함. screen을 저장할 때 옵션을 눌러 기본 위치를 변경하셈.

 

위에서

 

를 누르면 데스크탑에 저장된다고 그랬잖아요.

옵션을 누른 상태로 저 버튼을 누르면

버튼이 Take Screenshot으로 바뀌면서

시뮬레이터 안에서 이미지가 캡쳐되게 됩니다. 

당연히

시뮬레이터 내의 앨범에 저장이 된다는 것..!

 

 

- "Simulator supports simulating remote push notifications, including background content fetch notifications"

이제 시뮬레이터는 background content fetch notifications을 포함하여  remote push notifications을 지원.👍

 

APNs 파일을 시뮬레이터로 끌어다 놓으셈. 파일은 "aps" key를 포함하여 유효한 Apple Push Notification Service payload가 있는 JSON파일어야함.

 

또한 target application‘s bundle identifier와 일치하는 문자열값을 가진 top-level “Simulator Target Bundle”을 포함해야함. (뭔소리지)

 

simctl은 push notifications도 지원. 파일에 Simulator Target Bundle이 포함되어있으면 bundle identifier가 필요하지 않은경우 파일을 파라미터로 제공해야함.

 

xcrun simctl push <device> com.example.my-app ExamplePush.apns

 

- Simulator는 simulated devices작업을 간소화하는 새로운 UI를 가짐. simulated devices windows에는 일반적인 작업을 위한 버튼이 있는 standard title bar가 있습니다. 이제 환경설정에서 App-level 설정을 사용할 수 있습니다. 

 

https://zeddios.tistory.com/954

 

Xcode 11.4 ) Remote Push Notifications in Simulator

안녕하세요 :) Zedd입니다. https://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_beta_release_notes Xcode 11.4 Beta Release Notes | Apple Developer Documentation Article Xcode 11.4..

zeddios.tistory.com

시뮬레이터에서 Remote Push Notification을 받게 하는 법도 정리해봤어요! 참고하세요~.~

Swift Packages - New Feature

- tools version 5.2이상이 포함된 Remote Swift packages는 더이상 test targets에만 사용되는 package dependencies를 해결하지 않으므로 성능이 향상되고 종속성 버전 충돌 가능성이 줄어듬. (뭔소린지 모르겠지만...좋아졌다고 하네여ㅛ,,,,)

 

- Swift Package Manager는 새로운 패키지 전략을 사용하여 오류 메시지의 퀄리티와 복잡한 패키지 그래프의 성능을 크게 향상.

 

Swift - New Feature

- 함수와 같은 func callAsFunction메소드를 선언하는 타입의 값을 호출 할 수 있음.

call syntax는 func callAsFunction메소드를 적용하기 위한 축약형. 

우와...!!

 

반드시  func callAsFunction의 argument labels을 포함해야함.

single type에 여러 func callAsFunction메소드를 추가하고 이를 mutating으로 표시할 수 있음.

callAsFunction는 throws와 rethrows 및 trailing closures와 함께 작동.

 

- 이제 Subscripts는 default arguments를 선언할 수 있음.

- class constraint을 제약하지않은 class-constrained protocol extension은 이제 제약조건을 암시적으로 유추.

- base class를 정의하는 모듈 외부에 정의된 subclasses에 대한 Convenience initializer inheritance는 이제 추가 제한이 있음.

subclasses에 public이 지정되지 않은 designated initializers가 있는 기본클래스가 있을 때, 더이상 superclass에서 convenience initializers를 자동으로 상속하지 않음. 이러한 automatic inheritance 동작을 복원하려면 base class의 designated initializers 가 public 또는 open으로 지정되어있ㅁ는지 확인해야함. 

 

- Swift 컴파일러는 오류 메세지의 품질과 정밀도를 획기적으로 개선하는 진단(diagnostics)을 생성하기 위한 새로운 전략을 사용.

이 새로운 전략에 대한 자세한 내용ㅇ은 New Diagnostic Architecture Overview

 

New Diagnostic Architecture Overview

Diagnostics play a very important role in a programming language experience. It’s vital for developer productivity that the compiler can produce proper guidance in any situation, especially incomplete or invalid code.

swift.org

참고.

 

- method override는 더이상 기본 메소드가 요구하지 않는 generic signature를 가질 수 없음.

예를들어 아래 코드는 오류를 생성.

Testing - New Feature

- xcodebuild에서 테스트 시간 초과 동작을 활성화하거나 test plan에서 해당 설정을 재정의하려면 test-timeouts-enabled 옵션을 전달.

 

- 시간초과가 활성화 된 경우, 개별 테스트에 대한 기본 실행 시간 허용을 구성하려면 default-test-execution-time-allowance 옵션 전달.

 

- 테스트가 실행될 수 있는 시간에 대한 절대 제한을 적용하려면 -maximum-test-execution-time-allowance 옵션을 전달.

 

- test plan의 Test Timeouts옵션을 통해 테스트 시간초과를 활성화 할 수 있음. -test-timeouts-enabled 옵션을 통해 command-line에서 xcodebuild로이 값을 대체 할 수 있음. 

 

- XCTAssertEqualWithAccuracy 및 XCTAssertNotEqualWithAccuracy API는 이제 모든 FloatingPoint 타입을 지원.

 

- protected resource (e.g. 연락처, 블루투스 or 위치)의 권한 부여 재설정이 이제 UI Test Context에서 지원됨. 이를 통해 테스트 작성자는 앱의 권한 부여 상태를 초기 상태로 쉽게 설정하여 리소스의 첫 번째 실행 / 첫 번째 액세스 흐름을 편리하게 테스트 가능. (오..)

 

- Swift에서 XCTest를 위한 Xcode의 새로운 파일 템플릿은 모든 test methods에 대해 throws키워드를 포함. 

 

- 이제 Xcode는 테스트 번들 target의 deployment target을 확인하고, 선택한 실행 target와 호환되지 않는 테스트 실행을 건너뜀.

 

- Swift 테스트 메소드에서 발생한 오류는 이제 오류가 발생한 소스 위치를 기록. Xcode는 소스 편집기에서 이러한 행을 강조 표시하고 Issue Navigator에서 해당 위치로 이동가능.

 

- XCTest는 런타임 조건에 따라 동적으로 테스트 Skip을 지원. 

테스트를 skip하면 Xcode는 테스트 네비게이터 및 테스트 보고서에 테스트를 다르게 표시하고 skip이 발생한 코드 line을 강조표시함.

 

 

건너뛴것도 많고.. 그러니까 

https://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_beta_release_notes/

 

Xcode 11.4 Beta Release Notes | Apple Developer Documentation

Article Xcode 11.4 Beta Release Notes Update your apps to use new features, and test your apps against API changes OverviewXcode 11.4 includes SDKs for iOS 13.4, iPadOS 13.4, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.4. Xcode 11.4 supports on-device

developer.apple.com

 

원문을 참고해주세요~

틀린부분은 댓글로 알려주세요 :D

 

 

반응형