add-to-xcode

REQUIRED: After creating ANY .swift, .m, .mm, .c, .cpp, or .h file in a directory containing a .xcodeproj, you MUST run add_to_xcode.rb to register it with the project. Without this step, the file will NOT appear in Xcode and will NOT compile.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "add-to-xcode" with this command: npx skills add michaelboeding/skills/michaelboeding-skills-add-to-xcode

Add to Xcode

⚠️ MANDATORY: Run After Creating Source Files

Every time you create a .swift, .m, .mm, .c, .cpp, or .h file in an Xcode project, you MUST run:

ruby ${CLAUDE_PLUGIN_ROOT}/skills/add-to-xcode/scripts/add_to_xcode.rb <filepath>

If you skip this step:

  • ❌ File will NOT appear in Xcode's navigator
  • ❌ File will NOT compile with the app
  • ❌ User will have to manually add it

Quick Reference

# ALWAYS do this after creating any source file:
# Use subshell to get latest version (handles multiple cached versions)
ruby "$(ls -1d ~/.claude/plugins/cache/michaelboeding-skills/skills/*/skills/add-to-xcode/scripts/add_to_xcode.rb 2>/dev/null | sort -V | tail -1)" NewFile.swift

Supported File Types

ExtensionAdded to Compile Sources
.swift✅ Yes
.m✅ Yes
.mm✅ Yes
.c✅ Yes
.cpp✅ Yes
.h❌ No (reference only)

Workflow

Step 1: Create the file normally

# Example: Create a new Swift file
cat > Sources/Features/MyFeature.swift << 'EOF'
import Foundation

class MyFeature {
    // Implementation
}
EOF

Step 2: Add to Xcode project

ruby ${CLAUDE_PLUGIN_ROOT}/skills/add-to-xcode/scripts/add_to_xcode.rb Sources/Features/MyFeature.swift

Output:

✓ Added Sources/Features/MyFeature.swift to MyApp.xcodeproj (target: MyApp)

What the Script Does

  1. Finds the .xcodeproj - Searches current directory and parents
  2. Creates group hierarchy - Matches the file's directory structure
  3. Adds file reference - Registers with the project
  4. Adds to build target - Source files (.swift, .m, .mm, .c, .cpp) are added to the first target's compile sources

Requirements

Ruby with the xcodeproj gem:

gem install xcodeproj

Examples

Adding a new Swift file

# Create the file
cat > MyApp/ViewModels/ProfileViewModel.swift << 'EOF'
import SwiftUI

@Observable
class ProfileViewModel {
    var name: String = ""
    var email: String = ""
}
EOF

# Add to Xcode
ruby ${CLAUDE_PLUGIN_ROOT}/skills/add-to-xcode/scripts/add_to_xcode.rb MyApp/ViewModels/ProfileViewModel.swift

Adding a header file

# Create header
cat > MyApp/Bridge/MyApp-Bridging-Header.h << 'EOF'
#import <SomeLibrary/SomeLibrary.h>
EOF

# Add to Xcode (headers are added but not to compile sources)
ruby ${CLAUDE_PLUGIN_ROOT}/skills/add-to-xcode/scripts/add_to_xcode.rb MyApp/Bridge/MyApp-Bridging-Header.h

Adding Objective-C files

# Create implementation
cat > MyApp/Legacy/LegacyManager.m << 'EOF'
#import "LegacyManager.h"

@implementation LegacyManager
// Implementation
@end
EOF

# Add to Xcode
ruby ${CLAUDE_PLUGIN_ROOT}/skills/add-to-xcode/scripts/add_to_xcode.rb MyApp/Legacy/LegacyManager.m

Agent Integration

When working in an Xcode project, agents should:

  1. Check for .xcodeproj before creating source files
  2. Create the file using standard file creation
  3. Run add_to_xcode.rb immediately after file creation
# Pattern for agents:
# 1. Create file
cat > NewFile.swift << 'EOF'
// content
EOF

# 2. Register with Xcode
ruby ${CLAUDE_PLUGIN_ROOT}/skills/add-to-xcode/scripts/add_to_xcode.rb NewFile.swift

Troubleshooting

"No .xcodeproj found"

  • Make sure you're running from within the Xcode project directory or a subdirectory

"gem not found: xcodeproj"

  • Install with: gem install xcodeproj
  • On macOS with system Ruby, you may need: sudo gem install xcodeproj

File added but not compiling

  • Check that the file extension is recognized (.swift, .m, .mm, .c, .cpp)
  • Verify the target exists and has a source build phase
  • Header files (.h) are not added to compile sources (this is correct)

Related Skills

SkillUse Case
ios-to-androidConvert iOS code to Android
android-to-iosConvert Android code to iOS

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

patent-lawyer-agent

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

audio-producer-agent

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

review-analyst-agent

No summary provided by upstream source.

Repository SourceNeeds Review