2월, 2020의 게시물 표시

[iOS] 'setAnimationCurve' was deprecated in iOS 13.0: Use the block-based animation API instead 처리

이미지
  [iOS] 'setAnimationCurve' was deprecated in iOS 13.0: Use the block-based animation API instead 처리 iOS 13 이상 부터 키보드를 처리하는 부분의 Animation 의 [경고] 가 뜨고 있어서 처리하는 부분 공유드립니다. 이번에 iOS 13이상 부터는 과거에 사용되었던 개념들이 많이 사라지고 있어 경고 지우면서 변경해주는것도 하나의 일이 되어 버렸내요.   변경 전 코드  /// 키보드 위치 수정 /// - Parameter notification: func keyboardWillAnimate(notification:Notification) { let userInfo = notification.userInfo let keyboardFrame = userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as! CGRect let duration = userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey] as! NSNumber let curve = userInfo?[UIResponder.keyboardAnimationCurveUserInfoKey] as! NSNumber printDZ("ApprSignViewController KeyboardFrame\n \(keyboardFrame)") // 키보드 높이 구해오기. let keyboardHeight = keyboardFrame.size.height // 키보드 애니메이션 처리 UIView.animate(withDuration: duration.doubleValue) { // iO

[iOS] UIUserInterfaceSizeClass 알아보기

  [iOS] UIUserInterfaceSizeClass 알아보기 이번 프로젝트에서 iPad 화면 분활부터 MultiWindow 지원등 여러가지를 알아보다가 소스 상으로 SizeClass 하는 코드를 정리하고자 합니다.   소스참고 // // ViewController.swift // AutoLayout_ClassSize // // Created by JW_Macbook on 2020/01/13. // Copyright © 2020 JW_Macbook. All rights reserved. // import UIKit class ViewController: UIViewController { /// 화면전환시 마다 나타낼 라벨 @IBOutlet weak var displayLb: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // 해당 정보를 호출하지 않으면, 초기값에는 해당 함수가 발동하지 않는데. // 현재 가지고 있는 가로, 세로 정보 호출해 보기. self.traitCollectionDidChange(self.traitCollection) // Size Class 값 let horizontal:UIUserInterfaceSizeClass = self.traitCollection.horizontalSizeClass let vertical:UIUserInterfaceSizeClass = self.traitCollection.verticalSizeClass if horizontal == .regular && vertical == .regular {

[iOS] Cloud not find test host for TargetTests: TEST_HOST evaluates to Error

이미지
  [iOS] Cloud not find test host for TargetTests: TEST_HOST evaluates to Error 안녕하세요. Xcode Bot(CI) 준비를 하면서 발생했던 오류처리에 대해 정리하여 공유하고자 합니다. 신규 프로젝트를 진행하면서 "Product Name" 을 변경하고나서 Test 실행시 발생했던 오류입니다. Could not find test host for TargetTest: TEST_HOST evaluates to ~~~ 경고가 발생합니다.    해결방법 1.  Project - TargetTests - Build Setting - Testing 란으로 이동 2. 변경된 Product Name 으로 변경 3. Clean Bulid 및 Derived Data 삭제 후 재실행   마무리 프로젝트를 진행하면서 Product Name 이 변경은 어렵지 않게 일어나기 때문에 TargetTest 에도 같이 고려해야할 점이 있는 것 같습니다. 저 또한 실 프로젝트에 위와 같이 진행하고 있어서 앞으로도 진행하면서 발생하는 이슈 공유 드리도록하겠습니다. 끝.

[Xcode] add Simulators (시뮬레이터 추가하기)

이미지
  [Xcode] add Simulators (시뮬레이터 추가하기) Xcode 에서 시뮬레이터 추가하는 방법에 대해 정리합니다. 1. 상태바 상단의 Device & Simulator 선택 창으로 이동합니다. 2. 최하단의 Add Additional Simulators... 선택해줍니다. 3. Simulators 종류들 중에 최하단 + 버튼 을 선택해줍니다. 4. 여기에서 Simulator Name, Device Type, OS Version 을 원하는 Simulator를 선택해주면 됩니다. 5. 필자는 iPad Mini4 (13.x) 버전이 필요해서 예시로 추가해 보도록 하겠습니다. 6. 원하는 Simulator 를 선택하였으면, Create 를 통해 추가해줍니다. 7. Xcode 내에 추가되어있는 Simulators 내에 iPad Mini 4 가 추가되어있는 것을 확인하였습니다. 8. 추가된 Simulator를 빌드시 확인 할 수 있습니다.   마무리 iOS 개발을 오랫동안 해왔는데, 지금까지 Simulator를 한번도 추가해 본적이 없었습니다. 신규 프로젝트 개발시 Target iOS 13.x 으로 잡고 나니 iPad Mini가 어디에도 보이지 않았다. iPad 화면 분활 작업을 하다보니 여러가지 화면들을 전부다 봐야하니 ^^.. (개 부담) 이번에 알아둔 것을 공유차원으로 공유드립니다.

MacOS SourceTree Password Keychain Save (비밀번호 계속 물어볼때 안뜨게 하기)

이미지
  MacOS SourceTree Password Keychain Save 안녕하세요. 신규 프로젝트로 바쁘게 지내고 있는 물먹고하자 입니다. 오늘은 Mac OS SourceTree 에서 Password 를 "Store Password In Keychain" 체크하였는데, 다음번 Push/Pull/Commit 시 비밀번호를 다시 물어볼때 처리하는 방법에 대해서 공유드립니다. 한번 설정 후 다시는 발생안하지만, 컴퓨터 초기화 혹은 변경시 설정 해야해서 이번에 정리합니다. 위의 그림과 같이 분명 "Store Password In Keychain" 으로 저장을 한 상태인데 재차 비밀번호를 물어봅니다. 터미널을 실행하고, git config --global credential.helper osxkeychain 명령어를 실행합니다. 그 후 SourceTree 로 돌아와 "Store Password In keychain" 체크 후 진행하시면, 더이상 비밀번호를 물어보지 않습니다! 끝.