REVIEW NOTES — FixMate
Version: 28 | Build: 79 | Category: Utilities
1. Demo Account Credentials
Username: jungleone43@gmail.com
Password: Provided securely via App Store Connect review notes
Notes: Full-access demo account pre-loaded with sample saved items and diagnosis history for review purposes.
2. Walkthrough Video
A screen recording walkthrough has been uploaded as an App Preview video and is also accessible in-app at /walkthrough. The video demonstrates:
- App launch and home dashboard
- Account registration and login flow
- AI-powered repair diagnosis (photo upload → AI analysis → results with severity, difficulty, repair steps, cost estimates)
- Browsing AI-generated repair guides
- Materials calculator for DIY project materials
- Community forum (browsing posts, creating a post)
- Saved items and maintenance reminders
- Profile page and account settings
- Account deletion flow (Profile → Delete Account → confirmation)
- Subscription/purchase flow (Pricing page → Subscribe via In-App Purchase)
3. Previous Rejection Issues & Fixes Applied
Below is a summary of each issue raised in the previous review and the corresponding fix implemented in this submission.
3.1 Performance — Guideline 2.1
Issue: App crashed or froze during camera capture and video playback on certain devices.
Fix: Fixed a race condition in the camera capture component where the video stream was attached before the video element mounted. Added stream auto-restart (onended handler) and video playback auto-resume (onPause handler) to prevent the feed from freezing. Applied safe-area-inset top padding to prevent UI overlap with the iOS notch/status bar on all pages.
3.2 Screenshot Quality — Guideline 2.1
Issue: Screenshots did not meet App Store quality standards.
Fix: Screenshots were re-captured at the correct device sizes (6.7", 6.5", 5.5") with the native iOS status bar (9:41) displayed. A dedicated Screenshot Export tool was built into the app (/ScreenshotExport) to generate App Store-compliant screenshots with proper status bar, safe areas, and resolution.
3.3 In-App Purchase Compliance — Guideline 3.1.1
Issue: IAP products were not submitted in App Store Connect.
Fix: All four IAP products have been created and submitted in App Store Connect: Pro Monthly, Pro Annual, Business Monthly, Business Annual. Product IDs are configured in the app and match App Store Connect exactly.
Issue: Missing IAP/Subscription legal disclosure links in the app UI.
Fix: Privacy Policy and Terms of Service links are now accessible from the Profile page and the Pricing page. Links to manage/cancel subscriptions (via Apple ID settings) are clearly presented. Auto-renewal terms, pricing, and cancellation instructions are displayed on the Pricing page before purchase.
Issue: UIBackgroundModes 'audio' entry present in native config.
Fix: The 'audio' UIBackgroundModes entry has been removed from the native platform configuration. The app does not require background audio.
3.4 Data Security & Privacy — Guideline 5.1.1
Issue: Potential exposure of other users' data to admin accounts on the Profile page.
Fix: The Profile page now filters saved items, diagnoses, and maintenance reminders by the current user's ID. Admin accounts can no longer see other users' personal data through the Profile interface. Row-Level Security (RLS) is enforced on all user-specific entities so each user only reads and modifies their own records.
Issue: Subscription entity lacked proper access controls.
Fix: RLS applied to the Subscription entity — only the subscription owner and admins can read; create/update/delete restricted to admins. This prevents unauthorized access to billing records.
3.5 Account Deletion — Guideline 5.1.1(v)
Issue: App must provide an in-app account deletion option.
Fix: A "Delete Account" button is available on the Profile page. Tapping it shows a confirmation dialog explaining the action is permanent. On confirmation, a backend function deletes the user's account and all associated data. A data-deletion policy page is also available at /data-deletion.
3.6 UI/UX Fixes
Issue: Delete button on History page overlapped with the severity badge.
Fix: Repositioned the delete button to prevent overlap with the severity badge on diagnosis history cards.
Issue: iOS notch/status bar overlap on multiple pages.
Fix: Applied a global safe-top CSS class (using env(safe-area-inset-top)) to all root page containers, navigation, and main content areas for consistent notch handling across iPhone and iPad devices.
3.7 Login Services — Guideline 4.8
Issue: App uses a third-party login service (Google) but does not offer Sign in with Apple as required by Guideline 4.8.
Fix: "Sign in with Apple" has been added to both the Login and Register pages alongside the existing "Continue with Google" button. The Apple button uses the platform's native OAuth flow (loginWithProvider("apple")) and is styled per Apple's Human Interface Guidelines (black background, white Apple logo and text). Users who sign in with Google are also offered Sign in with Apple as an equivalent option.
3.8 Google Play / Android References — Guideline 2.3.10
Issue: App or its metadata contained references to Google Play or the Android platform.
Fix: All Google Play / Android references have been removed from user-facing content. The data-deletion policy page no longer mentions Google Play. The App Store Connect description has been revised to remove any Android-specific terminology. The app is presented exclusively as an iOS application.
3.9 Demo Account — Guideline 2.1
Issue: The demo account credentials provided in the previous submission did not work.
Fix: The correct demo account credentials have been provided in the App Store Connect review notes field (not hardcoded in the app for security). The demo account (jungleone43@gmail.com) has an active Pro subscription and is pre-loaded with sample saved items and diagnosis history. Please use the credentials provided in the App Review Information section of App Store Connect.
3.10 Business Model — Guideline 2.1(b)
The app uses a freemium subscription model. All paid features are unlocked exclusively through Apple's In-App Purchase (StoreKit 2). Below are the specific details requested:
- Who are the users that will use the paid features? DIY enthusiasts, homeowners, car owners, and hobbyists who want to diagnose and repair household items, vehicles, and appliances themselves rather than hiring a professional.
- Where can users purchase the features? Exclusively within the app through Apple's In-App Purchase system (StoreKit 2). No purchases are available outside the app or through any external payment method.
- What specific types of previously purchased features can a user access? Two auto-renewable subscription tiers:
- Pro — $17.99/month or $149.99/year: 20 AI diagnoses per month, priority repair guides, advanced cost estimates, materials calculator, ad-free experience.
- Business — $49.99/month or $399.99/year: Unlimited AI diagnoses, all Pro features, priority support, advanced diagnostic tools.
- What paid content, subscriptions, or features are unlocked within the app that do not use In-App Purchase? None. All paid content and subscriptions are processed exclusively through Apple's In-App Purchase system. There are no external payment options, no web-based purchases, and no alternative billing methods. The free tier (FixMate Starter) provides 5 AI diagnoses per month at no cost.
4. In-App Purchase Products
| Product | Billing Period | Auto-Renew | Description |
|---|---|---|---|
| Pro (Monthly) | 1 month | Yes | Increased diagnosis quota, advanced repair guides |
| Pro (Annual) | 1 year | Yes | Same as Pro Monthly at a discounted rate |
| Business (Monthly) | 1 month | Yes | Unlimited diagnoses, priority AI processing, team features |
| Business (Annual) | 1 year | Yes | Same as Business Monthly at a discounted rate |
Subscriptions auto-renew unless cancelled at least 24 hours before the end of the current billing period. Users can manage and cancel subscriptions via their Apple ID settings at any time. Pricing is displayed in the user's local currency where supported by the App Store.
5. External Services & Tools
- Base44: Backend-as-a-service (database, authentication, hosting, API layer)
- AI Vision Models (OpenAI / Google Gemini / Anthropic Claude): Image analysis for repair diagnostics, guide generation, and troubleshooting
- Apple StoreKit 2 (In-App Purchase): Native subscription billing via Median.co bridge
- Median.co: Native iOS wrapper (TWA) bridging the web app to native StoreKit IAP
6. Legal & Policy Links
- Privacy Policy:
/privacy-policy(in-app and on App Store listing) - Terms of Service:
/terms-of-service(in-app and on App Store listing) - Data Deletion Policy:
/data-deletion - App Review Info:
/app-review-info
7. Device Models & OS Tested
- iPhone 15 Pro (iOS 17.4)
- iPhone SE 3rd gen (iOS 17.4)
- iPad Pro 12.9" (iPadOS 17.4)
8. Regional Differences
The app functions consistently across all regions. There are no region-specific feature differences or content variations. The app is available in English. Subscription pricing is displayed in the user's local currency where supported by the App Store.
9. Regulatory Documentation
This app does not operate in a highly regulated industry. It is a DIY repair assistance tool. No special credentials or regulatory documentation are required.
10. Additional Notes for the Review Team
The demo account (jungleone43@gmail.com) has been pre-loaded with sample data including saved items and diagnosis history so the reviewer can immediately see a populated account. The walkthrough video covers all major user flows. If the reviewer needs to test the AI diagnosis flow, they can upload any photo of a household item (e.g., a faucet, appliance, or tool) from the home screen.
Key navigation:
- Home: AI diagnosis upload (camera or gallery)
- Guides: Browse AI-generated repair guides by category
- Calculator: Materials calculator for DIY projects
- Community: Repair forum — browse, post, comment
- Profile: Saved items, maintenance reminders, referrals, subscription, account deletion
Generated for FixMate Version 28 (Build 79) App Store submission. This document addresses all issues raised in the previous review rejection and provides all information required for the review team to test the app.