App Store Submission Checklist
App Store Submission Checklist
Project:
Drop — Fintech Payment App{{PROJECT_NAME}} Version:1.0.0{{APP_VERSION}} Build:1{{BUILD_NUMBER}} Date:2026-02-23{{DATE}} Author:John (AI Director, ALAI){{AUTHOR}} Status: Draft—|Pre-SubmissionIn Review | Approved Reviewers:Alem Bašić (CEO){{REVIEWERS}}
Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 0.1 | Initial draft |
Pre-Submission Requirements
General Readiness
- All P1 and P2 bugs resolved — issue tracker link:
{{URL}} - QA sign-off obtained — sign-off document:
{{URL}} - Legal sign-off obtained (privacy policy,
terms,terms)angrerettloven,—finansavtaleloven){{URL}} - Release notes written and reviewed
in Norwegian Bokmål -
Version:Version number follows1.0.0({{SemVer: MAJOR.MINOR.PATCH)PATCH}} - Build
number:numberincremented (monotonically1incrementing— never reused) - All
productionenvironment variables set(NEXT_PUBLIC_APP_ENV=for production,EXPO_PUBLIC_API_URL) - Crash-free rate > 99.5% in staging (Sentry)
- Analytics verified — events firing correctly in staging
Apple App Store
App Store Connect Setup
- App record created in App Store Connect
- App ID
no.getdrop.appregistered in Apple Developer Portal - Capabilities
configured:match- Xcode
- project:
Push{{listNotificationscapabilities(Phase 2 — when push implemented) Background Modes → Remote notifications (Phase 2)
used}} - project:
- Provisioning profiles up to date (distribution profile)
- Code signing certificate valid (not expiring within 30 days)
- App Store Connect API key configured for
EASCI/CDSubmitsubmission
App Metadata
- App name:
(Drop{{App— Send pengername}}18 chars — undermax 30char limit)chars) - Subtitle:
(Enklere betalinger for alle{{Subtitle}}28maxchars30 chars) —underhighlights30keychar limit)feature - Description:
See full description below{{Description}}(source:maxproject/store/app-store-metadata.md)4000 chars) — engaging, keyword-rich - Keywords:
(betaling,penger,overføring,QR,remittance,utlandet,gebyr,BankID,vipps,wisе,internasjonalt,send{{keyword1, keyword2, ...}}undermax 100chars)chars total, comma-separated) - Promotional text:
(Send{{Promopenger til utlandet med 0,5% gebyr. Betal i butikk med QR. Trygt med BankID. Regulert i Norge.text}}97maxchars170 chars) —undercan170updatecharwithoutlimit)new build - Support URL:
{{https://getdrop.no/supportsupport.domain.com}} - Marketing URL:
{{https://getdrop.nodomain.com}} - Privacy policy URL:
{{https://getdrop.no/personverndomain.com/privacy}} - Age
rating:rating17+completed (financial4+transactions/+12+BankID/requirement — 18+ in practice)17+) -
Primary category:Category:FinancePrimary: {{Category}}Secondary|category:Secondary:Utilities{{Category}}- Copyright:
©{{Year}}2026{{CompanyALAI Holding ASName}}
Full Description (Norwegian):
Drop — Enklere betalinger. Lavere gebyrer.
Drop er den nye standarden for internasjonale overføringer og daglige betalinger i Norge. Enten du skal sende penger til familie i utlandet eller betale for kebaben på hjørnet, gir Drop deg enklere og billigere løsninger enn bankene.
HVA ER DROP?
Drop er en betalingsapp som gjør to ting ekstremt godt:
1. Send penger internasjonalt med lavere gebyrer enn Wise, Vipps eller Western Union
2. Betal i butikk med QR-kode — raskere og billigere enn bankkort
HVORFOR VELGE DROP?
• 0,5% gebyr på internasjonale overføringer — Send 10 000 kr til familie i utlandet for 50 kr i gebyr, ikke 500 kr
• 1% gebyr for QR-betalinger — Billigere for butikken, enklere for deg
• Trygt med BankID — Norsk autentisering du stoler på
• Regulert i Norge — Vi følger alle norske regler for finansielle tjenester
• Pengene dine forblir i banken din — Drop bruker Open Banking (PSD2), så vi holder aldri pengene dine
• Rask overføring — Internasjonale betalinger tar minutter, ikke dager
• 30+ land — Send til Balkan, Pakistan, Tyrkia, Polen, Tyskland og mange flere
SIKKERHET OG TILLIT
• BankID-pålogging — Norsk standard for sikker autentisering
• Ingen mellomlagring — Pengene dine går direkte fra din bank til mottaker
• Regulert av Finanstilsynet — Vi følger alle norske regler
• Open Banking (PSD2) — Vi bruker samme sikkerhet som bankene
• Transparent prising — Du ser alltid nøyaktig hva du betaler
PRISER
• 0,5% gebyr på internasjonale overføringer (ingen skjulte kostnader)
• 1% gebyr på QR-betalinger i butikk
• Gratis å laste ned og opprette konto
• Ingen månedlig avgift
Drop er et produkt av ALAI Holding AS (org.nr 932 516 136), et norskregistrert selskap.
Screenshots
Required screenshots (Norwegian text overlays — from project/store/screenshot-texts.md):
Required device sizes:
| Device | Dimensions | Required | Status |
|---|---|---|---|
| iPhone 6.7" ( |
1320×2868 | Required | {{Done/TODO}} |
| iPhone 6.5" (11 Pro Max / 12 Pro Max) | 1242×2688 | Required | {{Done/TODO}} |
| iPhone 5.5" (8 Plus) | 1242×2208 | Required | {{Done/TODO}} |
| iPad Pro 12.9" (6th gen) | 2048×2732 | Required if iPad supported | {{Done/TODO}} |
| iPad Pro 12.9" (2nd gen) | 2048×2732 | Required if iPad supported | {{Done/TODO}} |
Screenshot rules:
- Max 10 screenshots per device
- First screenshot = most compelling (
Loginprimarywithimpression) -
trustNosignal)device frames required (add if chosen) - No "Download on the App Store" badge in screenshots
- Text overlays
usereadableFrauncesat(headlines)thumbnail+ DM Sans (subtext) — see brand guidesize -
DropNobranding:third-partygreenIP#0B6E35,withoutgold accent#D4A017 Logo watermark in corner (48px height)Final review by Alem (native Norwegian speaker)permission
App Preview video:video Not(optional):
-
v1.0Max 30 seconds, format MP4 or MOV - Actual app footage — no simulated/demo content
App Privacy Details
- Data types
Dropcollectedcollects:declared — mapped to usage purpose:
| Data Type | Collected? | Linked to User? | Used for Tracking? | |
|---|---|---|---|---|
| Name | {{Yes/No}} |
{{Yes/No}} |
{{Yes/No}} |
|
{{Yes/No}} |
{{Yes/No}} |
{{Yes/No}} |
||
| Phone | {{Yes/No}} |
{{Yes/No}} |
||
{{Yes/No}} |
||||
| Location (precise) | {{Yes/No}} |
{{Yes/No}} |
{{Yes/No}} |
|
| Location (coarse) | {{Yes/No}} |
{{Yes/No}} |
{{Yes/No}} |
|
| Usage data | {{Yes/No}} |
{{Yes/No}} |
{{Yes/No}} |
|
| Crash data | {{Yes/No}} |
{{Yes/No}} |
||
{{Yes/No}} |
||||
| Identifiers ( |
{{Yes/No}} |
{{Yes/No}} |
{{Yes/No}} |
- App Tracking Transparency (ATT)
—frameworkNOTimplementedrequiredif(nousing IDFAusage) - NSUserTrackingUsageDescription
—stringNOTprovidedrequiredin Info.plist
Data retention: Transaction and identity data retained minimum 5 years per hvitvaskingsloven.
Review Guidelines Compliance
- No private API usage (review using
{{otool | MachOView}}) - No undocumented device capabilities
-
No in-In-apppurchasespurchase(Dropimplementedis a payment service, not sellingfor digitalgoods)goods (not bypassing IAP) -
NoExternal payment links removed or comply with court order rules (US only) - Login options: if Sign in with Apple
requiredis(Dropavailableuseselsewhere,BankIDit—MUSTNorwegianberegulatory requirement)offered - User account deletion implemented
via(requiredsupportsincecontactJune([email protected]) — pending: self-service deletion2022) - App
worksfunctions as described — demo account provided forAppreviewReviewif(see below)needed
Demo account for App Review:
- Username:
[email protected]{{[email protected]}} - Password:
TBD —{{vaultreferencereference}} - Notes to reviewer:
"This{{specialissetupa Norwegian payment app. BankID (Norway's national ID system) is required for full verification. For App Review purposes, a pre-verified demo account is provided. Camera permission is requested for QR payment scanning — use 'Simuler skanning' button to test without physical QR code."instructions}}
Language note for App Review team: "The app is in Norwegian (Bokmål) — Norway's primary language. App Review guidelines allow non-English apps when serving a specific geographic market."
TestFlight Beta Testing
- Internal testing completed (
ALAIteamteammembers — up to100 testers)100) - External beta testing completed — testers:
TBD,{{N}}, duration:TBD{{N days}} - Crash rate < 1% in TestFlight
- Beta feedback addressed
- What's New
(v1.0inbeta):This"FørsteVersion:betaversjon{{BetaavreleaseDrop — gi oss tilbakemeldinger!"notes}}
App Transport Security
- All network connections use HTTPS
(drop-app.vercel.app) - No
NSAllowsArbitraryLoads: true(or justified withNSExceptionDomains) - Certificate pinning
—activeTBDfor(requirescriticalimplementation before production)endpoints -
NoATS exceptionsneededdocumented:{{list any exceptions and justification}}
Common iOS Rejection Reasons — Prevention
| Risk | Prevention |
|---|---|
| Crashes on launch | Test on physical device, clean install |
| Misleading screenshots | Screenshots match actual app UI |
| Login required without guest mode | Provide review demo account |
| Missing privacy strings | All NS*UsageDescription keys populated |
| IAP bypass | All digital content purchases go through IAP |
| Placeholder content | Remove all Lorem Ipsum, test data |
| Performance issues on older devices | Test on min supported device |
Google Play Store
Google Play Console Setup
- App created in Google Play Console
- Signing key configured (Play App Signing — recommended)
- Service account configured for
EASCI/CDSubmitAPIconfiguredaccess - Developer account in good standing
(ALAI Holding AS)
Store Listing
- App name:
(Drop{{App— Send pengername}}18 chars — undermax 50char limit)chars) - Short description:
(max 80Send{{Shortpenger internasjonalt. Betal i butikk med QR. 0,5% gebyr. Trygt med BankID.desc}}chars exactly)chars) - Full description:
Same{{Full(max 4000Norwegian content as iOSdescription}}char limit)chars) - App icon: 512×512
PNGPNG, no alpha, no rounded corners (noPlayalphaadds— TODO: export from Figma)them) - Feature graphic: 1024×500 JPG/PNG —
"drop"shownwordmarkatontopgreenofgradient (TODO)listing - Screenshots: min 2, max 8 per device type
| Device | Min Dimensions | Status |
|---|---|---|
| Phone | {{Done/TODO}} |
|
| 7" tablet | Same constraints | {{Done/TODO}} |
| 10" tablet | Same constraints | {{Done/TODO}} |
Content Rating Questionnaire
- IARC questionnaire completed in Play Console
-
Expected rating:17+ (financial transactions, real money) Rating certificate generated and applied- Rating matches app content (honest answers — inaccurate rating = suspension)
Data Safety Form
- Data types collected declared
-
asDataApplesharingPrivacydisclosuresDetails above)complete - Security practices answered:
- Data in transit encrypted:
Yes (HTTPS/TLS 1.3){{Yes/No}} - Data at rest encrypted:
TBD (server-side){{Yes/No}} - Users can request deletion:
Yes (via support contact — pending self-service){{Yes/No}}
- Data in transit encrypted:
Target Audience & Content
- Target age
group:group18+declared (BankIDunderrequires13?18+,—NorwegianCOPPAresidents)compliance required) -
NoAdsadsconfiguration (if using ads) —Dropappropriatedoesadnotformatsserveforadvertisementsage group - Sensitive
permissions:appCamera (QR scanning) —permissions justified inlistingdeclaration
Testing Tracks
| Track | Audience | Status |
|---|---|---|
| Internal testing | {{Done/TODO}} |
|
| Closed testing (alpha) | Limited |
{{Done/TODO}} |
| Open testing (beta) | {{Done/TODO}} |
|
| Production | {{Done/TODO}} |
Staged rollout: Start at {{10%}} → increase to 25% after {{48 → hourshours}}{{100%}}
Common daysAndroid Rejection Reasons — Prevention
| Risk | Prevention |
|---|---|
| Permission over-declaration | Request only necessary permissions |
| Misleading app behavior | App does exactly what listing says |
| Policy violations ( |
No |
| Malware detection | Scan APK/AAB with VirusTotal before upload |
| Crashes | Test on multiple API levels, both ARM architectures |
| Data safety inaccurate | Audit all SDKs for data collection |
Cross-Platform Checklist
Version Naming
| Field | iOS | Android | Value |
|---|---|---|---|
| Version string | CFBundleShortVersionString |
versionName |
|
| Build number | CFBundleVersion |
versionCode |
( |
Version naming convention: MAJOR.MINOR.PATCH
- MAJOR: Breaking change / major redesign
- MINOR: New feature
- PATCH: Bug fix / performance
Release Notes (Norwegian)Format
VelkommenWhat's tilnew Drop!in Dettev{{X.Y.Z}}:
er• den{{New førstefeature versjonen1}}
av• Drop{{Bug fix 1}}
• {{Improvement 1}}
Questions or feedback? Contact us at support@{{domain.com}}
Rules:
- Max 500 characters (App Store) / 500 characters (Play Store)
- Translate for each supported locale
- No marketing language —
dinfactualnyechangesapponly - Reference
enkleretoogknownbilligereissuesbetalinger.ifHvaapplicable
Marketing Assets Checklist
- App icon final
—(no1024×1024 (iOS), 512×512 (Android) — from Figmabrand/assetsplaceholder) - Feature graphic final
— 1024×500 PNG(Google Play) -
ScreenshotsPresswithkitNorwegianupdated:text overlays — all device sizes{{URL}} -
PressAppkitpreviewupdatedvideoat(ifapplicable)https://getdrop.no/presse - Social media announcement
in Norwegiancontent prepared
Legal Requirements
- Privacy Policy URL:
—https://getdrop.no/personvern{{URL}}GDPR-compliant,covers all data collected - Terms of Service URL:
https://getdrop.no/vilkar{{URL}} - GDPR: Right to deletion
(via support, pending self-service portal)implemented -
Angrerettloven:CCPA:14-dayDowithdrawalNotrightSellformlinkat(if/withdrawalUS Finansavtaleloven §3-53: Complaint form at/complaintsHvitvaskingsloven: 5-year AML data retention stated in privacy policyusers)- COPPA:
NotKidsapplicablecategory compliance (18+ifminimum<age,13) -
residentsIn-apponly)purchase terms linked
Drop-Specific Submission Notes
BankID requirement:Explicitly mention in App Review notes that BankID (Norwegian national digital ID system) is required. Provide pre-verified demo account.Age restriction:17+ (App Store) due to financial transactions and real money. BankID legally requires 18+.Permissions:Camera (QR scanning) — justified as core feature. Push notifications (Phase 2) — transaction alerts.Regulatory compliance:ALAI Holding AS, Org.nr 932 516 136, Norway. Regulert av Finanstilsynet.Pass-through model:Drop never holds user money. Emphasize in reviewer notes to avoid confusion with e-money apps that require different regulatory disclosure.Norwegian language:All store content in Norwegian Bokmål — correct for geographic target market (Norway).Target market:Norway only (Phase 1). Sverige, Danmark in Phase 2.
Final Submission Sign-Off
| Item | Status | Sign-Off |
|---|---|---|
| All checklist items complete | {{Yes/No}} |
|
| QA approval received | {{Yes/No}} |
|
| Legal approval received | {{Yes/No}} |
|
| Marketing assets ready | {{Yes/No}} |
|
| Support team briefed |
||
{{Yes/No}} |
Approval
| Role | Name | Date | Signature |
|---|---|---|---|
| Author | |||
| Mobile Lead | |||
| QA Lead | |||
| Product Manager | |||
| Legal |