sookim-1

번호 : 005, 작성일자: 2024-03-04

2024.02.27 ~ 2024.03.03

🔥 Push 신규 케이스 추가 및 Custom Push


iOS에서는 실시간통신을 위하여 Socket을 사용할 수 있다. 하지만 앱이 백그라운드로 이동한 경우 Socket 연결을 해제한다.(socket-io 공식문서) 이런 경우, Push에서 데이터를 추가하여 백그라운드에서 데이터를 전달받을 수 있다.

안드로이드와 달리 iOS에서는 APNs로 Payload형식을 맞추어 값을 지정하여 Push를 전송해야 APNs에서 기기로 전달을 하는데 형식을 맞추어서 전달해야 한다. AppDelegate에서 Background에서 Push처리와 Foreground에서 Push처리를 각각 상황별로 처리할 수 있다.

Custom Push를 구현하기 위해서 Push에 Attachment를 이용하여 이미지를 전달받는 방법과 값을 변경하는 방법등 김종권iOS블로그 - Push 섹션를 참고하여 테스트를 해보았다. 구현도중 Notification Service Extension을 진행하면서 발생한 이슈가 한가지 있었는데 Command ValidateEmbeddedBinary failed with a nonzero exit code 해당 에러는 Notification Service Extension 타겟의 Bundle Version들이 Host 타겟과 다르기 때문에 발생한 이슈여서 버전을 맞춰주면 해결했다.

🛫 앱스토어 Reject


Reject 사유는 Guideline 2.1 - Performance - App Completeness 심사자의 아이패드 에어에서 흰 화면에서 진행이 안되는 이슈였다. fastlane을 이용하여 Testflight배포를 하는데 Archive를 진행하는 도중 일부 오류가 발생한 것 같다. fastlane을 업데이트 한 후 다시 배포를 한 후 심사자와 동일한 환경으로 실행해본 후 확인한 후 해결되었다. 과거에 관련한 이슈가 있었는데 fastlane을 이용해 서로 다른 컴퓨터에서 배포하였을 때 어떤 버전에서는 특정 iOS버전이 빌드가 잘 되었고, 다른 컴퓨터에서 배포한 버전에서는 특정 iOS버전이 충돌이 나는 이슈가 있었다.

🙋🏻‍♂️ 기타 사항


  1. FireStore를 CocoaPod으로 설치하면 기하급수적으로 프로젝트 빌드시간이 증가된다.(약 2배) 빌드시간을 계산하기 위해서는 Xcode 빌드시간을 계산하는 옵션을 활성화하고 무거운작업을 할 것 같은 코드블록에 경고표시를 하여 원인을 확인할 수 있다.
  2. AppStore Connect에서 프로파일, 인증서, 기기등을 정리했다.
  3. fastlane을 이용하여 sentry를 upload할 때 plugin을 변경하면 소스코드를 더 자세히 표시할 거로 예상했는데 예상과 다르게 동일하여서 더 자세히 알아봐야겠다.
태그: