# 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.