농실농실에 도.소매 가격 정보 비교 기능이 추가되었습니다.
오늘 애플 심사를 마치고 플레이스토어와 앱스토어에 모두 배포가 완료됐습니다.
오늘은 추가된 기능과 애플 심사 리젝 사유에 대해서 알아보겠습니다.
도·소매 가격 비교
도.소매 가격 정보는 한국농수산식품유통공사에서 확인할 수 있었습니다.
공공데이터 API 사용 신청을 했고, 검색 코드는 DB에 저장하고 검색 결과는 api를 호출했습니다.
부류, 품목, 품종 코드는 농림축산식품의 코드와 다르게 되어있기 때문에 농축수산물 품목 및 등급 코드표를 통해 엑셀을 다운 받아 DB에 저장했습니다.
기존 품목검색 메뉴를 실시간/정산결과 메뉴로 옮기고 가격비교 메뉴를 추가했습니다.
가격비교 메뉴에서는 지역-부류-품목-품종을 검색해 소매가격을 확인할 수 있습니다.
도.소매가의 정확한 비교를 위해서 단위 환산을 1kg로 맞추었습니다. 추후에 소매가에 대한 통계 화면도 추가할 예정입니다.
애플 심사
길었던 애플 심사 여정이 드디어 종료되었습니다.
심사를 하시는 분과 18번의 메세지를 주고 받은 기록입니다. 총 10번의 리젝을 당했는데요. 중간에는 중복된 리젝 사유도 존재합니다.
어떤 이유로 리젝을 당했는지 하나씩 살펴보겠습니다.
1. Guideline 4.2.3 - Design - Minimum Functionality
We were required to install the Kakaotalk app before we could log in to your app. Users should be able to log in and access their accounts without having to install any additional apps.
해석을 해보니 카카오톡 앱 설치없이도 사용자는 로그인을 할 수 있어야 한다는 것이었습니다.
기존 농실농실 앱은 Flutter에 카카오톡으로 로그인 기능만을 제공하고 있었습니다. 사실 이전 심사에서는 이 문제로 리젝을 당하지 않았습니다. 또 플레이스토어에서도 마찬가지로 심사는 통과되었구요. 그래서 리젝의 사유가 이해되지 않는 점도 있었습니다.
카카오계정으로 로그인 기능을 추가했습니다. 카카오톡이 설치되어 있지 않으면 앱의 브라우저로 로그인할 수 있도록 말이죠.
두 기능의 차이는 앱으로 인증을 하느냐 브라우저를 통해 인증을 하느냐의 차이입니다. 자세한 내용은 아래 링크를 통해 확인해보시길 바랍니다.
이후 이 문제는 언급되지 않았습니다.
2. Guideline 4.8 - Design - Login Services
The app uses a third-party login service, but does not appear to offer an equivalent login option with the following features:
- The login option limits data collection to the user’s name and email address.
- The login option allows users to keep their email address private as part of setting up their account.
- The login option does not collect interactions with the app for advertising purposes without consent.
이 문제로 고생을 많이 했습니다.
처음 메세지를 번역했을 때, 이름과 이메일 주소로 제한하는 동등한 로그인 옵션을 추가해야 한다는 것이었습니다. 유추했을때, 일반 회원가입을 통해 사용자가 로그인할 수 있어야 한다고 생각했습니다.
곧바로 일반 회원가입 기능을 추가했습니다.
회원가입에서 입력받는 개인정보는 이름과 이메일로 최소화했습니다. 로그인 화면에 애플 로그인이 있지만 이 때까지는 애플 로그인을 추가하지 않았습니다.
이후 애플 로그인 문제가 나옵니다..^^;
3. Guideline 4.8 - Design - Login Services
The app uses a third-party login service, but does not appear to offer an equivalent login option with the following features:
- The login option limits data collection to the user’s name and email address.
- The login option allows users to keep their email address private as part of setting up their account.
- The login option does not collect interactions with the app for advertising purposes without consent.
수정된 내용을 제출했지만 다시 동일한 이유로 리젝을 당했고, 아래와 같은 스크린샷을 확인할 수 있었습니다.
앱에서 로그인으로 연결되는 화면은 농실소식과 설정 화면이었는데, 설정 화면에 카카오로 시작하기 버튼이 문제인 것 같았습니다.
다시 해당 버튼을 로그인으로 수정하여 제출했습니다.
4. Guideline 4.8 - Design - Login Services
The app still uses a third-party login service, but does not appear to offer an equivalent login option, Sign in with Apple, with the following features:
- The login option limits data collection to the user’s name and email address.
- The login option allows users to keep their email address private as part of setting up their account.
- The login option does not collect interactions with the app for advertising purposes without consent.
애플 로그인을 추가해야 된다고 합니다. 사실 이 문제가 왜 안나올까 궁금했습니다.
이전에도 회사에서 앱 배포를 해본 경험이 있는데, 당시에도 카카오 로그인/네이버 로그인을 제공하는 앱에 애플 로그인이 빠지면 안된다는 내용을 확인했고 추가했었기 때문입니다.
애플 로그인을 추가하고 다시 제출하게 됩니다.
5. Guideline 5.1.1(v) - Data Collection and Storage
5.1.1(v) Account Sign-In
If your app doesn’t include significant account-based features, let people use it without a login. If your app supports account creation, you must also offer account deletion within the app. Apps may not require users to enter personal information to function, except when directly relevant to the core functionality of the app or required by law. If your core app functionality is not related to a specific social network (e.g. Facebook, WeChat, Weibo, Twitter, etc.), you must provide access without a login or via another mechanism. Pulling basic profile information, sharing to the social network, or inviting friends to use the app are not considered core app functionality. The app must also include a mechanism to revoke social network credentials and disable data access between the app and social network from within the app. An app may not store credentials or tokens to social networks off of the device and may only use such credentials or tokens to directly connect to the social network from the app itself while the app is in use.
Issue Description
The app supports account creation but does not include an option to initiate account deletion. Apps that support account creation must also offer account deletion to give users more control of the data they've shared while using an app.
Follow these requirements when updating an app to support account deletion:
- Only offering to temporarily deactivate or disable an account is insufficient.
- If users need to visit a website to finish deleting their account, include a link directly to the website page where they can complete the process.
- Apps may include confirmation steps to prevent users from accidentally deleting their account. However, only apps in highly-regulated industries may require users to use customer service resources, such as making a phone call or sending an email, to complete account deletion.
꽤 긴 내용의 리젝 사유가 등장합니다.
요약하면 회원 탈퇴 기능이 없다는 것이었습니다. 처음 기획부터 카카오 로그인으로 간편 로그인만 되도록 하자는 생각이었기에 회원 탈퇴를 생각지 못했습니다.
곧바로 회원 탈퇴 기능을 추가해 다시 제출했습니다.
제출을 하며 "로그인하고 설정 화면에 탈퇴하기 버튼을 클릭하면 회원탈퇴가 될거야"라는 말을 덧붙였습니다.
6.Guideline 2.3.3 - Performance - Accurate Metadata
Some or all of the provided screenshots do not sufficiently show the app in use. Screenshots should highlight the app's core concept to help users understand the app’s functionality and value.
Follow these requirements when adding or updating screenshots:
- Marketing or promotional materials that do not reflect the UI of the app are not appropriate for screenshots.
- The majority of the screenshots should highlight the app's main features and functionality.
- Confirm that the app looks and behaves identically in all languages and on all supported devices.
- Make sure that the screenshots show the app in use on the correct device. For example, iPhone screenshots should be taken on iPhone, not on iPad.
이제 로그인 기능은 정리가 된 것 같았습니다.
이번 리젝 사유는 우리가 제출한 앱 화면과 현재 스크린샷이 다르다는 내용이었습니다.
도.소매 기능 추가로 화면 구성이 바뀌면서 생긴 문제였습니다. 스크린샷을 준비해 다시 제출했습니다.
7. Guideline 1.2 - Safety - User-Generated Content
Your app still does not have all the required precautions. Apps with user-generated content must take specific steps to moderate content and prevent abusive behavior.
Next Steps
To resolve this issue, please revise your app to implement the following precautions:
- Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content or abusive users; this is usually done during the sign-up process.
- A mechanism for users to flag objectionable content
- A mechanism for users to block abusive users; the blocking mechanism should be implemented separately from the reporting mechanism and users should have an ability to block another users by themselves.
새로운 리젝 사유를 확인했습니다. 해석해보니 게시판 기능(컨텐츠)에 대한 문제로 유추되었습니다. 사용자가 잘못된 컨텐츠를 올릴 경우의 메커니즘을 설명하라 이런 내용이었는데, 심사 회신을 통해 이미지와 함께 해당 내용을 설명했습니다.
"우리 앱은 공지사항을 통해 게시판 작성 규칙을 공지하고 있으며, 관리자가 모니터링을 하며 규정에 어긋난 게시글을 확인할시 공지없이 삭제할 수 있다"라고 전달했습니다.
이후 이 문제는 해결되었습니다.
여기까지 도.소매 기능을 추가하며 생긴 애플의 리젝 사유들이었습니다.
로그인 문제로 꽤 고생을 했지만 오히려 기능이 더 좋아진 것 같아 다행입니다.
심사 과정은 힘들었지만, 그만큼 엄격한 기준을 통과한 앱들만이 앱스토어에 등록될 수 있다는 의미이기도 한 것 같습니다.
동일한 앱스토어 심사 리젝 사유를 확인하신다면 참고가 되시길 바랍니다.
농실농실은 계속해서 업데이트 되고 있습니다.
많은 관심 부탁드립니다.
농실농실 사용해 보기
[Android]
[iOS]
[웹]
'토이프로젝트' 카테고리의 다른 글
[농실농실] 업데이트 일지 - 2024.07.02 (0) | 2024.07.02 |
---|---|
농산물 실시간 경매 가격 조회앱 출시기 - 농실농실 (0) | 2024.05.22 |