Apple Silicon 에 iOS 앱 출시하기

liko apps·2023년 7월 10일
0

리코앱스 이야기

목록 보기
5/8

Apple Silicon Mac?

애플 실리콘 맥은 M1칩을 시작으로 애플의 자체 칩을 가진 맥을 말한다.
(https://support.apple.com/ko-kr/HT211814)

그게 뭔지는 중요한건 아니고, 중요한건 기존 iOS기기가 돌아가는 (아이폰, 아이패드) 앱이 애플 실리콘 맥에서도 돌아간다는거다.
같은 arm 계열이라서 가능하다는데 자세한건 따로 찾아보시면 됩니다.



무엇을 고쳐줘야 할까?

기본적으로 기존 iOS앱을 실리콘 맥에서 돌아가게하는건 아무것도 할게 없다. 앱스토어 커넥트에 가서 배포할 앱을 선택하고 '가격 및 사용 가능 여부' 항목에서 'iPhone 및 iPad 앱 Apple silion Mac 사용'에 가능 여부만 체크해주면 된다.

정말 이거면 된다. (물론 xcode 빌드를 해서 올려야 함...)

근데 단순히 이렇게만 하면 문제가 좀 있다.

아래는 제가 출시한 앱 이모지박스계산의 신 두 가지 앱을 출시하면서 겪었던 문제 사항과 해결 방법을 정리했습니다.



1. 광고 추적자 허용 여부

위에 언급한 앱 2가지 모두 애드몹 광고를 달았기 때문에 광고 추적자 허용 여부를 물어보는 시나리오가 있는데, 이게 실리콘 맥에서는 동작을 하지 않는다.

ATTrackingManager.requestTrackingAuthorization { status in
   // status 
}

위 코드에서는 원래 사용자에게 허용 여부를 묻는 팝업이 떠야 하는데, 애플 실리콘 맥에서는 팝업이 나오지 않고 바로 status 가 .notDetermined 로 반환이 된다. 아이폰에서는 결과가 .notDetermined 가 절대 나올 수 없기 때문에 (팝업에서 뭔가를 선택하지 않으면 넘어가지 않기 때문에) 이에 대한 대응을 안했는데 실리콘 맥에서는 항상 .notDetermined 가 나온다고 염두해두고 개발을 해야 한다.



2. 사진 불러오기 / 저장

아이폰 앱에서는 사진을 불러오려면 Photos 에 대한 접근 권한을 획득한 이후에 접근이 가능하다. 하지만 실리콘 맥에서는 대다수의 사용자들이 finder를 써서 사진을 불러오거나, 파일 선택 창이 별도로 뜨는 ux에 익숙한 상태라 일반 아이폰 앱 처럼 사진을 띄우면 사용자들이 불편해한다. 이걸 해결하려면 맥 앱을 별도로 만들어야 되는데 나는 별도로 구현할 여력이 없어서 포기했다.

그래서 대응책으로 사진을 불러오는 곳에 드래그 앤 드롭을 구현해서 외부 finder 에서 앱에 드래그 앤 드롭했을 때 사진을 불러오는 것과 동일한 처리를 해서 불편함을 조금 개선했다. (이모지박스앱은 드래그 앤 드롭으로 사진을 로드할 수 있습니다.)

저장은 공유 기능을 제공해서 다른 앱으로 보내는 정도로 해결했다.



3. 동적 화면 크기 변화

보통의 아이폰 앱은 화면 크기 변화가 적기 때문에 (아이폰 SE~아이폰 프로 맥스) 크게 고려할게 없지만, 아이패드 앱만 되도 SplitView를 통해 가로로 / 세로로 2분할도 가능하고 크기 변화도 앱 사용중에 계속 일어나기 때문에 고려해야할 화면이 되게 많은 편이다.

아이패드의 동적 화면 크기에 대응이 되어있다면 실리콘 맥에서도 별도의 대응은 필요없겠지만 아이폰만 고려한 화면을 구성했거나, 아이패드에서도 SplitView를 고려하지 않았다면 또는 앱 사용중 화면 크기 변화를 고려하지 않았다면 실리콘 맥에서는 이를 고려한 화면을 구현해야 한다.

실리콘 맥에서 앱을 실행하면 앱의 최소 크기에서부터 화면을 가득 채우는 크기, 그리고 가로로 / 세로로 늘어난 비율 모두를 고려해줘야한다. 물론 화면 크기를 고정하는 방법도 있겠지만 좋은 앱 경험을 아닐테니 고려하는게 좋다.

추가로, 애드몹의 경우 전체 화면 광고를 불러온 상태에서 화면 크기가 변하면, 변한 화면 크기에 기존에 불러온 광고를 노출 할 수 있는지 체크하고 노출이 불가능하면 광고를 다시 로드하는 작업도 필요하다.



마무리

저는 위 3가지 정도만 처리해서 실리콘 맥에 앱을 출시했는데 사실 다운로드나 사용량이 많지는 않지만 사용자에게 선택권을 더 줬다는데 의미가 있는 것 같습니다. 앞으로 더 잘 되면 좋겠네요.

애플 실리콘에 앱 많이 출시하세요~

// 틀린 점 있으면 알려주세요~

profile
제주에서 iOS 앱을 만들고 있습니다. 개발관련 회고 / 정리 블로그

0개의 댓글