
Strumento di sviluppo mobile universale per Agenti e Umani - controlla simulatori iOS, emulatori Android e dispositivi reali da un unico cruscotto e da una CLI
<p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12264/e081fb1d4bcaa6556ff10e722d1ff25449288b68ce1aad9ac3b5ecc047ccf5fb.png" width="180" alt="simvyn" /> </p> <h1 align="center">simvyn</h1> <p align="center"> Devtool mobile universale — controlla simulatori iOS, emulatori Android e dispositivi reali da un'unica dashboard e CLI </p> <p align="center"> <a href="https://www.npmjs.com/package/simvyn"><img src="https://img.shields.io/npm/v/simvyn?color=cb3837&logo=npm" alt="npm version" /></a> <a href="https://www.npmjs.com/package/simvyn"><img src="https://img.shields.io/npm/dm/simvyn?color=cb3837&logo=npm" alt="npm downloads" /></a> <a href="https://github.com/pranshuchittora/simvyn/actions/workflows/ci.yml"><img src="https://github.com/pranshuchittora/simvyn/actions/workflows/ci.yml/badge.svg" alt="CI status" /></a> <a href="https://github.com/pranshuchittora/simvyn/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/simvyn?color=blue" alt="MIT License" /></a> <a href="https://nodejs.org"><img src="https://img.shields.io/node/v/simvyn?color=5FA04E&logo=node.js&logoColor=white" alt="Node version" /></a> </p> <p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12264/bff45a80ced8a6cba77f5bab23f21607fb310862cbc838179d9ce714a1d4d6b6.png" alt="simvyn dashboard" /> </p> <p align="center"> <img src="https://raw.githubusercontent.com/pranshuchittora/simvyn/main/assets/demo.gif" alt="simvyn demo" /> </p> ## Indice - [Avvio rapido](#quick-start) - [Installazione](#installation) - [Agenti di coding AI](#ai-coding-agents) - [Funzionalità](#features) - [Panoramica dei moduli](#module-showcases) - [Guida alle collezioni](#collections-guide) - [Riferimento CLI](#cli-reference) - [Come funziona](#how-it-works) - [Piattaforme supportate](#supported-platforms) - [Contribuire](#contributing) - [Sicurezza](#security) - [Licenza](#license) ## Avvio rapido```bash npx simvyn ``` Avvia il server locale, apre la dashboard web nel browser e rileva automaticamente tutti i simulatori, gli emulatori e i dispositivi fisici collegati via USB. ## Installazione **Installazione globale:**```bash npm install -g simvyn ``` **Uso singolo (nessuna installazione):**```bash npx simvyn ``` **Requisiti:** - Node.js 22 (22.14.0+) o 24+ - macOS (supporto completo iOS + Android) o Linux (solo Android) ## Agenti di codifica AI simvyn include una [Agent Skill](https://github.com/pranshuchittora/simvyn/blob/main/skills/simvyn/SKILL.md) portabile per scoprire dispositivi, eseguire comandi CLI supportati, acquisire screenshot, ispezionare i dati delle app e raccogliere log limitati. Insegna a un agente a usare la CLI con ID dispositivo espliciti e limiti di piattaforma. La skill utilizza lo strumento terminale esistente dell'agente; non registra un server MCP o nuovi strumenti per l'agente. **Pi:** il pacchetto npm è un [pacchetto Pi](https://pi.dev/packages/simvyn). Insieme alla skill, aggiunge gli strumenti `simvyn`, `simvyn_screenshot`, `simvyn_logs` e `simvyn_record`, un comando `/simvyn` che esegue la dashboard, e i template di prompt `/simvyn-repro`, `/simvyn-screen` e `/simvyn-logs`. Richiede Pi 0.74 o successivo:```bash pi install npm:simvyn ``` **Altri agenti compatibili:** installa la skill portabile da GitHub, selezionando il tuo agente, e installa separatamente la CLI simvyn:```bash npm install -g simvyn npx skills add pranshuchittora/simvyn --skill simvyn --agent codex --yes ``` Il comando GitHub richiede che questi file di skill siano presenti sul branch predefinito; il comando Pi richiede le risorse Pi nella release npm pubblicata. Per modifiche non ancora rilasciate, usa le [istruzioni per il checkout locale](https://github.com/pranshuchittora/simvyn/blob/main/docs/agents.md#test-an-unreleased-checkout). Consulta la [guida alla configurazione degli agent e al workflow](https://github.com/pranshuchittora/simvyn/blob/main/docs/agents.md) per il launcher incluso, gli output supportati, l'operatività non interattiva e le limitazioni attuali. È inoltre disponibile un compatto [indice della documentazione](https://github.com/pranshuchittora/simvyn/blob/main/llms.txt) per gli strumenti che accettano URL di documentazione. ## Funzionalità - **Gestione dei dispositivi** — Scopri, avvia, spegni, cancella, crea e clona simulatori, emulatori e dispositivi fisici con fissaggio dei preferiti - **Gestione delle app** — Installa, avvia, termina, disinstalla app tramite drag-and-drop o CLI - **Visualizzatore di log** — Streaming in tempo reale con filtraggio per livello, ricerca nella pagina (Cmd+F), ricerca con regex, paginazione ed esportazione - **Simulazione della posizione** — Imposta coordinate GPS, riproduci percorsi GPX/KML con controllo della velocità, salva i preferiti - **Impostazioni del dispositivo** — Modalità scura, locale, orientamento, permessi, override della barra di stato, preset di accessibilità - **Screenshot e registrazione** — Cattura screenshot e registra video dello schermo con cronologia - **Deep Link** — Apri URL e schemi personalizzati, salva i preferiti per app - **Ispettore del database** — Sfoglia tabelle SQLite, esegui query SQL, visualizza SharedPreferences e NSUserDefaults - **Browser dei file** — Sfoglia le sandbox delle app, carica/scarica file, modifica testo inline - **Notifiche push** — Componi payload JSON, invia a simulatori iOS, libreria di template - **Collezioni** — Raggruppa azioni sui dispositivi in sequenze riutilizzabili, applica a più dispositivi contemporaneamente - **Log di crash** — Report diagnostici iOS e crash logcat/tombstone Android - **Appunti** — Leggi e scrivi il contenuto degli appunti del dispositivo - **Media** — Invia foto e video ai rullini della fotocamera e alle gallerie del dispositivo - **Impostazioni dello strumento** — Configurazione del server, gestione dello storage, diagnostica e report di debug - **Supporto dispositivi reali** — Connetti dispositivi Android e iOS fisici via USB con scoperta automatica - **Dashboard web** — Design Apple Liquid Glass con command palette, navigazione da tastiera - **CLI completa** — Ogni funzionalità funziona in modalità headless tramite `simvyn <command>` ## Vetrine dei moduli ### Gestione dei dispositivi Scopri tutti i simulatori iOS, gli emulatori Android e i dispositivi fisici collegati via USB in un unico elenco unificato. Avvia, spegni e cancella dispositivi senza toccare Xcode o Android Studio. Crea nuovi simulatori iOS scegliendo un tipo di dispositivo e un runtime, oppure clona uno esistente per creare rapidamente dei duplicati. I dispositivi fisici compaiono automaticamente quando vengono collegati e sono raggruppati separatamente nel selettore dei dispositivi. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/2b85641878f6015c248311700a1a87a20476ade6c930273a3e47f288a82d6d2e.png" alt="Device Management" width="700" /></p> - Elenca tutti i simulatori, gli emulatori e i dispositivi fisici disponibili su tutte le piattaforme - Avvia, spegni e cancella dispositivi con un clic o un comando CLI - Crea nuovi simulatori iOS con selezione del tipo di dispositivo e del runtime - Clona e rinomina simulatori esistenti - Fissa i dispositivi preferiti in cima al selettore dei dispositivi - Aggiornamenti dello stato dei dispositivi in tempo reale via WebSocket ### Gestione delle app Installa, avvia, termina e disinstalla app su qualsiasi dispositivo collegato. Trascina e rilascia bundle IPA, APK o .app per simulatori iOS direttamente sulla dashboard. Visualizza informazioni dettagliate sulle app e cancella i dati delle app senza comandi manuali adb o simctl. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/17757b1ca8ddd41d43ac3a159260598308da6c3f759e1c9d730f61498e18ce8a.png" alt="App Management" width="700" /></p> - Installazione IPA, APK e .app per simulatori iOS tramite drag-and-drop - Avvia, termina e disinstalla app tramite bundle ID - Visualizza i dettagli dell'app inclusi versione, dimensione e permessi - Cancella i dati delle app sui dispositivi Android - Elenca tutte le app installate con filtro di ricerca ### Visualizzatore di log Trasmetti i log del dispositivo in tempo reale con potenti filtri. Filtra per livello di log, cerca con pattern regex e filtra per nome del processo. Usa la ricerca nella pagina (Cmd+F) per evidenziare voci specifiche senza nascondere il contesto circostante. Esporta i log filtrati per condividerli o archiviarli. La cronologia paginata ti consente di scorrere all'indietro tra migliaia di voci senza problemi di prestazioni. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/b909b3515637b4059ebf210c56599f2f022506f09ee35a11e812bd8368d3750e.png" alt="Log Viewer" width="700" /></p> - Streaming dei log in tempo reale via WebSocket - Filtra per livello: debug, info, warning, error, fatal - Ricerca nella pagina (Cmd+F) con evidenziazione delle corrispondenze, navigazione e contatore - Ricerca con regex e filtraggio per nome del processo - Cronologia paginata con scorrimento virtuale - Esporta i log filtrati su file - Metti in pausa/riprendi lo streaming dei log preservando lo stato tra le cancellazioni ### Posizione Imposta coordinate GPS precise su qualsiasi dispositivo usando una mappa interattiva o l'inserimento manuale. Riproduci file di percorso GPX e KML con controllo regolabile della velocità. Salva le posizioni usate di frequente come preferiti per un accesso rapido. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/47842dfa878ffbc80bd5bb32d83e820e7ed7dd56a4d63368ca6e823ef72889d4.png" alt="Location" width="700" /></p> - Mappa interattiva con coordinate impostabili con un clic - Riproduzione di file di percorso GPX e KML con controllo della velocità - Posizioni preferite salvate per dispositivo - Trasmissione della posizione su più dispositivi - Geocodifica inversa per indirizzi leggibili ### Impostazioni del dispositivo Attiva/disattiva la modalità scura, cambia locale, ruota l'orientamento del dispositivo (Android), gestisci i permessi delle app e sovrascrivi l'aspetto della barra di stato. Applica preset di accessibilità per testare la tua app in condizioni diverse. Tutte le modifiche alle impostazioni hanno effetto immediato sul dispositivo di destinazione. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/d3f6a33c17b773560072f7b94b71abd5ebc82786c073bdeb6d25f828c3f214fa.png" alt="Device Settings" width="700" /></p> - Attiva/disattiva la modalità scura/chiara - Cambia la locale del dispositivo - Gestisci i permessi delle app - Sovrascrivi la barra di stato (ora, batteria, segnale) - Preset di accessibilità (testo in grassetto, aumento del contrasto, dimensione del contenuto) ### Screenshot e registrazione Cattura screenshot e registra video dello schermo su qualsiasi dispositivo. Tutte le catture vengono salvate con timestamp e organizzate in una cronologia consultabile. Scarica o elimina le catture direttamente dalla dashboard. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/58ed8f25d148ed53f39066e42be730f255235dbec47539bbec826c455cba7936.png" alt="Screenshots and Recording" width="700" /></p> - Cattura screenshot con un clic - Registrazione dello schermo con controlli di avvio/arresto - Cronologia delle catture con timestamp - Scarica ed elimina le catture dalla dashboard ### Deep Link Apri URL e schemi URI personalizzati su qualsiasi dispositivo. Salva i deep link usati di frequente come preferiti organizzati per app. Testa la gestione dei deep link della tua app senza digitare manualmente gli URL in un terminale. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/3a990ef7c74f83c93b63c1654f74b3fa952b0b41abd31fe688cdaf2e29570f62.png" alt="Deep Links" width="700" /></p> - Apri qualsiasi URL o schema personalizzato su un dispositivo - Salva i deep link preferiti per app - Cronologia dei link con ordinamento dal più recente - Funziona sia con iOS che con Android ### Ispettore del database Sfoglia i database SQLite all'interno della sandbox di qualsiasi app. Visualizza gli schemi delle tabelle, esegui query SQL arbitrarie e ispeziona SharedPreferences (Android) o NSUserDefaults (iOS). Modifica i valori inline senza scrivere script. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/4884b688dbbee5f1a34b0454950f4d6562e74efdbbb3b84ca5c626835b4b7d37.png" alt="Database Inspector" width="700" /></p> - Sfoglia le tabelle SQLite con colonne ordinabili - Esegui query SQL arbitrarie - Visualizza e modifica SharedPreferences e NSUserDefaults - Modifica inline delle celle con rilevamento del tipo ### Browser dei file Sfoglia il file system della sandbox di qualsiasi app installata. Naviga le directory, carica e scarica file e modifica file di testo inline. Trasferisci file tra la tua macchina e il dispositivo senza comandi manuali adb pull/push. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7b7ba540ad5de8b575da4f9bb28694dc68f5ffce51225a388788b8ef2f4767a0.png" alt="File Browser" width="700" /></p> - Sfoglia le directory della sandbox delle app - Carica e scarica file - Modifica inline dei file di testo - Funziona con i container delle app sia iOS che Android ### Notifiche push Componi payload JSON per notifiche push e inviali ai simulatori iOS. Usa la libreria di template integrata come punto di partenza o scrivi i payload da zero. La validazione JSON in tempo reale evidenzia gli errori prima dell'invio. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/f640654be67c24c7248806987e62908316407c18648fc145109118f260443f7d.png" alt="Push Notifications" width="700" /></p> - Componi e invia payload push ai simulatori iOS - Libreria di template di payload integrata - Validazione JSON in tempo reale - Indirizza app specifiche tramite bundle ID ### Collezioni Crea set riutilizzabili di azioni sui dispositivi e applicali a più dispositivi contemporaneamente. Le collezioni raggruppano passaggi come impostare la posizione, attivare la modalità scura e installare un'app in un unico workflow ripetibile. Tre preset iniziali sono inclusi con simvyn per iniziare. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/fbf2ddbba1d3725321c80a914bf5b71ea6a2fc605fddbb73abd0b28385488af6.png" alt="Collections" width="700" /></p> - Crea, duplica e gestisci collezioni con nome - Sfoglia il catalogo di azioni categorizzate in tutti i moduli - Riordina i passaggi tramite drag-and-drop - Applica a più dispositivi con verifica della compatibilità - Tre preset iniziali integrati ### Log di crash Visualizza i report diagnostici iOS (file .ips) e i log di crash Android da logcat e dump tombstone. Sfoglia le voci di crash con timestamp e informazioni sul processo. Ispeziona i dettagli completi dei crash senza scavare nei file system dei dispositivi. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/8f74a799448050bc37eace1d43865b13f3f47a0997c01dba650fd21e94f09ebf.png" alt="Crash Logs" width="700" /></p> - Analisi dei report diagnostici iOS (.ips) - Raggruppamento dei crash logcat Android per PID e tag - Recupero dei dump tombstone Android - Elenco dei crash con timestamp e vista di dettaglio ### Appunti Leggi e scrivi gli appunti del dispositivo dalla dashboard o dalla CLI. Utile per incollare rapidamente dati di test nelle app o ispezionare ciò che un'app ha copiato. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/db889032abeb5f1d511dcfeb8c06c215bda851436f198a63db97f595b50853d6.png" alt="Clipboard" width="700" /></p> - Leggi il contenuto attuale degli appunti - Scrivi testo negli appunti del dispositivo - Funziona con simulatori iOS ed emulatori Android ### Media Invia foto e video direttamente nel rullino della fotocamera o nella galleria di un dispositivo. Trascina i file sulla dashboard per iniettarli senza cavi, email o trasferimenti cloud. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/c63ce5411dc17b5d329c2af381c035d86164f5544928b0c76fe7d05346473561.png" alt="Media" width="700" /></p> - Aggiungi foto e video alla galleria del dispositivo tramite drag-and-drop - Supporta file di grandi dimensioni fino a 500 MB - Funziona con simulatori iOS ed emulatori Android ### Impostazioni dello strumento Configura il server simvyn, gestisci lo storage e visualizza la diagnostica. Include un generatore di report di debug per segnalare problemi. <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/12264/7ba043d473d21d4bb5477582539ffd9a4c57600ec20c22ee9d7e63146cbbfbb2.png" alt="Tool Settings" width="700" /></p> - Configurazione della porta del server, apertura automatica e intervallo di polling - Panoramica dell'utilizzo dello storage con opzione di cancellazione dei dati - Diagnostica: versione di Xcode, disponibilità di devicectl, versione di adb - Report di debug con un clic per la segnalazione di bug ## Guida alle collezioni Le collezioni ti consentono di raggruppare più azioni sui dispositivi in una sequenza riutilizzabile e applicarle a qualsiasi combinazione di dispositivi con un clic. ### Creare una collezione Apri il pannello Collezioni dalla barra laterale. Clicca su **New Collection** e assegnale un nome. La collezione inizia vuota — aggiungerai i passaggi dal catalogo delle azioni. ### Aggiungere passaggi Clicca su **Add Step** per sfogliare il catalogo di azioni categorizzate. Le azioni sono organizzate per modulo — Impostazioni del dispositivo, Posizione, Gestione delle app e altro. Seleziona un'azione, configurane i parametri inline (coordinate, bundle ID, valori di attivazione/disattivazione) e questa apparirà nella tua collezione. Trascina i passaggi per riordinarli. ### Applicare una collezione Clicca su **Apply** per aprire la finestra di applicazione. Seleziona uno o più dispositivi di destinazione dall'elenco dei dispositivi. Un riepilogo di compatibilità mostra quali passaggi verranno saltati su piattaforme incompatibili (ad esempio, azioni solo iOS su un dispositivo Android). Premi **Cmd+Enter** per eseguire. Una matrice di stato in tempo reale mostra il progresso per ogni passaggio e per ogni dispositivo in tempo reale. ### Integrazione con la command palette Le collezioni salvate compaiono nella command palette (**Cmd+K**). Cerca una collezione per nome e applicala direttamente con il selettore dei dispositivi — non è necessario navigare al pannello Collezioni. ### Collezioni iniziali Tre preset integrati sono inclusi con simvyn: - **Dark Mode + Japanese Locale** — Attiva la modalità scura e imposta la locale su giapponese - **Screenshot Setup** — Configura gli override della barra di stato per screenshot puliti per l'App Store - **Reset Device State** — Cancella la posizione, ripristina le impostazioni e cancella i dati delle app ### Utilizzo della CLI```bash simvyn collections list # List all collections simvyn collections apply <name> <devices...> # Apply a collection to devices ``` ## Riferimento CLI Ogni funzionalità è accessibile dalla riga di comando. Esegui `simvyn` senza argomenti per avviare la dashboard, oppure usa uno dei comandi seguenti per l'operatività headless. | Comando | Descrizione | | ------------------------------------------------- | ------------------------------------------ | | `simvyn` | Avvia la dashboard (predefinito) | | `simvyn device list` | Elenca tutti i dispositivi | | `simvyn device boot <device>` | Avvia un dispositivo | | `simvyn device shutdown <device>` | Spegni un dispositivo | | `simvyn device erase <device>` | Cancella contenuti e impostazioni del dispositivo | | `simvyn device create <name> <type> <runtime>` | Crea un nuovo simulatore iOS | | `simvyn device clone <device> <name>` | Clona un simulatore iOS | | `simvyn device rename <device> <name>` | Rinomina un simulatore iOS | | `simvyn device delete <device>` | Elimina un simulatore iOS | | `simvyn location set <device> <lat> <lng>` | Imposta le coordinate GPS | | `simvyn location route <device> <file>` | Riproduci un percorso GPX/KML | | `simvyn location clear <device>` | Cancella la posizione simulata | | `simvyn app list <device>` | Elenca le app installate | | `simvyn app install <device> <path>` | Installa un IPA, APK o .app di simulatore iOS | | `simvyn app uninstall <device> <bundle-id>` | Disinstalla un'app | | `simvyn app launch <device> <bundle-id>` | Avvia un'app | | `simvyn app terminate <device> <bundle-id>` | Termina un'app | | `simvyn app info <device> <bundle-id>` | Mostra i dettagli dell'app | | `simvyn app clear-data <device> <bundle-id>` | Cancella i dati dell'app (Android) | | `simvyn logs <device>` | Trasmetti i log del dispositivo | | `simvyn screenshot <device>` | Cattura uno screenshot | | `simvyn record <device>` | Registra lo schermo | | `simvyn link <device> <url>` | Apri un deep link | | `simvyn push <device>` | Invia una notifica push | | `simvyn fs ls <device> <bundle-id> [path]` | Elenca i file nella sandbox dell'app | | `simvyn fs pull <device> <bundle-id> <path>` | Scarica un file | | `simvyn fs push <device> <bundle-id> <src> <dst>` | Carica un file | | `simvyn db list <device> <bundle-id>` | Elenca i database | | `simvyn db query <device> <bundle-id> <db> <sql>` | Esegui una query SQL | | `simvyn db prefs <device> <bundle-id>` | Visualizza SharedPreferences / NSUserDefaults | | `simvyn keychain add <device> <cert>` | Aggiungi un certificato root | | `simvyn keychain reset <device>` | Reimposta il keychain | | `simvyn collections list` | Elenca tutte le collezioni | | `simvyn collections show <id>` | Mostra i dettagli della collezione | | `simvyn collections create <name>` | Crea una nuova collezione | | `simvyn collections delete <id>` | Elimina una collezione | | `simvyn collections duplicate <id>` | Duplica una collezione | | `simvyn collections apply <name> <devices...>` | Applica una collezione ai dispositivi | | `simvyn settings orientation <device> <orient>` | Imposta l'orientamento del dispositivo (Android) | ## Come funziona simvyn racchiude `xcrun simctl` (simulatori iOS), `xcrun devicectl` (dispositivi iOS fisici) e `adb` (Android) dietro un'interfaccia unificata. Nessun SDK richiesto — funziona con qualsiasi app, senza necessità di modifiche al codice. L'architettura è costruita attorno a un sistema a moduli in cui ogni funzionalità (posizione, log, gestione app, ecc.) è un plugin autonomo che registra le proprie route API, comandi CLI e gestori WebSocket. La dashboard web comunica con un server Fastify locale tramite un'unica connessione WebSocket multiplexata per lo stato dei dispositivi in tempo reale e lo streaming dei log. Le funzionalità non disponibili su un particolare tipo di dispositivo vengono automaticamente disabilitate con chiari indicatori nell'interfaccia. ## Piattaforme supportate | Piattaforma | Simulatori iOS | Dispositivi iOS | Emulatori Android | Dispositivi Android | | -------- | -------------- | ----------- | ----------------- | --------------- | | macOS | Sì | Limitato | Sì | Sì | | Linux | No | No | Sì | Sì | ### Supporto dispositivi reali I dispositivi fisici collegati via USB vengono rilevati automaticamente insieme a simulatori ed emulatori. La dashboard li raggruppa in sezioni separate (Fisici / Simulatori / Emulatori) e mostra un avviso quando un dispositivo si disconnette. **I dispositivi Android fisici** supportano quasi tutte le funzionalità — gestione app, deep link, log, screenshot, inspector del database, browser dei file e altro. Alcune funzionalità riservate agli emulatori (simulazione della posizione tramite `adb emu geo`, simulazione della batteria) non sono disponibili e sono chiaramente contrassegnate nell'interfaccia. **I dispositivi iOS fisici** richiedono Xcode 15+ e utilizzano `xcrun devicectl` internamente. Le funzionalità supportate includono il rilevamento dei dispositivi, installazione/disinstallazione/avvio/terminazione delle app, elenco delle app, deep link e copia dei file. Molte funzionalità che si basano su `simctl` (screenshot, registrazione dello schermo, simulazione della posizione, clipboard, aspetto, barra di stato, notifiche push) non sono disponibili sui dispositivi iOS fisici. I controlli non supportati sono disabilitati con tooltip che ne spiegano il motivo. Le collezioni saltano automaticamente i passaggi che non si applicano ai dispositivi fisici. ## Contribuire I contributi sono benvenuti — correzioni di bug, nuovi moduli, copertura delle piattaforme e documentazione. Inizia dalla **[Guida al Contributo](https://github.com/pranshuchittora/simvyn/blob/main/CONTRIBUTING.md)**, che copre la configurazione dello sviluppo, la struttura del progetto, come aggiungere un modulo e i controlli eseguiti dalla CI. - [Segnala un bug](https://github.com/pranshuchittora/simvyn/issues/new?template=bug_report.yml) - [Richiedi una funzionalità](https://github.com/pranshuchittora/simvyn/issues/new?template=feature_request.yml) - [Codice di Condotta](https://github.com/pranshuchittora/simvyn/blob/main/CODE_OF_CONDUCT.md) - [Changelog](https://github.com/pranshuchittora/simvyn/blob/main/CHANGELOG.md)```bash git clone https://github.com/pranshuchittora/simvyn.git cd simvyn npm install npm run dev ``` ## Sicurezza simvyn è uno strumento di sviluppo locale e non è progettato per essere esposto a reti non attendibili. Segnala le vulnerabilità in modo privato tramite [GitHub Security Advisories](https://github.com/pranshuchittora/simvyn/security/advisories/new) anziché come issue pubblica. Consulta la [Security Policy](https://github.com/pranshuchittora/simvyn/blob/main/SECURITY.md) per l'ambito e cosa includere. Ogni release viene pubblicata su npm con [provenance](https://docs.npmjs.com/generating-provenance-statements) tramite trusted publishing, così puoi verificare un tarball risalendo al commit che lo ha compilato:```bash npm audit signatures ``` ## Licenza [MIT](https://github.com/pranshuchittora/simvyn/blob/main/LICENSE) © [Pranshu Chittora](https://github.com/pranshuchittora)