Claude Code Plugins

Community-maintained marketplace

Feedback

ios-restart-app

@asnar00/miso
0
0

Restart the iOS app on connected iPhone without rebuilding. Terminates and relaunches the app remotely. Use when testing changes that don't require rebuild, or refreshing app state.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name ios-restart-app
description Restart the iOS app on connected iPhone without rebuilding. Terminates and relaunches the app remotely. Use when testing changes that don't require rebuild, or refreshing app state.
delegate true

⚠️ DELEGATION REQUIRED

This skill must be executed by the instruction-follower subagent.

When you see this skill invoked, you MUST use the Task tool to delegate it:

Task(
    subagent_type="instruction-follower",
    description="[Brief 3-5 word description]",
    prompt="Follow the instructions in .claude/skills/ios-restart-app/skill.md to [complete task description]."
)

DO NOT execute the instructions below directly. The subagent will read this file and execute autonomously, then report back the results.


iOS Restart App

Overview

Restarts the iOS app on a connected iPhone by terminating the existing instance and launching it again. This is useful for testing configuration changes, clearing app state, or refreshing the app without rebuilding.

When to Use

Invoke this skill when the user:

  • Asks to "restart the app"
  • Wants to "reload the app"
  • Says "relaunch on device"
  • Mentions refreshing or resetting the app
  • Wants to test without rebuilding

Prerequisites

  • iPhone connected via USB
  • App must be installed on the device (use ios-deploy-usb first if not)
  • Device trusted
  • The project must be in an iOS app directory

Instructions

  1. Navigate to the iOS app directory:

    cd path/to/ios/app
    
  2. Run the restart script:

    ./restart-app.sh
    
  3. The script will:

    • Auto-detect the connected iPhone
    • Terminate any running instance of the app
    • Launch the app again
    • Activate it (bring to foreground)
  4. Inform the user:

    • The app has been restarted on the device
    • This does NOT rebuild - only restarts the existing installation
    • Use ios-deploy-usb if code changes need to be deployed first

Expected Output

🔄 Restarting NoobTest on device...
✅ App restarted

How It Works

The script uses:

  • xcodebuild -showdestinations to find the device ID
  • xcrun devicectl device process launch with --terminate-existing to kill and restart
  • --activate flag to bring the app to the foreground

When to Use vs Deploy

Use restart-app when:

  • Testing configuration files or assets that don't require rebuild
  • Clearing app state (memory, caches)
  • You just want to refresh the running app
  • Changes are external (server-side, network config, etc.)

Use ios-deploy-usb when:

  • You changed Swift code
  • You added/modified UI
  • You updated dependencies
  • Any code that needs recompilation

Common Issues

No device detected:

  • Check USB connection
  • Ensure device is trusted
  • Try disconnecting and reconnecting

App not installed:

  • Run ios-deploy-usb first to build and install
  • Verify app appears on iPhone home screen

Device busy:

  • Wait a moment and try again
  • Stop any other Xcode operations

Speed

This is very fast (< 2 seconds) since there's no build step. It's ideal for rapid iteration when testing non-code changes.

Bundle ID

The script is configured for the specific app's bundle ID. For Firefly/NoobTest, this is com.miso.noobtest. Different apps will have different bundle IDs configured in the script.