Skip to content
swift-development logo

swift-development

Comprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing...

aiskillstore/marketplace0installs429stars

SKILL.md

Full skill instructions

Swift Development

Prerequisites

  • macOS with Xcode 15+ installed (Xcode 16+ for Swift 6)
  • Xcode Command Line Tools: xcode-select --install
  • Verify: xcodebuild -version and swift --version

Quick Start

New Swift Package

# Use the included script for full setup
./​scripts/​new_package.sh MyLibrary --type library --ios --macos

# Or manually
swift package init --type library --name MyLibrary

Build and Test

# SPM packages
swift build
swift test

# Xcode projects
xcodebuild -workspace App.xcworkspace -scheme App \
    -destination 'platform=iOS Simulator,name=iPhone 15' build

# Use included script for common options
./​scripts/​run_tests.sh --parallel --coverage

Format and Lint

# Use included script
./​scripts/​format_and_lint.sh Sources/

# Check mode (CI)
./​scripts/​format_and_lint.sh --check

Simulator Management

# Use included script
./​scripts/​simulator.sh list
./​scripts/​simulator.sh boot "iPhone 15"
./​scripts/​simulator.sh screenshot
./​scripts/​simulator.sh dark

Core Workflows

Building iOS Apps

# Debug build for simulator
xcodebuild -workspace App.xcworkspace -scheme App \
    -destination 'platform=iOS Simulator,name=iPhone 15' \
    build

# Release archive
xcodebuild archive \
    -workspace App.xcworkspace -scheme App \
    -archivePath ./​build/​App.xcarchive \
    -configuration Release

# Export IPA (use templates from assets/​ExportOptions/)
xcodebuild -exportArchive \
    -archivePath ./​build/​App.xcarchive \
    -exportPath ./​build/​export \
    -exportOptionsPlist assets/​ExportOptions/​app-store.plist

Testing

# All tests
xcodebuild test -workspace App.xcworkspace -scheme App \
    -destination 'platform=iOS Simulator,name=iPhone 15'

# Specific test
xcodebuild test -only-testing:AppTests/​MyTestClass/​testMethod

# With coverage
xcodebuild test -enableCodeCoverage YES \
    -resultBundlePath ./​TestResults.xcresult

App Installation

# Install on booted simulator
xcrun simctl install booted ./​Build/​Products/​Debug-iphonesimulator/​App.app

# Launch
xcrun simctl launch booted com.company.app

Official Documentation

Reference Links (for humans)

These are Apple's official documentation links for manual browsing:

Note: Apple's documentation sites are JavaScript SPAs and cannot be fetched programmatically with WebFetch.

WebFetch-Compatible Sources

Use these GitHub-based sources for live documentation fetching:

When to Fetch Documentation

Use WebFetch to retrieve documentation from GitHub in these situations:

  1. Swift Testing: When you need details on @Test, #expect, #require, traits, or parameterized tests
  2. Swift Evolution: When checking accepted proposals for new language features
  3. Framework Details: When implementing features from Apple's open-source Swift packages
  4. Uncertainty: When you're unsure about current API patterns or best practices

How to fetch: Use WebFetch with GitHub URLs:

  • README: https://github.com/apple/swift-testing
  • Raw markdown: https://raw.githubusercontent.com/apple/swift-testing/main/README.md
  • Specific docs: https://github.com/apple/swift-evolution/blob/main/proposals/0409-access-level-on-imports.md

Example prompt for WebFetch: "Extract the main features, macros, and usage examples from this documentation"


Reference Files

Detailed documentation for specific topics:


Included Scripts

ScriptPurpose
scripts/​new_package.shCreate new Swift package with config files
scripts/​run_tests.shRun tests with common options
scripts/​format_and_lint.shFormat and lint Swift code
scripts/​simulator.shQuick simulator management

Asset Templates

AssetPurpose
assets/​Package.swift.templateSwift package template
assets/​.swiftformatSwiftFormat configuration
assets/​.swiftlint.ymlSwiftLint configuration
assets/​ExportOptions/Archive export plist templates

Quick Reference

Essential Commands

TaskCommand
Build packageswift build
Build releaseswift build -c release
Run testsswift test
Update depsswift package update
List simulatorsxcrun simctl list devices
Boot simulatorxcrun simctl boot "iPhone 15"
Install appxcrun simctl install booted ./​App.app
Format codeswiftformat .
Lint codeswiftlint

Common Destinations

# iOS Simulator
-destination 'platform=iOS Simulator,name=iPhone 15'

# macOS
-destination 'platform=macOS'

# Generic iOS (for archives)
-destination 'generic/​platform=iOS'