vladimirbrejcha/ios-ai-skills
Overview
This skill helps set up, configure, and troubleshoot Xcode Cloud CI/CD workflows and custom build scripts for iOS apps, with ready-to-copy templates for XcodeGen project generation and post-archive Git tagging. It focuses on the three official Xcode Cloud script hooks and on practical fixes when generated projects are not present at validation time. Use it to make Xcode Cloud builds repeatable and safe for automated tagging and archives.
How this skill works
The skill provides templates and step-by-step guidance for placing ci_scripts/ at the same level as your .xcodeproj or .xcworkspace and for using the three recognized filenames: ci_post_clone.sh, ci_pre_xcodebuild.sh, and ci_post_xcodebuild.sh. It explains when to run XcodeGen (post-clone vs pre-xcodebuild), how to configure environment variables and secrets (e.g., GITHUB_TOKEN), and how to enable archive-only tagging after successful builds. It also includes common troubleshooting notes for validation errors and secrets handling.
When to use it
- Setting up Xcode Cloud for a project that uses XcodeGen to generate the .xcodeproj/.xcworkspace
- Adding automated Git tag creation and push after successful Archive actions
- Troubleshooting "Project <Name>.xcodeproj does not exist at <path>" validation errors
- Preparing scripts (ci_post_clone.sh, ci_pre_xcodebuild.sh, ci_post_xcodebuild.sh) and making them executable
- Ensuring Xcode Cloud workflows have required secrets and Archive action configured
Best practices
- Place ci_scripts/ at the same level as the .xcodeproj/.xcworkspace so Xcode Cloud can find official hooks
- Use ci_post_clone.sh when the project is generated and not committed; Xcode Cloud validates project paths before pre-xcodebuild
- Store tokens as Xcode Cloud secret environment variables (do not print secrets to logs)
- Set INFO_PLIST_PATH and TAG_PREFIX via env vars so templates remain reusable across projects
- Run chmod +x ci_scripts/*.sh after adding or editing scripts and test locally where possible
Example use cases
- Generate .xcodeproj with XcodeGen during CI using ci_post_clone.sh, then proceed to build and test
- Automatically create and push a semantic version tag after a successful Archive using ci_post_xcodebuild.sh and GITHUB_TOKEN
- Fix validation error by switching from ci_pre_xcodebuild.sh to ci_post_clone.sh when the project is generated at clone time
- Customize tag prefix and plist path via Xcode Cloud environment variables for multi-target apps
FAQ
Xcode Cloud validates the project path and schemes before running pre-xcodebuild. If the project is generated at clone time, use ci_post_clone.sh so generation happens before validation.
Where should I store tokens used for pushing tags?
Add tokens (e.g., GITHUB_TOKEN) as Xcode Cloud secret environment variables and reference them in ci_post_xcodebuild.sh. Never echo secrets into logs.
7 skills
This skill helps you set up and troubleshoot Xcode Cloud workflows and custom ci_scripts for iOS apps, including XcodeGen generation and tagging.
Build with D1 serverless SQLite database on Cloudflare's edge. Use when: creating databases, writing SQL migrations, querying D1 from Workers, handling relational data, or troubleshooting D1_ERROR, statement too long, migration failures, or query performance issues. Prevents 14 documented errors.
This skill helps you set up, debug, and validate iOS silent pushes with APNs, ensuring correct entitlements, registration, and widget refresh.
This skill helps you run SwiftUI apps in iOS Simulator to capture screenshots for visual verification and UI validation.
This skill helps you configure TypeScript, fix type errors, and adopt best practices with dayjs and type-safe tooling.
This skill helps you configure Cloudflare Workers with Hono, Vite, and static assets, preventing common deployment and routing issues.
This skill verifies UI screenshots against strict gates to ensure correct app, complete elements, readability, and layout integrity across modes.