App Store submission dossier — draft, 25 October 2026
This is a reviewable preparation artifact, not an approved listing, signed export, license clearance or submission. No App Store Connect fields were changed. The accompanying English listing payload contains copy that can be reviewed independently of the current signed development build. Nothing in this dossier certifies complete TortoiseGit parity. The macOS port is authored by Jochen Kühner; this author credit is distinct from the still unconfirmed App Store seller/legal entity and retained upstream rights.
Proposed listing
| Field | Draft | Decision |
|---|---|---|
| Name | TurtleGit for Mac | Owner approval; 17 characters |
| Subtitle | Git history, commits and diffs | Owner approval; 30 characters |
| macOS port author | Jochen Kühner | Confirmed port credit; does not establish seller/legal entity or ownership of upstream work |
| Primary category | Developer Tools | Proposed; matches the implemented development workflow |
| Secondary category | Utilities | Optional proposal; owner may omit |
| Primary language | English (U.S.) | Proposal; compiled UI translations do not establish reviewed store localizations |
| Keywords | repository,version control,branches,merge,blame,patch,clone,staging,ssh,submodules |
82 ASCII bytes; owner approval |
| Description | Exact plain-text copy in the JSON payload | Owner approval; no price, release date or full-parity claim |
| Marketing URL | https://jfk-solutions.github.io/turtle-git-mac/ | TurtleGit homepage with native screenshots and the illustrated manual; final listing approval pending |
| Public support email | jochen.kuehner@gmx.de | Confirmed by owner on 25 October 2026; recorded in this draft |
| Support URL candidate | https://jfk-solutions.github.io/turtle-git-mac/ | Reachable, links to GitHub issues; Confirmed support email deployed and verified on 25 October 2026; final listing approval pending |
| Privacy Policy URL candidate | https://jfk-solutions.github.io/turtle-git-mac/manual/PRIVACY.html | Reachable policy; owner must approve for the exact release and identify the responsible publisher/contact |
| Copyright, seller, SKU | Not supplied | Owner must confirm legal rights/identity and the App Store Connect record |
| Price, territories, release method | Not supplied | Owner decision; no free, trial, subscription or purchase claim inferred |
| Version/build | Read from final exported archive | Do not copy a historical development build or assume its number is unused in Connect |
Apple currently limits app names/subtitles to 30 characters, description to 4,000 characters and keywords to 100 bytes. The ASCII keyword string also fits Apple's 100-character search guidance and avoids names of other apps. Categories are proposals, not assigned account values. Sources: app information, version metadata, search guidance, category definitions.
Deployed URL verification
Direct HTTPS GETs on 25 October 2026 returned HTTP 200 and the expected page titles
for the homepage, manual/PRIVACY.html, manual/GETTING-STARTED.html and
manual/CRASH-REPORTING-PARITY.html. These routes agree with
scripts/site_docs.py's manual/<document>.html output and the site's existing
Support/Source links. No new page was published by this audit.
The owner confirmed jochen.kuehner@gmx.de as the public support email on
25 October 2026. The homepage's issue tracker is a useful technical support route;
the confirmed email was deployed and verified by direct HTTPS GET on
25 October 2026 (Pages run 40214801400, commit ca7c08d1f94d). Apple describes
actual contact information for Support URL and requires a privacy URL; a reachable
page alone does not settle those fields. See version metadata
and App Privacy.
The seller/legal entity remains unspecified; the support email does not establish it.
Draft reviewer instructions
These instructions describe implemented workflows. The final Notes for Review must add the actual build, attachment names/checksums, owner contact and any restricted-feature credentials through Apple's private review channel.
- Open and authorize a repository. Launch TurtleGit. Use the normal folder chooser to open the supplied disposable sample repository. Folder authorization is user controlled; passing a Finder or command-line path does not bypass it. Do not use a personal repository for mutation checks. Local history, comparison and Commit do not require a TurtleGit cloud account or Homebrew/Xcode Git. The AppStore configuration bundles its Git runtime and refuses external fallback.
- Finder first use. Enable the signed TurtleGit Finder extension in macOS System Settings if disabled; the location/labels vary with macOS. Select a folder in Finder and open the TurtleGit submenu. Clone accepts a remote or local source and requests destination access. Add to TurtleGit registers a selected existing repository after access/root validation. Successful Clone registers its new repository using the accepted destination grant; a second registration chooser is not the expected route. Registration does not enable background refresh after Quit automatically. Add runs without opening the workspace; Services → Open in TurtleGit provides an explicit workspace entry point when Finder does not display the submenu. See the deployed getting-started guide.
- Local review and mutation. Open Log and inspect the graph, commit message and changed paths. Compare a changed file. In a disposable repository, edit a sample text file, open Commit, select/check or stage the intended paths, enter a message and commit. Checked membership and row highlighting are independent. Ordinary Git hooks/filters execute within the sandbox's available permissions; the product does not promise unrestricted external executables.
- Optional background badges. First register the sample repository. Enable Settings → Icon Overlays → Watched Repositories → Refresh after TurtleGit quits, and approve any macOS background registration prompt. Quit the main app normally, modify/restore one sample file and inspect Finder status. Restore the initial background setting and remove only the sample watch/grant afterward. No blanket disk access is required.
- Standalone patch documents / CLI. File-open a supplied
.patchfile in the editable Unified Diff viewer; inspect Find, appearance and Save to a chosen new location. The combined app's explicit CLI entry is--unified-diff --stdin --title 'Review changes'for a pipe, or--unified-diff --patchfile <file>for a file. EOF, including empty EOF, is accepted. Plain--unified-diffopens an empty document; it does not auto-read stdin. CLI path requests remain subject to owned file/folder authorization. See command-line usage. - Patch export and email. Format Patch exports selected revisions. The Fetch→Rebase completion Send Mail action exports the accepted upstream..branch range to the repository and then opens mail options; choosing that action does not itself transmit mail. Settings → Email configures direct SMTP (server, port, encryption/authentication) or installed Apple Mail where available. Do not send to real recipients for review. Owner pending: provide a controlled SMTP account/recipient or a private demonstration. Passwords must not be put in this public dossier. Apple Mail may request Automation consent and needs a configured Mail account; closing options is not evidence of delivery.
- Optional Office integration. Word/Excel/PowerPoint comparison/export requires the relevant independently installed Microsoft application and macOS Automation approval. The built-in text tools work without Office. Denial is reported with a System Settings recovery hint. Owner pending: reviewer demonstration/material for optional Office features, and an explanation of the declared Apple-event exceptions. Do not claim that Office is bundled.
- Privacy and cleanup. Offline Help includes Privacy. Optional Gravatar, HTTP issue providers, network remotes and email have separate explicit choices. After review, discard only the sample fixtures, remove their saved grants/watch entries and restore background preferences. Do not clear unrelated histories, repositories, Keychain entries or Finder windows.
Offline review attachment prepared:
Download the synthetic review sample.
It contains Harbor's eleven-commit branched history, staged/unstaged/renamed/added/
untracked examples, a separate genuine merge conflict, an offline history bundle,
a patch document, GPL license, exact initial-state inventory and reset/cleanup
instructions. All identities are synthetic and there is no network remote or
credential. The ZIP is 96,445 bytes; SHA-256:
8b4a36a69a9e6851e1a54aaf1991440d02dee7d8a4d26d23a86a19ab87816e5f.
The manifest records every file
and the expected repository state. Rebuild it with
python3 scripts/build-review-demo.py using the pinned bundled Git.
A reviewer can inspect local core workflows without an external account. Final owner approval and attachment to the actual Connect submission remain separate; this sample does not supply optional SMTP/Office credentials or certify native review of every scenario. The attachment checkpoint records file/metadata checks and actual offline clone, patch application and conflict resolution with system and bundled Git; it is not app/sandbox acceptance.
Apple asks for working support links and sufficient specific review instructions, including access to restricted features. These notes require final owner review rather than a generic “all features tested” statement. App Review preparation.
Privacy questionnaire evidence worksheet
These are evidence inputs, not submitted answers. Use the exact release and Apple's current definitions, including integrated third parties, before selecting “Data Not Collected” or any data category. Manage App Privacy.
| Area | Current repository evidence | Owner confirmation needed |
|---|---|---|
| Developer analytics/advertising | docs/PRIVACY.md: no TurtleGit analytics, advertising SDK or upload service |
Confirm unchanged in final binary and seller services |
| Local repository data | User-selected files, Git metadata, bookmarks, histories, action logs, cache and optional crash-report review; private local storage/clear controls | Final retention/deletion wording and publisher contact |
| Remotes, hooks, filters, credential helpers | Requested Git/SSH operations can contact configured third parties; sandbox permissions still apply | Classify applicable disclosures for actual distributed integrations |
| Optional Gravatar | Disabled by default; author-email digest and normal network information go to configured provider when enabled | Provider terms/disclosure and Apple's collection/linkage classification |
| Optional HTTP issue provider | User-enabled endpoint receives captured paths/draft/issue/revision information; credentials stored separately in Keychain | Classification and third-party retention, including cancellation after server processing |
| User-approved message, recipients and selected attachments go to chosen SMTP/Mail workflow | Applicable content/contact-data disclosures and controlled review account | |
| Diagnostic reports | Local explicit review/copy/save; no automatic report upload claimed | Confirm any support sharing service used for release |
| Updates | AppStore update route is isolated from non-store GitHub feed/download checks | Confirm final channel behavior |
docs/PRIVACY.md and the bundled Help topic exist. No PrivacyInfo.xcprivacy
resource is currently declared. Do not convert that observation into an unsupported
macOS-only required-reason API blocker; review applicable SDK/manifest requirements
for the final components and distribution channel separately.
Encryption/export worksheet — owner decision required
Encryption is present: packaged OpenSSH/OpenSSL, HTTPS Git/libgit2, SMTP TLS,
Keychain/Apple Security and optional network integrations. It would be inaccurate
to select “no encryption” solely because the Swift UI delegates cryptography.
NOTICE, runtime pin files and the candidate's runtime inventory identify the
actual components. The app Info.plist does not currently set
ITSAppUsesNonExemptEncryption or an export compliance code.
Not decided here: exemption/classification, any documentation/reporting, France/other territories, final plist declaration and Connect responses. No jurisdictional or legal conclusion is made. The owner must determine these for the complete binary and intended territories, then record the basis. Apple's export-compliance overview and encryption declaration guidance describe the determination and submission flow.
Age-rating worksheet — do not preassign a rating
The shipped feature set is a developer utility, with no built-in gambling, advertising, medical advice or supplied mature-media catalog identified by this bounded review. Users can open arbitrary repositories and documents, invoke external links and send email/issue-provider information. Review those capabilities against the current questionnaire rather than treating user-provided content as proof that every content/capability answer is “None.” No dedicated parental-control or age-assurance flow is claimed.
Owner pending: answer each current capability/content/frequency question, determine whether any override is appropriate, and record Apple's generated regional ratings. Do not publish a guessed “4+” or “all ages.” Apple generates ratings from the questionnaire. Set an app age rating.
Screenshot plan — source material, not upload-ready assets
Plan five final English screenshots: (1) history/graph, (2) Commit/staging and patch, (3) Finder entry points, (4) working-tree changes, (5) comparison/merge. Use a sanitized redistributable example project, current signed release, normal readable settings and a deliberate fully composed desktop capture. Preserve actual product behavior; do not synthesize controls or imply all upstream features are complete. Current UI translations and diagnostic colors are not automatically suitable store marketing material.
| Proposed subject | Existing candidate/reference | Measured format/dimensions | Disposition |
|---|---|---|---|
| Finder Clone/Add | qa/context-registration-2026-10-25/finder-first-use.png |
JPEG despite .png suffix; 3456×2168 |
Viewed: real Finder/menu, German locale and personal sidebar/QA names; recapture sanitized/current |
| Log/context icons | qa/context-registration-2026-10-25/log-context-icons.png |
JPEG despite suffix; 2240×1624 | Viewed: real Log/menu, mixed localization and small sample; recapture richer clean history |
| History | qa/signed-consolidation-2026-10-25/log.png |
JPEG despite suffix; 2240×1624 | Historical signed reference, not current release acceptance |
| Commit | site/assets/workspace-report-commit-light-2026-10-25.png |
JPEG despite suffix; 2000×1584 | Composition reference; predates later Commit changes |
| Working Tree | site/assets/workspace-report-status-light-2026-10-25.png |
JPEG despite suffix; 2200×1324 | Composition reference; refresh behavior has later evidence |
| Embedded patch appearance | qa/editor-appearance-2026-10-25/commit-populated-dark.png |
PNG, 2360×1700, RGBA | Viewed: diagnostic/custom high-contrast rendering and incomplete native control composition; exclude from store assets |
Dimensions/formats were read without modifying images. None of these measurements is an approved current 16:10 store screenshot. Apple currently accepts Mac screenshots at 1280×800, 1440×900, 2560×1600 or 2880×1800, without alpha; one to ten screenshots may be provided. Proposed final target: 2560×1600, consistently captured for the selected localization. Final PNG/JPEG files, visual review, opaque encoding, dimensions, checksums and matching build provenance remain pending. No image was edited or newly captured for this dossier. Apple screenshot specifications, upload requirements.
Release decision record still to complete
| Deliverable | State / owner |
|---|---|
| Listing copy/category/localizations and support contact | Draft above; account owner approves |
| Seller identity, rights, license/distribution terms | Unresolved review gate in DISTRIBUTION.md; no permission/clearance inferred from this draft |
| Privacy/export/age questionnaire | Evidence worksheet; owner answers and documents decisions |
| Price/territories/tax/banking/agreements | Account-owner decisions; not queried or changed |
| App identifier/SKU/version/build admission | Confirm in the actual Connect record; do not infer from local build values |
| Distribution certificate/profile and App Group entitlement | Final channel/account verification; Apple Development signatures are not a submitted distribution export |
| Exact final archive/package/source+notice set | Match measured inputs, actual signed binary, symbols and corresponding source/reconstruction inputs; prior receipts remain historical |
| Final screenshots and sample review attachment | Offline synthetic attachment prepared with checksums/reset instructions; final screenshots and owner/submission approval remain pending |
| Hosted CI | macOS run40225297562 at c47640a3 failed during Swift 6.1.2 test compilation, before behavioral tests. Explicitly typed equivalent assertion is repaired in the next source batch and passes the focused local check; a complete hosted pass remains unproven |
| Upload/validation/App Review/release | Not performed; only after owner approval and remaining gates |
Existing distribution engineering, privacy, NOTICE and release blockers remain authoritative for their actual dated evidence. This dossier adds a concrete submission draft; it does not replace those records or certify release readiness.