{"id":15698849,"url":"https://github.com/jaywcjlove/app-rejection-fixes","last_synced_at":"2025-04-30T08:42:47.717Z","repository":{"id":256917053,"uuid":"856753597","full_name":"jaywcjlove/app-rejection-fixes","owner":"jaywcjlove","description":"This repository documents the various reasons why apps were rejected during the App Store review process and provides solutions to resolve these issues. It serves as a resource for developers to better understand common rejection scenarios and how to address them effectively, helping streamline the review process for future submissions.","archived":false,"fork":false,"pushed_at":"2025-04-17T02:39:02.000Z","size":289,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-23T17:23:07.096Z","etag":null,"topics":["apple","fixes","rejected"],"latest_commit_sha":null,"homepage":"https://wangchujiang.com/app-rejection-fixes/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaywcjlove.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"jaywcjlove","buy_me_a_coffee":"jaywcjlove","custom":["https://www.paypal.me/kennyiseeyou","https://jaywcjlove.github.io/#/sponsor"]}},"created_at":"2024-09-13T06:25:18.000Z","updated_at":"2025-04-17T02:38:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"c2cf8d8f-ae1c-44d3-b1d5-e323e31b3035","html_url":"https://github.com/jaywcjlove/app-rejection-fixes","commit_stats":{"total_commits":42,"total_committers":3,"mean_commits":14.0,"dds":0.0714285714285714,"last_synced_commit":"a82f21c35dea1166e8df67b6055412d67bfb87a2"},"previous_names":["jaywcjlove/app-rejection-fixes"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaywcjlove%2Fapp-rejection-fixes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaywcjlove%2Fapp-rejection-fixes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaywcjlove%2Fapp-rejection-fixes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaywcjlove%2Fapp-rejection-fixes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaywcjlove","download_url":"https://codeload.github.com/jaywcjlove/app-rejection-fixes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251237252,"owners_count":21557244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple","fixes","rejected"],"created_at":"2024-10-03T19:34:55.308Z","updated_at":"2025-04-30T08:42:47.695Z","avatar_url":"https://github.com/jaywcjlove.png","language":null,"funding_links":["https://ko-fi.com/jaywcjlove","https://buymeacoffee.com/jaywcjlove","https://www.paypal.me/kennyiseeyou","https://jaywcjlove.github.io/#/sponsor"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"right\"\u003e\n    \u003ca href=\"./README.zh.md\"\u003e中文\u003c/a\u003e\n\u003c/div\u003e\n\nApp Rejection Fixes\n===\n\nThis repository documents the various reasons why apps were rejected during the App Store review process and provides solutions to resolve these issues. It serves as a resource for developers to better understand common rejection scenarios and how to address them effectively, helping streamline the review process for future submissions.\n\n\n✦ My macOS/iOS application ✦\n\n\u003cp style=\"display: inline_block\"\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/file-sentinel/\" title=\"FileSentinel for macOS\"\u003e\u003cimg align=\"center\" alt=\"FileSentinel\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/28bce2cc-290e-45bf-9068-585ff6ecafe9\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/focus-cursor/\" title=\"FocusCursor for macOS\"\u003e\u003cimg align=\"center\" alt=\"FocusCursor\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/d543668a-737b-4853-a6bb-eaa269e69836\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/videoer/\" title=\"Videoer for macOS\"\u003e\u003cimg align=\"center\" alt=\"Videoer\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/10ffb0f1-0625-40d6-93f1-2c2496592595\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/key-clicker/\" title=\"KeyClicker for macOS\"\u003e\u003cimg align=\"center\" alt=\"KeyClicker\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/5a19fcb9-cb81-4855-b4ea-31c604d9612a\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/daybar/\" title=\"DayBar for macOS\"\u003e\u003cimg align=\"center\" alt=\"DayBar\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/b67d4a2e-92e2-4d8c-8c6f-2a1eb3e2fa93\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/iconed/\" title=\"Iconed for macOS\"\u003e\u003cimg align=\"center\" alt=\"Iconed\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/8a35dc7b-4faf-4e2a-9311-f66d6844a896\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/rightmenu-master/\" title=\"RightMenu Master for macOS\"\u003e\u003cimg align=\"center\" alt=\"RightMenu Master\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/39a76541-71bf-4de7-a01c-c62f0557dff5\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/paste-quick/\" title=\"Paste Quick for macOS\"\u003e\u003cimg align=\"center\" alt=\"Quick RSS\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/bdaad5b7-9810-44ce-8f17-8410864465d2\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/quick-rss/\" title=\"Quick RSS for macOS/iOS\"\u003e\u003cimg align=\"center\" alt=\"Quick RSS\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/374106b5-a448-4d1d-9ccb-b04b6bc681ed\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/web-serve/\" title=\"Web Serve for macOS\"\u003e\u003cimg align=\"center\" alt=\"Web Serve\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/e1d9f76f-0f3d-4ba5-8a15-253ee173bb1c\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/copybook-generator/\" title=\"Copybook Generator for macOS/iOS\"\u003e\u003cimg align=\"center\" alt=\"Copybook Generator\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/b90e42ff-158b-4534-82ca-5898fd0e8d73\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/devtutor/\" title=\"DevTutor for macOS/iOS\"\u003e\u003cimg align=\"center\" alt=\"DevTutor for SwiftUI\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/f15c154d-0192-48eb-8e0e-9e245ffd974a\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/regex-mate/\" title=\"RegexMate for macOS/iOS\"\u003e\u003cimg align=\"center\" alt=\"RegexMate\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/aabe5aa9-9a96-4390-8bed-c3e4023d0dea\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/time-passage/\" title=\"Time Passage for macOS/iOS\"\u003e\u003cimg align=\"center\" alt=\"Time Passage\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/time-passage/assets/1680273/6f30e429-e6f3-4dbe-9921-a5effe2a05e9\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/IconizeFolder/\" title=\"IconizeFolder for macOS\"\u003e\u003cimg align=\"center\" alt=\"Iconize Folder\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/fa9d8b9c-1e51-4ded-877c-fa5b21c47220\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/TextSoundSaver/\" title=\"Textsound Saver for macOS/iOS\"\u003e\u003cimg align=\"center\" alt=\"Textsound Saver\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/0595e842-980b-4574-8891-a8ba853a08be\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/create-custom-symbols/\" title=\"Create Custom Symbols for macOS\"\u003e\u003cimg align=\"center\" alt=\"Create Custom Symbols\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/8cd022ce-a3f1-4e89-b7c6-6fbd0d4db77c\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/DevHub/\" title=\"DevHub for macOS\"\u003e\u003cimg align=\"center\" alt=\"DevHub\" height=\"52\" width=\"52\" src=\"https://github.com/user-attachments/assets/4a44a4fd-67ce-430b-af0a-72f18feaa47d\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/ResumeRevise/\" title=\"Resume Revise for macOS\"\u003e\u003cimg align=\"center\" alt=\"Resume Revise\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/c9954a20-1905-48de-bdf8-d71837974aa2\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/palette-genius/\" title=\"Palette Genius for macOS\"\u003e\u003cimg align=\"center\" alt=\"Palette Genius\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/27340413-d355-45b2-8f6f-6ac37682d957\"\u003e\u003c/a\u003e\n    \u003ca target=\"_blank\" href=\"https://wangchujiang.com/symbol-scribe/\" title=\"Symbol Scribe for macOS\"\u003e\u003cimg align=\"center\" alt=\"Symbol Scribe\" height=\"52\" width=\"52\" src=\"https://github.com/jaywcjlove/jaywcjlove/assets/1680273/c7249f05-fa70-4def-a1e9-571d5f171fc9\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n## 🚫 Guideline 1.5 - Safety\n\n1.5 Developer Information People need to know how to reach you with questions and support issues. Make sure your app and its Support URL include an easy way to contact you; this is particularly important for apps that may be used in the classroom. Failure to include accurate and up-to-date contact information not only frustrates customers, but may violate the law in some countries or regions. Also ensure that Wallet passes include valid contact information from the issuer and are signed with a dedicated certificate assigned to the brand or trademark owner of the pass.\n\n**Q: Issue Description**\n\nThe Support URL provided in App Store Connect, https://wangchujiang.com/quick-rss/, does not direct to a website with information users can use to ask questions and request support.\n\n\u003e [!TIP]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e In most cases, including links and contact information for technical support passes the review without issues. However, occasionally a stricter reviewer may reject the app because of it. To solve this, I used a free solution by offering technical support through GitHub using the [issue](https://github.com/jaywcjlove/quick-rss/issues/new?assignees=\u0026labels=support%2Cfeedback%2Cquestion\u0026projects=\u0026template=bug_report.yml\u0026title=%F0%9F%99%8B%E2%80%8D%E2%99%82%EF%B8%8F+Support+%26+Feedback%3A+Quick+RSS) creation feature, and the app successfully passed the review.\n\u003e \n\u003e \u003ca href=\"https://github.com/jaywcjlove/quick-rss/issues/new?assignees=\u0026labels=support%2Cfeedback%2Cquestion\u0026projects=\u0026template=bug_report.yml\u0026title=%F0%9F%99%8B%E2%80%8D%E2%99%82%EF%B8%8F+Support+%26+Feedback%3A+Quick+RSS\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/ec2e48e7-fbcc-404d-969a-a5729354aad4\" alt=\"Rejection Fixes\" width=\"360\" /\u003e\u003c/a\u003e\n\n## 🚫 Guideline 1.5 - Safety\n\n1.5 Developer Information People need to know how to reach you with questions and support issues. Make sure your app and its Support URL include an easy way to contact you; this is particularly important for apps that may be used in the classroom. Failure to include accurate and up-to-date contact information not only frustrates customers, but may violate the law in some countries or regions. Also ensure that Wallet passes include valid contact information from the issuer and are signed with a dedicated certificate assigned to the brand or trademark owner of the pass.\n\n**Q: Issue Description**\n\nThe Support URL provided in App Store Connect, https://github.com/jaywcjlove/quick-rss/issues/new?assignees=\u0026labels=support%2Cfeedback%2Cquestion\u0026projects=\u0026template=bug_report.yml\u0026title=%F0%9F%99%8B%E2%80%8D%E2%99%82%EF%B8%8F+Support+%26+Feedback%3A+Quick+RSS, does not direct to a website with information users can use to ask questions and request support.\n\nSpecifically, official app support contact was not found in the support URL.\n\n**Q: Next Steps**\n\nUpdate the specified Support URL to direct users to a webpage with support information.\n\n\u003e [!TIP]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e I created a feedback page (https://wangchujiang.com/quick-rss/feedback.zh.html) which passed the iOS review. However, for the macOS version, the feedback page is still using GitHub Issues.\n\u003e\n\u003e \u003cimg src=\"https://github.com/user-attachments/assets/5e2c9a1e-25ce-46c0-a96f-93e4258746c1\" alt=\"Rejection Fixes\" width=\"360\" /\u003e\n\n## 🚫 Guideline 2.1 - Performance - App Completeness\n\nSubmissions to App Review, including apps you make available for pre-order, should be final versions with all necessary metadata and fully functional URLs included; placeholder text, empty websites, and other temporary content should be scrubbed before submission. Make sure your app has been tested on-device for bugs and stability before you submit it, and include demo account info (and turn on your back-end service!) if your app includes a login. If you are unable to provide a demo account due to legal or security obligations, you may include a built-in demo mode in lieu of a demo account with prior approval by Apple. Ensure the demo mode exhibits your app’s full features and functionality. We will reject incomplete app bundles and binaries that crash or exhibit obvious technical problems.\n\n**Q: Issue Description**\n\nThe app exhibited one or more bugs that would negatively impact App Store users.\n\nBug description: No content was displayed on the PASS Purchase page.\n\n\u003e [!TIP]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e The purchase page did not display any product items, and the page was blank. The reason was an incorrect subscription ID.\n\n## 🚫 Guideline 2.1 - Information Needed\n\nWe need a video that demonstrates the current version, 1.0, in use on a physical iOS device.\n\nSpecifically, we need a demo video that shows app in-use.\n\nThe demo video should:\n\n- Show the app running on a physical iOS device, not on a simulator.\n- Clearly documents all relevant app features, services, and user permission requests.\n\n**Q: Next Steps**\n\nProvide a link to the video in the App Review Information section of your the app’s page in App Store Connect and reply to this message. A screen recorder can be used to capture footage of the app in use. Note that if the app can only be reviewed with a demo video, updated demo videos will need to be provided for every app submission.\n\n\u003e [!TIP]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e Upload a 15-second demo video in the app submission's preview and screenshot section.\n\u003e \n\n## 🚫 Guideline 2.3 - Performance - Accurate Metadata\n\nWe noticed that your app’s metadata includes the following information, which is not relevant to the app’s content and functionality:\n\nWhat’ new text showed iOS reference.\n\n**Q: Next Steps**\n\nTo resolve this issue, please revise or remove this content from your app’s metadata. For resources on metadata best practices, you may want to review the App Store Product Page information available on the Apple Developer website.\n\n\u003e [!TIP]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e While mentioning macOS in the release notes for an iOS app is not problematic, mentioning iOS in the release notes for a macOS app is likely to result in rejection.\n\n## 🚫 Guideline 2.4.5(i) - Performance\n\nIn order to continue reviewing your app, we require additional information.\n\nYour app uses one or more entitlements which do not appear to have matching functionality within the app. Please reply to this message in App Store Connect and describe how and where the app uses the following entitlements. You will not need to upload a new binary to provide this information.\n\nApps should have only the minimum set of entitlements necessary for the app to function properly. If there are entitlements that are not needed, please remove them and submit an updated binary. You will need to Developer Reject the app to upload an updated version.\n\n```\ncom.apple.security.files.bookmarks.app-scope\ncom.apple.security.network.server\n```\n\n\u003e [!TIP]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e When using permissions, you need to include a note during the initial review. If not, the app might be rejected. In that case, simply respond with a description of where the permissions are used, and the issue will be resolved.\n\n## 🚫 Guideline 4 - Design\n\nWe noticed an issue with your app's user interface that contributes to a lower-quality user experience than App Store users expect.\n\nSpecifically, we found that when the user closes the main application window there is no menu item to re-open it.\n\n**Q: Next Steps**\n\nIt would be appropriate for the app to implement a Window menu that lists the main window so it can be reopened, or provide similar functionality in another menu item.\n\nAlternatively, if the application is a single-window app, it might be appropriate to save data and quit the app when the main window is closed.\n\n\u003e [!TIP]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e Add a ‘Main Windows’ menu item to the Windows menu. This way, when the application is closed, users can click this menu item to reopen the main window.\n\u003e \n\u003e \u003cimg src=\"https://github.com/user-attachments/assets/d316f9a4-c683-40cd-af25-93f357d6f80f\" alt=\"Rejection Fixes\" width=\"360\" /\u003e\n\u003e \n\u003e Alternatively, you can implement it so that clicking the close button exits the application directly.\n\n## 🚫 Guideline 3.1.1 - Business - Payments - In-App Purchase\n\nWe have begun the review of your in-app purchases but aren't able to continue because your submitted in-app purchases indicate a change of business model for your app. \n\nSpecifically, your existing Auto-Renewable Subscription business model has changed to include a non-consumable in-app purchase business model type.\n\nTherefore, we need to verify the implementation of your submitted in-app purchases in the app to ensure your app, and its in-app purchases, are in compliance with the App Review Guidelines.\n\n**Q: Next Steps**\n\nIn order to approve your your new in-app purchase business model, we have to verify the purchasability of the items being sold. Please upload a new binary and make sure that your new in-app purchase products are available for purchase at the time of review.\n\n\u003e [!WARNING]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e ??? No changes were made, but after resubmitting, a new error [2.1](#-guideline-21---performance---app-completeness) occurred.\n\n\n## 🚫Guideline 2.1 - Performance - App Completeness\n\nSettings \u003e Full Disk Access erroneously states \"Granted\", however the access was never asked for or granted by the user.\n\n**Q: Next Steps**\n\nTest the app on supported devices to identify and resolve bugs and stability issues before submitting for review.\n\nIf you are unable to reproduce the bug, try the following:\n\n- For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce.\n- For app updates, install the new version as an update to the previous version, then follow the steps to reproduce.\n\n\u003e [!TIP]  \n\u003e **A: 💯 Rejection Fixes**\n\u003e \n\u003e The ‘Full Disk Access’ status on the ‘Settings’ page is cached, so it remains the same when closing and reopening the window. This is because the page is created using NSWindow. The solution is to regenerate the window each time it is accessed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaywcjlove%2Fapp-rejection-fixes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaywcjlove%2Fapp-rejection-fixes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaywcjlove%2Fapp-rejection-fixes/lists"}