App Store Submission Checklist#

  • 1.1 Active Apple Developer Program Membership: Annual subscription required to distribute on the store.
  • 1.3 App Store Connect User Access: Proper permissions for the team members managing the submission.
  • 1.2 Facultative - I’ll start with the individual account - D-U-N-S Number: Unique identifier used by Apple to verify business entities for organizations.
  • 1.4 Paid Applications Agreement: Signed contract required for apps with a purchase price or subscriptions, via https://appstoreconnect.apple.com/ (Demande TPS-TVQ fait 27 avril)
  • 1.5 Banking and Tax Information: Verified details needed for Apple to process your earnings.
  • 1.6 Public Privacy Policy URL: A web link detailing how you handle and protect user data. (https://github.com/marcoue/GenDash-Support/ and Privacy form in App store)
  • 1.7 Export Compliance Documentation: Proof of clearance for apps utilizing specific types of encryption. (Via Info.plist file in Xcode)
  • 1.8 Digital Services Act (DSA) Compliance: Mandatory legal registration for distribution within the European Union. (Opted out for now as it requires my personal home address)

2. Technical Requirements#

  • 2.1 Latest Mandatory Xcode Version Build: The binary must be compiled with the current Apple-approved IDE.
  • 2.2 Latest iOS SDK Compatibility: Ensuring the app supports current system APIs and frameworks.
  • 2.3 App Privacy Manifest: A .privacyinfo file documenting the data types accessed by your code.
  • 2.4 SHA-256 Certificate Support: Modern security standard required for app signing certificates.
  • 2.5 64-bit Architecture Support: Technical requirement for compatibility with all modern iOS hardware.
  • 2.6 Optimized Binary Size: Monitoring the final build to stay within cellular download limits. (When app is completed)
  • 2.7 Bitcode Disabled: Adherence to modern standards where bitcode is no longer required for thinning.

3. Metadata#

  • 3.1 App Name: The primary title of the application as it appears in search.
  • 3.2 Subtitle: A secondary tagline used to summarize the app’s purpose.
  • 3.3 Description: A full text overview of features and functionality for potential users.
  • 3.4 Keywords: A hidden list of terms that improve the app’s search discoverability.
  • 3.5 Promotional Text: A short, editable field to highlight news or limited-time updates.
  • 3.6 Marketing URL: A link to your product’s landing page or company website.
  • 3.7 Support URL: A direct link where users can go for technical help or FAQs.
  • 3.8 Version Number and Build String: Incremental identifiers for tracking your releases and builds.
  • 3.9 Category Selection: Tags that determine which store departments the app resides in.

4. Visual Assets#

  • 4.1 App Icon: A 1024x1024 px image representing the app on home screens.
  • 4.2 Screenshots for 6.7" Display: Visuals for the largest iPhone models like the Pro Max.
  • 4.5 iPad Screenshots: Required imagery if your app is compatible with iPadOS.

5. App Review Information#

  • 5.1 Demo Account Credentials: Login data provided to allow reviewers to access hidden features.
  • 5.2 Review Notes: Extra instructions to help the reviewer understand complex workflows.
  • 5.3 Reviewer Contact Information: Name and number for the person Apple should call with questions.
  • 5.4 Hardware Requirements: Documentation of any external hardware needed for the app to work.

6. Privacy & Content#

  • 6.1 Privacy Nutrition Labels: A summary of what data is collected and how it is linked.
  • 6.2 Accessibility Nutrition Labels: A declaration of the app’s support for assistive technologies.
  • 6.3 Age Ratings: A self-assessment used to determine content suitability for different age groups.
  • 6.4 App Tracking Transparency (ATT) Prompt: The system-level request for permission to track user data.
  • 6.5 Content Rights: Legal confirmation that you have the rights to use all displayed content.

7. Pricing & Availability#

  • 7.1 Pricing Tier Selection: The defined cost for purchasing the app or in-app services.
  • 7.2 Regional Availability: A list of specific countries where the app will be available.
  • 7.3 Pre-order Status: A setting to allow users to sign up for the app before launch.
  • 7.4 Release Methodology: A choice between manual, scheduled, or automatic publication.

8. Critical Alerts Entitlement & Implementation#

  • Submit the “Critical Alerts Entitlement” Request Fill out the official Apple form providing a safety-based justification for why GenDash fuel/status alerts must bypass the mute switch.

  • Provision the App ID in the Developer Portal Once approved by Apple, update your App ID configuration in the “Certificates, Identifiers & Profiles” section to enable the “Critical Alerts” capability.

  • Add Entitlement to Xcode Project Add the com.apple.developer.usernotifications.critical-alerts key to your app’s Entitlements.plist file and set the value to Boolean: YES.

  • Update Notification Permission Request Modify the requestAuthorization call in your code to include the .criticalAlert option so the system prompts the user for this specific permission.

  • Set Interruption Level in Payload Update your notification logic (Local or Remote) to set the interruption-level to critical and assign a sound dictionary with a volume and name.

  • Implement Time-Sensitive Fallback Code a fallback logic using .timeSensitive to ensure notifications still break through Focus/DND modes while the Critical Alert entitlement is pending approval.