# App Store Connect Configuration Guide

Complete step-by-step guide for configuring BaoLife in App Store Connect.

---

## Prerequisites

Before starting, ensure you have:

- [ ] Apple Developer Program membership ($99/year)
- [ ] App bundle ID registered (com.baolife.app)
- [ ] Code signing certificates configured
- [ ] Xcode project configured with correct bundle ID
- [ ] Privacy policy URL live (https://baolife.app/privacy)
- [ ] Terms of service URL live (https://baolife.app/terms)
- [ ] Support page URL live (https://baolife.app/support)
- [ ] App icon (1024x1024 PNG)
- [ ] Screenshots for required device sizes
- [ ] Demo account credentials

---

## Part 1: Creating Your App

### Step 1: Access App Store Connect

1. Go to [appstoreconnect.apple.com](https://appstoreconnect.apple.com)
2. Sign in with your Apple ID
3. Click "My Apps"
4. Click the "+" button
5. Select "New App"

### Step 2: Platform & App Information

**Platform:** iOS

**Name:** BaoLife - Life Simulator
- 30 character limit
- Must be unique across entire App Store
- Check availability before proceeding

**Primary Language:** English (U.S.)

**Bundle ID:** Select "com.baolife.app" from dropdown
- Must be created in Apple Developer portal first
- Cannot be changed after app creation

**SKU:** BAOLIFE-001
- Your internal identifier
- Not visible to users
- Use consistent format for tracking

**User Access:** Full Access
- All team members can access
- Adjust as needed for team structure

### Step 3: Click Create

Your app is now created! You'll be taken to the app's main page.

---

## Part 2: App Information Setup

### Navigate to App Information

Click "App Information" in the left sidebar.

### General Information

**Name:** BaoLife - Life Simulator
- Already set, but can be changed here
- Changes require app review

**Subtitle:** Live a lifetime in your pocket
- 30 character limit
- Appears in search results
- Can be changed per version

**Category:**
- **Primary:** Games > Simulation
- **Secondary:** Games > Role Playing

**License Agreement:** Standard Apple EULA
- Use default unless you have custom terms
- Custom EULA requires legal review

### Privacy Policy URL

**URL:** https://baolife.app/privacy

**Requirements:**
- Must be HTTPS
- Must be publicly accessible
- Must comply with Apple's requirements
- Must be in HTML format

Test before saving:
```bash
curl -I https://baolife.app/privacy
```

Should return 200 OK status.

### Age Rating

Click "Edit" next to Age Rating.

#### Questionnaire Answers:

**Cartoon or Fantasy Violence:** None

**Realistic Violence:** None

**Prolonged Graphic or Sadistic Realistic Violence:** None

**Profanity or Crude Humor:** Infrequent/Mild
- Reason: AI-generated content may occasionally include mild language

**Sexual Content or Nudity:** None

**Mature/Suggestive Themes:** Infrequent/Mild
- Reason: Dating, relationships, life simulation themes

**Horror/Fear Themes:** None

**Medical/Treatment Information:** None

**Alcohol, Tobacco, or Drug Use or References:** None
- Or "Infrequent/Mild" if your game simulates these

**Simulated Gambling:** None
- Or "Infrequent/Mild" if game includes casino/lottery activities

**Contests:** No

**Unrestricted Web Access:** No

**Gambling and Contests:** No

**Result:** 12+

Click "Done" to save.

---

## Part 3: Pricing and Availability

### Navigate to Pricing and Availability

Click "Pricing and Availability" in the left sidebar.

### Price

**Price:** Free (Tier 0)

**Why Free:**
- Freemium model with IAP
- Maximizes downloads
- Revenue through diamonds and subscriptions

### Availability

**Make this app available on the App Store:** Yes

**Territories:** All Territories
- Select all countries/regions
- Or choose specific markets if needed

### App Distribution Methods

**Available to customers who get this app through:**
- [x] App Store
- [ ] Apple Business Manager
- [ ] Apple School Manager

For BaoLife, App Store only is recommended for consumer app.

### App Store Licensing

**Pre-orders:** No
- Not available for first version
- Consider for future major updates

### Volume Purchase Program

- Enable if you plan to sell to businesses/schools
- Not necessary for initial consumer launch

---

## Part 4: App Privacy

### Navigate to App Privacy

Click "App Privacy" in the left sidebar.

### Privacy Policy

Already set in App Information section.

### Data Collection Questionnaire

#### Section 1: Data Types

**Do you or your third-party partners collect data from this app?**
Answer: Yes

#### Contact Info

**Do you collect Contact Info?**
- Email Address: Yes
  - Purpose: App Functionality, Account Management
  - Linked to User: Yes

**Do you collect Name?**
- Username: Yes
  - Purpose: App Functionality
  - Linked to User: Yes

#### Health & Fitness

Not collected

#### Financial Info

**Do you collect Purchase History?**
- Yes
  - Purpose: App Functionality (IAP validation)
  - Linked to User: Yes
  - Used for Tracking: No

#### Location

Not collected

#### Sensitive Info

Not collected

#### Contacts

Not collected

#### User Content

**Do you collect Gameplay Content?**
- Yes
  - Character data, choices, progress
  - Purpose: App Functionality
  - Linked to User: Yes
  - Used for Tracking: No

#### Browsing History

Not collected

#### Search History

Not collected

#### Identifiers

**Do you collect User ID?**
- Yes
  - Purpose: App Functionality
  - Linked to User: Yes
  - Used for Tracking: No

**Do you collect Device ID?**
- Yes
  - Purpose: Analytics
  - Linked to User: No
  - Used for Tracking: No

#### Purchases

Already covered under Financial Info

#### Usage Data

**Do you collect Product Interaction?**
- Yes
  - Features used, session duration
  - Purpose: Analytics, App Functionality
  - Linked to User: No
  - Used for Tracking: No

**Do you collect Crash Data?**
- Yes
  - Purpose: App Functionality (debugging)
  - Linked to User: No
  - Used for Tracking: No

#### Diagnostics

**Do you collect Performance Data?**
- Yes
  - Purpose: App Functionality
  - Linked to User: No
  - Used for Tracking: No

#### Other Data

Not collected

#### Section 2: Data Usage

**How is data used?**

For each data type selected, specify:
- App Functionality: Yes (primary use)
- Analytics: Yes (for usage patterns)
- Developer Advertising: No
- Third-Party Advertising: No

#### Section 3: Third-Party Partners

**Do third-party partners have access to data?**
Answer: Yes

**Which partners:**
- Firebase Analytics (Google)
  - Collects: Usage data, device info
  - Purpose: Analytics
  - Privacy policy: https://firebase.google.com/support/privacy

- OpenAI (ChatGPT API)
  - Collects: Conversation data (anonymized)
  - Purpose: AI conversation generation
  - Privacy policy: https://openai.com/privacy

#### Section 4: Data Retention and Deletion

**Data Retention:**
- Account active: Retained while account is active
- After deletion request: 30-day grace period, then permanently deleted
- Purchase records: Retained for 7 years (legal requirement)

**User Data Deletion:**
- Available via in-app feature (Settings > Account > Delete Account)
- Or by email: support@baolife.app
- Processed within 30 days

Click "Publish" to finalize privacy configuration.

---

## Part 5: In-App Purchases

### Navigate to In-App Purchases

1. Click "Features" in left sidebar
2. Click "In-App Purchases"
3. Click "+" to add new

### Purchase 1: Small Diamond Pack

**Reference Name:** Small Diamond Pack
- Internal name, not visible to users

**Product ID:** com.baolife.app.diamond1
- Must be unique
- Format: bundleID.productIdentifier
- Cannot be changed after creation

**Type:** Consumable
- Can be purchased multiple times
- User can consume and repurchase

**Price:** Tier 1 ($0.99 USD)
- Auto-converts to local currencies

**Display Name (Localized):**
- English (U.S.): Small Diamond Pack

**Description (Localized):**
- English (U.S.): Get 100 diamonds to use in BaoLife. Purchase premium items, speed up time, and unlock exclusive content.

**Review Notes:**
```
This IAP grants 100 diamonds (premium currency) to the player's account.
Diamonds can be used for:
- Speeding up time progression
- Purchasing energy boosts
- Unlocking premium activities
- Buying cosmetic items

No physical goods or services. Digital content only.
```

**Screenshot:** (Optional but recommended)
- Upload screenshot showing diamond balance and store

Click "Save"

### Purchase 2: Medium Diamond Pack

**Reference Name:** Medium Diamond Pack
**Product ID:** com.baolife.app.diamond2
**Type:** Consumable
**Price:** Tier 5 ($4.99 USD)

**Display Name:** Medium Diamond Pack

**Description:** Get 600 diamonds (20% bonus!) to use in BaoLife. Purchase premium items, speed up time, and unlock exclusive content.

**Review Notes:** Same as above, mention "Includes 20% bonus diamonds compared to small pack."

### Purchase 3: Large Diamond Pack

**Reference Name:** Large Diamond Pack
**Product ID:** com.baolife.app.diamond3
**Type:** Consumable
**Price:** Tier 10 ($9.99 USD)

**Display Name:** Large Diamond Pack

**Description:** Get 1500 diamonds (50% bonus!) to use in BaoLife. Best value! Purchase premium items, speed up time, and unlock exclusive content.

**Review Notes:** Same as above, mention "Best value with 50% bonus diamonds."

### Optional: Premium Subscription

If implementing subscription:

**Reference Name:** BaoLife Premium Monthly
**Product ID:** com.baolife.app.premium.monthly
**Type:** Auto-Renewable Subscription
**Duration:** 1 Month
**Price:** Tier 5 ($4.99 USD)

**Subscription Group:** BaoLife Premium
- Create new subscription group
- Add both monthly and annual to same group

**Display Name:** Premium Monthly

**Description:**
```
BaoLife Premium Subscription includes:
• Unlimited energy
• Exclusive activities and careers
• Priority access to new features
• Ad-free experience
• Double diamond rewards from achievements

Subscription automatically renews unless auto-renew is turned off at least 24 hours before the end of the current period. Payment charged to iTunes Account at confirmation of purchase. Account will be charged for renewal within 24 hours prior to the end of the current period. Subscriptions may be managed and auto-renewal turned off in Account Settings.

Privacy Policy: https://baolife.app/privacy
Terms of Use: https://baolife.app/terms
```

### Testing IAPs

1. Create Sandbox Test User:
   - App Store Connect > Users and Access > Sandbox Testers
   - Add test email (doesn't need to be real)
   - Use this to test purchases before release

2. In Xcode:
   - Sign in with sandbox account on device
   - Test all purchase flows
   - Verify receipt validation
   - Test restore purchases

---

## Part 6: App Preview and Screenshots

### Navigate to Version Information

1. Click "iOS App" in left sidebar (or create new version)
2. Scroll to "App Preview and Screenshots"

### Required Device Sizes

You must provide screenshots for:
- 6.7" Display (iPhone 15 Pro Max, 14 Pro Max)
- 6.5" Display (iPhone 11 Pro Max, XS Max)
- 5.5" Display (iPhone 8 Plus, 7 Plus, 6s Plus)

Optionally provide for:
- 6.1" Display
- 5.8" Display
- iPad Pro (12.9", 11")
- iPad (10.5", 9.7")

### Screenshot Specifications

**6.7" Display:**
- Resolution: 1290 x 2796 pixels
- Format: PNG or JPEG
- Color space: RGB
- Max 10 screenshots

**6.5" Display:**
- Resolution: 1242 x 2688 pixels
- Same requirements as above

**5.5" Display:**
- Resolution: 1242 x 2208 pixels
- Same requirements as above

### Creating Screenshots

#### Method 1: Device Screenshots

```bash
# Run app on iOS simulator
# Choose correct device size
# Navigate to key screens
# Press Cmd+S to save screenshot
# Screenshots saved to Desktop
```

#### Method 2: Xcode UI Testing

```swift
let app = XCUIApplication()
app.launch()

// Navigate to screen
// Take screenshot
let screenshot = app.screenshot()
let attachment = XCTAttachment(screenshot: screenshot)
```

#### Method 3: Design Tools

Use Figma, Sketch, or Photoshop:
- Create template at correct size
- Add device frame
- Add screenshots
- Add text/captions
- Export as PNG

### Screenshot Content Strategy

**Screenshot 1: Character Creation**
- Show customization options
- Title: "Create Your Unique Character"
- Highlight: Customization features

**Screenshot 2: Life Simulation**
- Show main game screen
- Title: "Experience a Lifetime"
- Highlight: Time progression, stats

**Screenshot 3: Relationships**
- Show conversation or relationship screen
- Title: "Build Meaningful Relationships"
- Highlight: AI conversations

**Screenshot 4: Activities**
- Show activity selection
- Title: "Pursue Your Passions"
- Highlight: Variety of activities

**Screenshot 5: Achievements**
- Show achievement screen
- Title: "Unlock Hundreds of Achievements"
- Highlight: Progress tracking

**Screenshot 6: Dating (optional)**
- Show dating feature
- Title: "Find Love"
- Highlight: Romance options

**Screenshot 7: Career (optional)**
- Show career progression
- Title: "Build Your Dream Career"
- Highlight: Multiple paths

### App Preview Video (Optional but Recommended)

**Specifications:**
- Length: 15-30 seconds
- Resolution: Same as screenshots
- Format: .mov, .m4v, or .mp4
- Codec: H.264 or ProRes
- Frame rate: 23.976 to 30 fps

**Content:**
1. Hook (3 seconds): "What if you could live life over?"
2. Character creation (5 seconds)
3. Gameplay footage (10 seconds)
4. Key features quick cuts (10 seconds)
5. Call to action (2 seconds): "Download Now"

**Tools:**
- iMovie (free)
- Final Cut Pro
- Adobe Premiere
- Canva Video

---

## Part 7: Version Information

### Navigate to Version Information

Click on version number (e.g., "1.0 Prepare for Submission")

### General Information

**Name:** BaoLife - Life Simulator
- Pre-filled from app information
- Can be changed here per version

**Subtitle:** Live a lifetime in your pocket
- Pre-filled
- Can be changed per version

### Description

Paste your app description from `app-description.md`

**Tips:**
- Front-load key features
- Use bullet points
- Include keywords naturally
- 4000 character limit
- Proofread carefully

### Keywords

**Keywords:** life simulator,simulation game,virtual life,life sim,dating sim,story game,life choices,bitlife

**Requirements:**
- 100 character limit (including commas)
- No spaces after commas
- No duplicate words across keywords
- No category names
- No competitor trademarks

### Promotional Text

**Text:** Live a lifetime in your pocket! Create your character, make meaningful choices, build relationships, and discover where your decisions lead. Start your story today!

**Note:** 170 character limit, updatable without review

### Support URL

**URL:** https://baolife.app/support

Must be accessible and include:
- FAQs
- Contact information
- Troubleshooting guides

### Marketing URL (Optional)

**URL:** https://baolife.app

Main landing page or website.

### Version

**Version:** 1.0.0

Semantic versioning: MAJOR.MINOR.PATCH

### Copyright

**Copyright:** 2025 BaoLife

Update year annually.

### Routing App Coverage File (Not applicable)

Skip this for BaoLife.

### What's New in This Version

Paste your "What's New" text from `app-metadata.md`

**For version 1.0.0:**
```
Welcome to BaoLife!

Experience the full journey of human life in the most immersive life simulator on iOS.

✨ CREATE YOUR CHARACTER
• Customize appearance and personality
• Choose your starting attributes
• Begin from birth

🌟 LIVE YOUR LIFE
• Make meaningful choices that shape your future
• Experience realistic life events and milestones
• Progress through education, career, and beyond

❤️ BUILD RELATIONSHIPS
• AI-powered conversations feel natural and real
• Develop friendships and romantic relationships
• Start a family and watch it grow

Start your story today!
```

---

## Part 8: App Review Information

### Contact Information

**First Name:** [Your First Name]
**Last Name:** [Your Last Name]
**Phone Number:** +1-xxx-xxx-xxxx
**Email:** support@baolife.app

**Important:** Must be reachable during review (24-48 hours typically)

### Sign-In Information

**Sign-in required:** Yes

**Demo Account:**
- **Username:** reviewer@baolife.app
- **Password:** ReviewPass2025!

**Test account setup:**
1. Create dedicated reviewer account in backend
2. Pre-populate with gameplay progress
3. Add 1000 diamonds for testing
4. Create relationships at various stages
5. Ensure all features are accessible

### Notes

```
BaoLife is a single-player life simulation game focused on meaningful choices and character development.

DEMO ACCOUNT:
Username: reviewer@baolife.app
Password: ReviewPass2025!

This account includes:
- A 25-year-old character with career and relationships
- 1000 diamonds for testing premium features
- Multiple relationship levels to demonstrate AI conversations
- Access to all activities and features

TESTING GUIDE:
1. Character Creation: Tap "New Game" to test onboarding
2. AI Conversations: Tap any character portrait, then "Chat"
3. Time Control: Use speed buttons in top right (1x, 2x, 5x, 10x)
4. In-App Purchases: Tap diamonds in header to access store
5. Activities: Tap "Activities" tab to see available options

AI CONTENT MODERATION:
- All AI responses are filtered for appropriate content
- Character names validated against offensive terms
- Age-appropriate for 12+ audience

We're available 24/7 during review for questions.

Email: support@baolife.app
Response time: Within 1 hour during review
```

### Attachment (Optional)

Upload demo video or additional screenshots if helpful.

---

## Part 9: Build Upload

### Prepare Build in Xcode

1. **Set Version and Build Number:**
   ```
   Project Settings > General > Identity
   Version: 1.0.0
   Build: 1
   ```

2. **Select "Any iOS Device (arm64)"**
   - Don't use simulator
   - Don't use specific device

3. **Archive the App:**
   ```
   Product > Archive
   ```
   - Wait for archive to complete (5-10 minutes)
   - Archive window opens automatically

4. **Validate Archive:**
   - Select archive in Organizer
   - Click "Validate App"
   - Choose distribution method: "App Store Connect"
   - Select development team
   - Choose options:
     - [x] Upload your app's symbols
     - [x] Manage version and build number (if needed)
   - Click "Validate"
   - Wait for validation (5-10 minutes)
   - Fix any issues reported

5. **Distribute App:**
   - Click "Distribute App"
   - Choose: "App Store Connect"
   - Choose: "Upload"
   - Select development team
   - Review app information
   - Click "Upload"
   - Wait for upload (10-30 minutes depending on connection)

### After Upload

1. You'll receive email confirmation
2. Build will appear in "Activity" tab in App Store Connect
3. Processing time: 10-60 minutes
4. Once processed, build available in "Build" section

### Select Build for Submission

1. Go to version information page
2. Scroll to "Build" section
3. Click "Select a build before you submit your app"
4. Choose your uploaded build from list
5. Build appears with version/build number
6. Export compliance: Answer "No" (no encryption beyond Apple standard)

---

## Part 10: Final Submission

### Pre-Submission Checklist

- [ ] App information complete
- [ ] Pricing and availability set
- [ ] App privacy configured
- [ ] In-app purchases created and tested
- [ ] Screenshots uploaded for all required sizes
- [ ] App icon (1024x1024) uploaded
- [ ] Description proofread
- [ ] Keywords optimized
- [ ] Support URL accessible
- [ ] Privacy policy URL accessible
- [ ] Demo account tested and working
- [ ] Review notes complete
- [ ] Build selected and processed
- [ ] Export compliance answered
- [ ] Age rating accurate

### Submit for Review

1. Click "Save" (top right) if any changes made
2. Click "Submit for Review" (top right)
3. Review submission details
4. Answer additional questions:
   - **Advertising Identifier (IDFA):** No (if not using ads/tracking)
   - **Content Rights:** Yes, you have the rights
   - **Government Export Compliance:** No encryption (standard iOS encryption only)
5. Click "Submit"

### Confirmation

You'll see:
- Status changes to "Waiting for Review"
- Email confirmation sent
- Cannot edit submission while in review

---

## Part 11: During Review

### Timeline

**Typical Review Process:**
- Waiting for Review: 24-72 hours
- In Review: 2-6 hours
- Total: 24-96 hours average

### Status Updates

**App Store Connect Statuses:**
- **Waiting for Review:** In queue
- **In Review:** Actively being reviewed
- **Pending Developer Release:** Approved, waiting for your release
- **Ready for Sale:** Live on App Store
- **Rejected:** Needs changes

### If Approved

1. Receive approval email
2. Status: "Pending Developer Release" or "Ready for Sale"
3. If manual release: Click "Release this Version"
4. If automatic: Live within 24 hours

### If Rejected

1. Receive rejection email with reason
2. Read rejection carefully
3. Fix issues in app or metadata
4. Respond to reviewer or resubmit
5. Common fixes don't require new build

**Common rejection fixes:**
- Update screenshots (no new build needed)
- Fix demo account (no new build needed)
- Clarify review notes (respond to reviewer)
- Adjust age rating (no new build needed)

---

## Part 12: Post-Approval

### Release to App Store

If using manual release:
1. Log into App Store Connect
2. Navigate to your app
3. Click "Release this Version"
4. App goes live within 24 hours

### Monitor Performance

**Key Metrics to Track:**
- Impressions (product page views)
- Downloads
- Conversion rate (views to downloads)
- Crash rate
- Ratings and reviews
- IAP conversion

### App Analytics

Access via App Store Connect > Analytics:
- App Units
- Sales
- Retention
- Engagement
- In-App Purchases
- Crashes

### First Update

**When to Update:**
- Critical bugs: Immediately
- Feature additions: 2-4 weeks post-launch
- Content updates: Monthly

**Update Process:**
1. Create new version in App Store Connect
2. Upload new build
3. Update "What's New"
4. Submit for review
5. Review typically faster for updates (24-48 hours)

---

## Troubleshooting Common Issues

### Build Not Appearing

**Problem:** Build uploaded but not showing in App Store Connect

**Solutions:**
- Wait 30-60 minutes for processing
- Check email for rejection/errors
- Verify bundle ID matches
- Check build is for iOS (not macOS)
- Ensure proper code signing

### Invalid Export Compliance

**Problem:** Export compliance errors

**Solution:**
- Most apps: Answer "No" (using only standard encryption)
- If using additional encryption: Provide documentation

### Missing Icons

**Problem:** App icon not showing

**Solution:**
- Verify 1024x1024 PNG in Assets catalog
- Ensure no alpha channel
- Square image (not rounded)
- Re-archive and upload

### Demo Account Issues

**Problem:** Reviewer can't log in

**Solution:**
- Test account before submission
- Provide clear instructions
- Ensure server supports demo account
- Check password doesn't expire

### Privacy Policy Not Accessible

**Problem:** URL returns error

**Solution:**
- Verify HTTPS
- Test URL in browser
- Check for redirects
- Ensure no authentication required

---

## Support During Setup

### Resources

**Apple Developer Documentation:**
- App Store Connect Help: https://help.apple.com/app-store-connect/
- Review Guidelines: https://developer.apple.com/app-store/review/guidelines/
- Human Interface Guidelines: https://developer.apple.com/design/human-interface-guidelines/

**Contact Apple:**
- Developer Support: https://developer.apple.com/support/
- Phone: 1-800-633-2152 (US)
- Email: Through developer portal

### BaoLife Support

For BaoLife-specific questions:
- Email: support@baolife.app
- Response time: 24 hours

---

## Checklist Summary

Use this quick checklist during setup:

**App Store Connect:**
- [ ] App created
- [ ] App information complete
- [ ] Privacy configured
- [ ] Pricing set to Free
- [ ] Age rating: 12+
- [ ] IAPs created (diamond1, diamond2, diamond3)
- [ ] Screenshots uploaded (6.7", 6.5", 5.5")
- [ ] App icon uploaded
- [ ] Description and keywords optimized
- [ ] Demo account created and tested
- [ ] Review notes comprehensive

**Xcode:**
- [ ] Bundle ID matches (com.baolife.app)
- [ ] Version set (1.0.0)
- [ ] Build number set (1)
- [ ] Code signing configured
- [ ] Archive validated
- [ ] Build uploaded

**Final:**
- [ ] Build selected in App Store Connect
- [ ] All required fields complete
- [ ] Pre-submission checklist done
- [ ] Submitted for review

---

**You're now ready to submit BaoLife to the App Store!**

Good luck with your submission! 🚀
