안녕하세요
제주에서 앱 개발하고 있는 리안입니다.
1. 개인정보보호 방침 약관 관련 iOS 앱 리젝
최근 iOS 앱 업데이트틑 올렸는데 리젝 됐었습니다.
(https://apps.apple.com/us/app/emojibox-face-mask-blur/id1624326541)
얼굴을 인식해서 그 얼굴 위치에 이모지/블러 등을 올려주는 앱인데,
원래부터 있던 (1.0.0 부터) 얼굴 가리기 관련해서
개인정보보호 방침 약관에 이 얼굴 데이터를 수집하지 않으면 수집하지 않는다, 수집하면 수집해서 어떻게 쓰는지에 대한 정보가 부족하다면서 약관에 이 라인에 이런게 있어야 하는데 없네? 라면서 리젝이 되었었습니다.
요즘 앱별로 이런 약관 검토 시기인건지 암튼 꼼꼼하더라구요.;
개인정보호호 방침에 우리는 얼굴 데이터 수집하지도 않고 이용하지도 않는다 라는 내용을 추가한 뒤에 답변하니 앱이 통과 되었습니다.
(애플이 이런건 꼼꼼하네요 -0-)
2. GDPR 관련 대응 시나리오 수정
또 다른 앱인데 이건 모든 iOS앱에 공통이라 굳이 링크는 안달아도 이해 되실 듯...
저희 앱들이 지금까지는
유럽쪽 GDPR 관련해서 GDPR 폼에 대한 응답을 받았는데 애드몹 광고를 노출할 수 없는 경우
(부분 동의로 인해 애드몹 광고가 노출이 안되는 조건, 또는 아예 전부 거절 되는 경우)
광고 노출이 불가능한 경우 수입이 없기 때문에 이 경우에는 앱을 구입해서 쓰거나,
GDPR동의를 해달라는 시나리오를 앱 내에 구현하고 있었거든요.
근데 애플이 이렇게 하면 안되 라고 앱 심사 리젝을 하더라구요 ㅠ
1년 넘게 이렇게 잘 쓰고 있었고, 이전에도 비슷한 이슈가 있었는데 설명하니 넘어갔었는데
또 리젝이 되길래... 시나리오 변경을 했습니다.
일단 gdpr 폼을 보여주고, 사용자의 동의 설정이 광고를 보여줄 수 있는지, 없는지를 체크합니다.
여기까지는 동일.
기존에는 광고를 보여줄 수 없는 상태면 -> 너 앱 사용 불가 , gdpr 다시 동의하거나 구입해서 쓰렴.
변경상태에서는 광고를 보여줄 수 없는 상태면 -> 그래 그냥 쓰렴. -_-);
여기 맨 아래에 보면
gad_has_consent_for_cookies
이 설정을 이용해 '제한적인 광고'를 노출할 수 있도록 설정합니다.
이러면 gdpr 동의 일부 조건에 따라 제한적인 광고가 노출이 될수도 있습니다.
(Legitimate interest 에 대한 동의까지 모두 끌 경우에는 아예 광고는 안나옵니다.
이 경우를 대비해 저희가 만든 앱들을 광고 처럼 띄워주는 - 방해요소 - 처리를 해놓긴 했습니다.)
암튼 광고 수입이 줄어들긴 하겠지만 어쨌든 이렇게 진행했습니다.
아직 유럽쪽 매출이 크지 않아서 큰 수입 차이는 없겠지만 나중에 지표를 보고 다른 대응 방안을 만들어야할거 같습니다.
(아예 동의 안하면 일부 기능은 못쓰게 한다거나 하는... 무료 유저에도 차등을 주는 형태?)
3. SwiftUI View .task { } 가 호출이 안되는 현상 수정하기
최근 만든 앱이 SwiftUI를 쓰고 있는데, SwiftUI 의 View 에는 .task { } modifier 를 달 수가 있습니다.
view 가 처음 만들어질 때 호출되는건데 앱 테스트하다보니 이게 호출이 안되는 경우가 발생했습니다.
view의 onAppear { } 는 호출이 되는데 .task 는 호출이 안되다니? -_-?!
처음 보는 경우였는데
알고 보니 다른 util class 의 함수가 background task 로 동작하는데 이게 여러번 호출되는 중에 block 이 되는 이슈가 있었습니다.
쓸 수 있는 thread 갯수가 모두 block 되다보니 view 의 .task { }도 호출이 안되고 block 되는 이슈였죠 ;;
main thread 는 block 되지 않고, 다른 thread 가 모두 block 이 되니까 이런 현상이 발생했었습니다.
암튼 근본 원인인 thread block 이슈를 해결하니 view 의 .task { } 도 잘 호출이되었었습니다.
눈에 보이는 현상 (main thread는 잘 되는데 거기 붙어있는 view.task { }는 호출이 안되는)은 있는데
원인은 다른 곳 (bg thread 를 사용하는 다른 util class) 에 있어서 살작 고생했던 버그 수정 경험이었습니다.;
4.
flutter 를 손대기 시작했습니다. dart 언어는 싫은데 flutter 는 재밌네요. vs code 로 작업하는데 xcode보다 안이쁘지만 역시 xcode 보다 안좋은 개발툴은 없는거 같습니다 ㅎㅎㅎ 핫리로드 짱 좋습니다. 올해 안에는 안드로이드 앱도 낼 수 있으면 좋겠네요.
끝.