LiveContainer è un lanciatore di app (non un emulatore o un hypervisor) che ti permette di eseguire app iOS al suo interno.
Ti permette di installare un numero illimitato di app (il limite di 3 app/10 ID app per account sviluppatore gratuito non si applica qui) con una sola app e un solo ID app. Puoi anche avere più versioni di un'app installate con più contenitori di dati.
(Sotto iOS 26) Quando JIT è disponibile, il codesign viene completamente bypassato, non è necessario firmare le app prima dell'installazione. Altrimenti, la tua app verrà firmata con lo stesso certificato utilizzato da LiveContainer.
[!CAUTION]
Avviso importante riguardante build di terze parti di LiveContainer
Recentemente abbiamo notato la comparsa di alcune build closed-source di terze parti di LiveContainer. Tieni presente che tutte le tue app sono installate all'interno di LiveContainer, il che significa che queste build di terze parti hanno pieno accesso ai tuoi dati, incluse informazioni sensibili come elementi del portachiavi e credenziali di accesso.
Inoltre, tieni presente che non forniamo alcun supporto per i problemi di queste build di terze parti.
Ora puoi lanciare più app contemporaneamente in finestre virtuali all'interno dell'app. Queste finestre possono essere ridimensionate, scalate e persino visualizzate utilizzando la funzione nativa Picture-in-Picture (PiP). Su iPad, le app possono essere eseguite in modalità finestra nativa, mostrando ciascuna app in una finestra di sistema separata. E se lo desideri, puoi scegliere di eseguire le app in modalità multitasking per impostazione predefinita nelle impostazioni.
Per usare il multitasking, tieni premuto il banner dell'app e tocca "Multitask". Puoi anche impostare Multitask come modalità di avvio predefinita nelle impostazioni.
[!Note]
Per utilizzare il multitasking, assicurati di selezionare "Keep App Extensions" durante l'installazione tramite SideStore/AltStore.
Se vuoi abilitare JIT per le app in multitasking, ti serve un abilitatore JIT che supporti l'attacco tramite PID (StikDebug).
Alcune app potrebbero avere problemi con il selettore file o non riuscire a richiedere il permesso di notifica in LiveContainer. Per risolvere, abilita "Fix File Picker" e "Fix Local Notifications" nelle impostazioni specifiche dell'app.
Supporto "Apri in App"
Puoi semplicemente condividere un URL o un file con un'app usando il foglio di condivisione nativo di iOS. Nel foglio di condivisione, seleziona LiveContainer, e LiveContainer ti chiederà in quale app desideri aprire quell'URL/file.
Inoltre, puoi anche toccare l'icona del collegamento nell'angolo in alto a destra della scheda "App" e inserire l'URL. LiveContainer rileverà l'app appropriata e ti chiederà se vuoi avviarla.
Compatibilità
Sfortunatamente, non tutte le app funzionano in LiveContainer, quindi abbiamo una lista di compatibilità per sapere se ci sono app con problemi. Se non sono in questa lista, probabilmente funzioneranno. Tuttavia, se non funziona, per favore apri una segnalazione a riguardo.
Compilazione
Apri Xcode, modifica DEVELOPMENT_TEAM[config=Debug] in xcconfigs/Global.xcconfig con il tuo team id e compila.
Struttura del progetto
Eseguibile principale
Il cuore di LiveContainer
Contiene la logica di configurazione dell'ambiente ospite e di caricamento dell'app ospite.
Se non è selezionata alcuna app, carica LiveContainerSwiftUI.
LiveContainerSwiftUI
Riscrittura in SwiftUI di LiveContainerUI (di @hugeBlack)
Il file lingua Localizable.xcstrings si trova qui per il supporto multilingua. Per aiutarci a tradurre LiveContainer, visita il nostro progetto Crowdin
MultitaskSupport
Contiene l'implementazione della funzione multitasking.
TweakLoader carica tutti i tweak nella cartella selezionata
Trova il punto di ingresso
Salta al punto di ingresso
Il punto di ingresso dell'app ospite chiama UIApplicationMain e si avvia come qualsiasi altra app iOS.
Supporto multi-account e semi-separazione del portachiavi
128 gruppi di accesso al portachiavi vengono creati e LiveContainer li assegna casualmente a ciascun contenitore della stessa app. Quindi puoi creare 128 contenitori con diversi gruppi di accesso al portachiavi.
Limitazioni
Le entitlements dell'app ospite non vengono applicate all'app host. Non è un grosso problema poiché le app sideload richiedono solo entitlements di base.
I permessi delle app vengono applicati globalmente.
I contenitori delle app ospite non sono in sandbox. Ciò significa che un'app ospite può accedere ai dati di altre app ospite.
Le estensioni delle app non sono supportate. Non possono essere registrate perché: LiveContainer è in sandbox, SpringBoard non sa quali app sono installate in LiveContainer, e occupano ID app.