All copy, metadata, review notes, and StoreKit setup steps — ready to paste.
Follow these steps in App Store Connect before submitting your build. StoreKit will not return products on real devices until they exist in ASC.
Log in at appstoreconnect.apple.com, select SignalFlare, then click the "In-App Purchases" tab in the left sidebar.
You'll create a Subscription Group first. Name it exactly: SignalFlare Pro. This group holds both plans.
Reference Name: Weekly Pro
Product ID: com.yuzool.SignalFlare.pro.weekly
Subscription Duration: 1 Week
Price: $4.99 USD (Tier 5)
Localization → Add English → Display Name: Weekly → Description: Full access to all SignalFlare signals, widgets, and trade diary.
In the Weekly product → Introductory Offers → "+" → Free Trial → Duration: 3 Days → Eligible: New subscribers only.
Reference Name: Yearly Pro
Product ID: com.yuzool.SignalFlare.pro.yearly
Subscription Duration: 1 Year
Price: $34.99 USD (Tier 35)
Localization → Add English → Display Name: Yearly → Description: Full access to all SignalFlare signals, widgets, and trade diary. Best value.
Same as step 4 — Free Trial → 3 Days → New subscribers only.
In the group settings, drag Yearly above Weekly so Yearly appears first in Apple's native subscription management UI.
Each product must be submitted alongside your app binary. Set the status to "Submit with App Binary" for both. They'll be reviewed at the same time as your app.
In Xcode: Edit Scheme → Options → StoreKit Configuration → select SignalFlare.storekit. This lets you test purchases in the Simulator without real charges. On a real device, create a Sandbox tester account in App Store Connect → Users → Sandbox Testers.
App Store Connect → Agreements, Tax, and Banking → set up your banking info. You cannot receive payments or go live without this.
com.yuzool.SignalFlare.pro.weekly and com.yuzool.SignalFlare.pro.yearly) must exactly match what you enter in App Store Connect — including case. Any mismatch means products won't load.Required sizes. You must provide at least 6.7" and 6.5" (or 6.7" covers both if identical). Open screenshots.html to see the designed mockups.
| Device | Required Size (px) | How to get it |
|---|---|---|
| iPhone 6.7" (15 Pro Max) | 1290 × 2796 | Run in iPhone 15 Pro Max Simulator → Device → Take Screenshot |
| iPhone 6.5" (11 Pro Max) | 1242 × 2688 | Run in iPhone 11 Pro Max Simulator → same |
| iPhone 5.5" (8 Plus) | 1242 × 2208 | Optional but widens reach — iPhone 8 Plus Simulator |
| iPad Pro 12.9" | 2048 × 2732 | Only if you plan iPad support (not required for phone-only) |
| # | Screen | Suggested Title | Subtitle |
|---|---|---|---|
| 1 | Alerts feed (cards visible) | Trade alerts, instantly. | Real-time buy & sell signals |
| 2 | Dynamic Island expanded | Know before you look. | Latest signal in your Dynamic Island |
| 3 | Home screen + widget | Always on your screen. | Small & medium home screen widgets |
| 4 | Trade diary / log entry | Track your edge. | Log entries, outcomes & notes |
| 5 | Paywall / pricing | 3 days free. No risk. | Weekly or yearly — cancel anytime |
developer.apple.com → Identifiers → register com.yuzool.SignalFlare with App Groups capability.
Register group.com.yuzool.SignalFlare in the Developer Portal → Identifiers → App Groups. Add it to both the main app and widget extension provisioning profiles.
Weekly and Yearly, both set to "Submit with App Binary" (see Section 3).
Must be a publicly reachable URL at submission time.
Apple Finance guidelines require a visible disclaimer that signals are not financial advice. Add it to Settings → About, or as a footer on the paywall screen.
At least 1, up to 10 per device size. See Section 4.
Apple adds the rounding. File: icon-1024.png in Assets.xcassets. ✅ Already done.
Product → Archive → Distribute App → App Store Connect. Make sure team is set to your real 10-character Team ID (not "Michael Frankland" string — check developer.apple.com → Membership for your ID).
Agreements, Tax, and Banking → paid applications agreement signed and bank account linked.
Upload build → TestFlight → invite yourself as internal tester → verify IAP, notifications, and widget work on a real device before submitting to review.