Error: Process completed with exit code 65.
릴리즈 스킴을 쓰려고 DontForget-Release로 설정했는데 확인이 안됐다. 기본 스킴인 DontForget으로 수정해서 해결했다.
코드가 진짜 잘못됐었다. 이미지 사용할 때 오타날까봐 String+Extension으로 static 상수를 정의해서 사용하는데 anniversaryDelete라는 상수는 없었다. 이미지 이름도 아마 이전에 사용하던 것에서 바꾸는 걸 까먹은 듯한데, 빌드 캐시에 남은게 있었는지 빌드나 배포할 때는 문제없이 동작했다....
+ 24.04.15.
오류나 캐시때문에 발생한 일이 아니고 Xcode 15에서 업데이트된 내용이었다. 당시에도 에셋 이름이 anniversary_delete라서 혹시..?하고 정확히 알아보진 않았는데, 이번에 다녀온 해커톤 팀원이 이렇게 쓰는 것을 보고 이때 작성한 글이 생각나서 수정하고 감니다~
String getter인데 String을 리턴안했다..?
if-else 분기문으로 리턴하는 구문에서, 분기문에 해당하지 않는 경우를 처리해주지 않으면 이런 오류가 난다고 한다. switch문에서도 모든 케이스를 처리했고 if문도 else문으로 나머지 경우를 처리했기 때문에 왜 여기서 걸린건지 모르겠지만? 아래처럼 수정해주었다.
Error: Process completed with exit code 66.
Unit Tests Bundle 추가하여 해결
Error: Process completed with exit code 70.
여기서부터 iOS Deployment target을 16.0으로 내렸다: widget extension(미리 추가해둔거라 아무것도 없음) 삭제, 17.0 이상부터 사용 가능한 API들 모두 수정했다. #Preview와 같이 Swift 5.9의 매크로 문법을 못알아먹은 에러도 있었는데, 해당 버전의 문법을 다 삭제했다. 실행할 기기도 iPhone 15도 iPhone 14로 변경.
돌고돌아 다시..
Error: Process completed with exit code 65.
가장 마지막까지 해결하지 못한 오류다. 라이브러리를 찾지 못한건데 이에 대한 해결방법을 적절히 찾지 못해서 잠시 멈춰놨었다. 그러다가 감사하게도 한 분의 도움으로 원인을 찾을 수 있었다.
(여기부터 갑자기 다크모드에서 글자색이 까매짐...ㅠ안바뀐다)
error code 70으로 겪은 문제점도 그렇고 결국 결정적인 문제지점은 macos 버전이었다.
재르시께서 참고자료와 설명을 세세하게 알려주셔서 금방 파악할 수 있었다. 나는 맥 버전을 macos-lastest로 작성하였기 때문에 운영체제 버전 문제일줄은 몰랐는데, macos12로 돌아가고 있었던 거다. 러너 이미지를 까볼 수 있다는 것도 알게되었다. github actions의 runner-images repo에서 macos버전마다 이미지마다 상세정보를 볼 수 있고 여기서 쓸 수 있는 xcode 버전도 확인할 수 있다.
이걸로 빌드 성공! 아아- 몇번의 시도 끝에 만난 ✅인가-..
세팅밖에 안했는데 며칠걸렸다 ㅎ 푸하하 위 순서대로 오류가 발생한건 아니고 코드 번호별로 먼저 정렬한거니 글을 보시는 분들은 참고,, 게임에서 퀘스트를 하나씩 깨가는 것 같았다. 다만 뭔가 하나씩 해결될 때마다 빌드 속도가 엄청 길어진다.. 기다리는 시간이 길어질수록 초조해짐 ㅠㅋㅋ
다음 단계는 유닛테스트 코드를 작성해서 적용해보기 ~
빨간 엑스 폭격과 함께 ,, 끗 -
References