Files

160 lines
8.6 KiB
Markdown
Raw Permalink Normal View History

# Biz Connect — App Store submission pack
Everything App Store Connect asks for, drafted. Fill the **`<< … >>`** placeholders (they're
account-specific or secret and must NOT be committed). Order below ≈ the order App Store Connect walks you through.
---
## 0. Before you submit (gates that cause rejection)
- [x] **Verified build** uploaded from Codemagic to App Store Connect (splash build; multi-device tiles, transcripts, calls ring; moderation + meeting-push are live web-side).
- [x] **Reviewer demo account** — connect@bizgaze.com / Qwerty@789 (works; non-admin so it sees Report/Block but not the admin Reports view).
- [x] **Privacy Policy URL** — https://remote.bizgaze.com/privacy (live, public).
- [x] **Support URL** — https://remote.bizgaze.com/support (live, public).
- [x] **Screenshots** — 6.9" set (1320×2868) in mobile/appstore-screenshots/ (01-chats, 02-conversation, 03-meetings).
- [x] **Export compliance** — ITSAppUsesNonExemptEncryption=false baked into the build (App Store Connect won't ask).
---
## 1. App information
| Field | Value |
|---|---|
| **App name** | BizGaze Connect (App Store listing name; renamed 2026-08-21) |
| **Subtitle** (30 char max) | Team chat, calls & meetings |
| **Primary category** | Business |
| **Secondary category** | Productivity |
| **Bundle ID** | com.bizgaze.connect |
| **Privacy Policy URL** | https://remote.bizgaze.com/privacy |
| **Support URL** | https://remote.bizgaze.com/support |
| **Marketing URL** (optional) | leave blank, or your product page |
| **Age rating** | 4+ (answer all content questions "None". Note: user-generated content via chat — see §8) |
---
## 2. Description
> Biz Connect keeps your team connected — chat, voice and video calls, and meetings, in one place.
>
> **Chat that works the way your team does**
> • Direct messages and group conversations
> • Reactions, replies, mentions, pinned messages, and polls
> • Share photos, videos, and files
> • Read receipts and typing indicators
>
> **Calls that ring like a real phone**
> • One-to-one and group voice & video calls
> • Full-screen incoming call ringing, even when the app is closed
> • Calls keep working when you switch apps or lock your phone
>
> **Meetings, built in**
> • Start instantly or schedule ahead
> • Screen sharing and camera, front or back
> • Live transcripts you can save and download
> • Meeting recordings for later
>
> **Everywhere you are**
> Your conversations stay in sync across iPhone, desktop, and the web.
>
> Biz Connect is for organizations using the BizGaze platform. Sign in with your BizGaze account to get started.
**Keywords** (100 char max, comma-separated, no spaces after commas):
`team chat,business messaging,video call,voice call,meetings,screen share,transcript,collaboration,work`
**Promotional text** (170 char, editable without a new build):
> Chat, call, and meet with your team — with real-phone-style ringing, screen sharing, and live meeting transcripts.
---
## 3. What's New (release notes for this version)
> • Live meeting transcripts on iPhone — for both calls and scheduled meetings
> • Join the same meeting from two devices at once, each as its own participant
> • Stability and audio-routing improvements
---
## 4. App Privacy ("nutrition label")
Answer these in App Store Connect → App Privacy. **Verify each against what the BizGaze backend actually stores**
before publishing — this is a legal declaration. Sensible defaults for a business comms app:
**Data used to identify the user (Linked to identity):**
- **Contact Info → Name, Email address** — App Functionality, Account management. (BizGaze login.)
- **User Content → Photos or Videos, Other User Content (messages, files)** — App Functionality. (Chat/meeting content stored on your server.)
- **Identifiers → User ID** — App Functionality.
**Diagnostics / Usage:** declare only if you actually collect analytics/crash data. If not, mark **"Data Not Collected"** for those.
**Important clarifications to make in the notes:**
- **Microphone & Camera** audio/video for calls is transmitted between participants (via your LiveKit server) but is only *recorded/stored* when a user explicitly starts a recording or transcript. Say so.
- **Speech recognition** for transcripts runs **on-device** (Apple's `SFSpeechRecognizer`, on-device mode) — the audio is not sent to Apple, and only the finished text is added to the meeting transcript. This is a good thing to state explicitly; it reassures review.
- **Third-party:** if BizGaze/LiveKit are your own infrastructure, no third-party SDK data-sharing to declare. Confirm you have no analytics/ad SDKs.
**Privacy usage strings** (already in the build via `ios-patch.sh` — for reference):
- Camera: "Biz Connect uses the camera for video calls and to share photos and your screen."
- Microphone: "Biz Connect uses the microphone for voice and video calls."
- Speech Recognition: "Biz Connect uses speech recognition to create live meeting transcripts from your microphone."
- Photo Library / Add: send/save images.
---
## 5. Screenshots
Required (App Store Connect accepts one size and scales, but do at least these two):
- [ ] **6.9" iPhone** (1320 × 2868) — iPhone 16 Pro Max class
- [ ] **6.5" iPhone** (1242 × 2688) — fallback for older devices
- [ ] (Optional) iPad if you enable iPad support
Ready-made set in `mobile/appstore-screenshots/` (1320×2868, anonymized). Upload in this order:
`01-chats → 02-conversation → 04-group → 03-meetings → 06-screenshare → 05-schedule`
---
## 6. App Review notes (paste into "Notes")
> Biz Connect requires a BizGaze account to sign in.
>
> Demo account for review:
> Email: << demo@yourdomain >>
> Password: << demo password >>
>
> How to test:
> 1. Open the app and sign in with the demo account above.
> 2. Chat tab: open a conversation to see messaging.
> 3. Start a call from a conversation, or the Meetings tab to start/join a meeting.
> 4. In a meeting, tap "Live transcript" to see on-device speech-to-text.
>
> Notes on permissions:
> • Microphone/Camera — used for voice and video calls.
> • Speech Recognition — used only to generate live meeting transcripts; recognition runs on-device.
> • Screen recording (broadcast) — used only when the user chooses to share their screen in a meeting.
> • VoIP push (PushKit) + CallKit — used to ring incoming calls like a normal phone call.
**Create the demo account now** and confirm it can actually log in and start a call. A dead demo login is the #1 rejection cause for account-gated apps.
---
## 7. Export compliance
The app uses only standard encryption (HTTPS/TLS, WebRTC/DTLS-SRTP) — no proprietary/custom crypto.
- In App Store Connect: **"Does your app use encryption?" → Yes**, then **"only … standard encryption algorithms" → Yes** → qualifies for the exemption (no CCATS/year-end self-classification report needed for standard encryption).
- Optional: set `ITSAppUsesNonExemptEncryption = NO` in Info.plist to skip the question each submission (add to `ios-patch.sh` if you want it permanent — say the word and I'll add it).
---
## 8. Likely review questions / risks (and answers)
- **Account-gated app** → mitigated by the demo account (§6). Also fine per guideline 3.1.1 since it's a business tool, not gating features behind sign-in for a consumer app.
- **User-generated content (chat)** → guideline 1.2 satisfied (shipped 2026-08-19): every message has **Report** (long-press / ⋮ → Report, canned reasons) and **Block user**; blocked users can't message or call you (server-enforced). A **Blocked users** manager lives in the profile menu (unblock anytime), and workspace **admins** get a **Reported messages** review screen (delete content / block / resolve). Reports are org-internal (routed to the workspace's own admins). Reviewer note suggestion: "Report and Block are available on any message via long-press; Blocked users are managed from the profile menu."
- **CallKit + VoIP push** → legitimate; the demo/reviewer flow should show a real incoming call if possible.
- **Background modes** (audio, voip) → justified by calls; the review notes cover it.
---
## 9. Nice-to-haves (not blockers)
- App Store promotional/preview **video** (optional).
- Localized metadata if you target non-English regions.
- A short **"in-app account deletion"** path — Apple requires apps with account creation to offer account deletion (guideline 5.1.1(v)). If BizGaze accounts are created/managed externally (admin-provisioned, not self-signup in the app), note that in review; if users *can* self-register in the app, an in-app "delete my account" (or a clear link to do so) is required.