해당 블로그를 포스팅하는 🔗 Github 블로그 저장소의 배포 관련에서 Github Workflow가 에러가 발생했다.
해당 저장소의 배포관련해서는 2가지 워크플로가 있다.
ci.yml
: 빌드와 make 명령어가 정상적으로 되는지 확인하는 워크플로deploy.yml
: 출력된 결과를 🔗 sookim-1.github.io 저장소로 덮어쓰는 워크플로해당 워크플로들을 수정하여 에러를 수정했다.
첫번째로는 워크플로를 동작하는 머신의 ubuntu버전이 node버전과 맞지 않았고, ubuntu 버전을 20.04로 올리면서 swift버전도 맞췄다. 또한 swift는 이미지로 설정했다.
2번째로는 배포되는 🔗 sookim-1.github.io 저장소에서 GoogleSearchConsole, Naver웹마스터도구의 html파일, robots.txt 파일이 덮어써지면서 제거되는 문제가 있어서 🔗 Github 블로그 저장소에 파일을 옮긴 후 출력된 결과폴더에 추가되도록 수정했다.
3번째로는 중복된 단계가 많아서 결국 ci.yml과 deploy.yml은 연달아 동작하기 때문에 build-and-deploy.yml로 통합했다.
화면에 진입할 때 UITextField의 포커싱을 맞추기 위해서 viewWillAppear에 becomeFirstResponder를 실행했는데 viewWillAppear는 뷰가 완전히 로드되지 않은 상태여서 화면이 버벅이는 이슈가 있었다.
viewDidAppear에서 becomeFirstResponder를 실행하면 뷰가 완전히 로드된 후 호출되기 때문에 버벅이지는 않지만 약간의 속도가 느린 느낌이 들었다.
화면에 진입할 때 UINavigationController의 pushViewController 메서드의 애니메이션을 비활성화하니까 애니메이션처리가 생략되어 버벅이지 않았다.
여기서 애니메이션을 비활성화하고 비슷한 느낌을 주기위해서 화면전환하는 경우 커스텀애니메이션을 처리해서 해결했다.
extension UINavigationController {
func pushViewControllerCustomAnimation(_ vc: UIViewController) {
let transition = CATransition()
transition.duration = 0.3
transition.type = CATransitionType.push
transition.subtype = CATransitionSubtype.fromRight
transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
view.layer.add(transition, forKey: kCATransition)
pushViewController(vc, animated: false)
}
func popViewControllerCustomAnimation(completion: @escaping () -> Void) {
let transition = CATransition()
transition.duration = 0.3
transition.type = CATransitionType.push
transition.subtype = CATransitionSubtype.fromLeft
transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
view.layer.add(transition, forKey: kCATransition)
popViewController(animated: false, completion: completion)
}
}
[credential] helper = osxkeychain
를 추가했다. $ git config –global credential.helper osxkeychain