Files
daymade 4e3a54175e Release v1.18.0: Add iOS-APP-developer and promptfoo-evaluation skills
### Added
- **New Skill**: iOS-APP-developer v1.1.0 - iOS development with XcodeGen, SwiftUI, and SPM
  - XcodeGen project.yml configuration
  - SPM dependency resolution
  - Device deployment and code signing
  - Camera/AVFoundation debugging
  - iOS version compatibility handling
  - Library not loaded @rpath framework error fixes
  - State machine testing patterns for @MainActor classes
  - Bundled references: xcodegen-full.md, camera-avfoundation.md, swiftui-compatibility.md, testing-mainactor.md

- **New Skill**: promptfoo-evaluation v1.0.0 - LLM evaluation framework using Promptfoo
  - Promptfoo configuration (promptfooconfig.yaml)
  - Python custom assertions
  - llm-rubric for LLM-as-judge evaluations
  - Few-shot example management
  - Model comparison and prompt testing
  - Bundled reference: promptfoo_api.md

### Changed
- Updated marketplace version from 1.16.0 to 1.18.0
- Updated marketplace skills count from 23 to 25
- Updated skill-creator to v1.2.2:
  - Fixed best practices documentation URL (platform.claude.com)
  - Enhanced quick_validate.py to exclude file:// prefixed paths from validation
- Updated marketplace.json metadata description to include new skills

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 17:23:08 +08:00

4.1 KiB

XcodeGen Complete Reference

Full project.yml Structure

name: ProjectName

options:
  bundleIdPrefix: com.company
  deploymentTarget:
    iOS: "16.0"
    macOS: "13.0"
  xcodeVersion: "16.0"
  generateEmptyDirectories: true
  createIntermediateGroups: true

settings:
  base:
    SWIFT_VERSION: "6.0"
    MARKETING_VERSION: "1.0.0"
    CURRENT_PROJECT_VERSION: "1"

packages:
  # Basic package
  PackageName:
    url: https://github.com/org/repo
    from: "1.0.0"

  # Exact version
  ExactPackage:
    url: https://github.com/org/repo
    exactVersion: "2.0.0"

  # Branch
  BranchPackage:
    url: https://github.com/org/repo
    branch: main

  # Local package
  LocalPackage:
    path: ../LocalPackage

targets:
  MainApp:
    type: application
    platform: iOS
    sources:
      - path: Sources
        excludes:
          - "**/.DS_Store"
          - "**/Tests/**"
      - path: Resources
        type: folder

    settings:
      base:
        INFOPLIST_FILE: Sources/Info.plist
        PRODUCT_BUNDLE_IDENTIFIER: com.company.app
        ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
        ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
        LD_RUNPATH_SEARCH_PATHS: "$(inherited) @executable_path/Frameworks"
        ENABLE_BITCODE: NO
        CODE_SIGN_STYLE: Automatic
        DEVELOPMENT_TEAM: TEAM_ID
      configs:
        Debug:
          SWIFT_OPTIMIZATION_LEVEL: -Onone
        Release:
          SWIFT_OPTIMIZATION_LEVEL: -O

    dependencies:
      # SPM package
      - package: PackageName

      # SPM package with explicit product
      - package: Firebase
        product: FirebaseAnalytics

      # Another target
      - target: Framework

      # System framework
      - framework: UIKit.framework

      # SDK
      - sdk: CoreLocation.framework

    preBuildScripts:
      - name: "Run Script"
        script: |
          echo "Pre-build script"
        runOnlyWhenInstalling: false

    postBuildScripts:
      - name: "Post Build"
        script: |
          echo "Post-build script"

  Tests:
    type: bundle.unit-test
    platform: iOS
    sources:
      - path: Tests
    dependencies:
      - target: MainApp
    settings:
      base:
        TEST_HOST: "$(BUILT_PRODUCTS_DIR)/MainApp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MainApp"
        BUNDLE_LOADER: "$(TEST_HOST)"

Target Types

Type Description
application iOS/macOS app
framework Dynamic framework
staticFramework Static framework
bundle.unit-test Unit test bundle
bundle.ui-testing UI test bundle
app-extension App extension
watch2-app watchOS app
widget-extension Widget extension

Build Settings Reference

Common Settings

settings:
  base:
    # Versioning
    MARKETING_VERSION: "1.0.0"
    CURRENT_PROJECT_VERSION: "1"

    # Swift
    SWIFT_VERSION: "6.0"
    SWIFT_STRICT_CONCURRENCY: complete

    # Signing
    CODE_SIGN_STYLE: Automatic
    DEVELOPMENT_TEAM: TEAM_ID
    CODE_SIGN_IDENTITY: "Apple Development"

    # Deployment
    IPHONEOS_DEPLOYMENT_TARGET: "16.0"
    TARGETED_DEVICE_FAMILY: "1,2"  # 1=iPhone, 2=iPad

    # Build
    ENABLE_BITCODE: NO
    DEBUG_INFORMATION_FORMAT: dwarf-with-dsym

    # Paths
    LD_RUNPATH_SEARCH_PATHS: "$(inherited) @executable_path/Frameworks"

Per-Configuration Settings

settings:
  configs:
    Debug:
      SWIFT_OPTIMIZATION_LEVEL: -Onone
      SWIFT_ACTIVE_COMPILATION_CONDITIONS: DEBUG
      MTL_ENABLE_DEBUG_INFO: INCLUDE_SOURCE
    Release:
      SWIFT_OPTIMIZATION_LEVEL: -O
      SWIFT_COMPILATION_MODE: wholemodule
      VALIDATE_PRODUCT: YES

Info.plist Keys

Common keys to add:

<key>NSCameraUsageDescription</key>
<string>Camera access description</string>

<key>NSMicrophoneUsageDescription</key>
<string>Microphone access description</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>Photo library access description</string>

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
    <string>location</string>
</array>

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>