# Gitea Issue iOS share-extension for filing issues to a self-hosted Gitea instance straight from a screenshot. Take screenshot → Share → **Gitea Issue** → pick repo, title, notes → submit. The screenshot is uploaded as an attachment and embedded inline in the issue body. ## Architecture Two targets in one Xcode project, sharing an App Group + Keychain: - **GiteaIssue** (`com.treytartt.GiteaIssue`) — container app, settings + help only - **GiteaIssueShare** (`com.treytartt.GiteaIssue.Share`) — share extension that does the real work - **App Group**: `group.com.treytartt.GiteaIssue` (cached repo list, recents) - **Keychain group**: `$(AppIdentifierPrefix)com.treytartt.GiteaIssue` (base URL, token) iOS 26.0 minimum. Signing team `V3PF3M6B6U`. ## Layout ``` GiteaIssue/ Container app (settings + help) GiteaIssueShare/ Share extension UI Shared/ Models, Keychain, Settings, GiteaClient, RepoCache project.yml xcodegen spec — regenerate with `xcodegen generate` ``` ## Build ```bash xcodegen generate xcodebuild -project GiteaIssue.xcodeproj -scheme GiteaIssue \ -destination 'generic/platform=iOS' build ``` ## Deploy (ad-hoc) Push to `admin/GiteaIssue` on Gitea, then trigger the Mac mini builder at `http://Treys-Mac-mini.local:3090` against the git URL. Builder ships the IPA to `https://appstore.treytartt.com` for OTA install. ## First-time setup on device 1. Install via Safari from `appstore.treytartt.com` 2. Open the Gitea Issue app, set base URL + personal access token (`repo` scope) 3. Tap **Save & test connection** — confirms login and pre-fetches the repo list 4. From now on: Photos → screenshot → Share → Gitea Issue