Panoramica
Ecco i passaggi che hanno funzionato per me:
- Disattiva la protezione dell'integrità del sistema (vedi sotto per i dettagli).
- Inserisci il tuo file suoneria personalizzato in /System/Library/PrivateFrameworks/ToneLibrary.framework/Versions/A/Resources/Ringtones /
- Modifica l'elenco delle proprietà di suonerie del sistema su /System/Library/PrivateFrameworks/ToneKit.framework/Versions/A/Resources/TKRingtones.plist (vedi sotto per i dettagli).
- Scegli la tua suoneria personalizzata nelle preferenze di FaceTime.
- Riattiva la protezione dell'integrità del sistema (vedi sotto per i dettagli).
Abilitazione / disabilitazione della protezione dell'integrità del sistema
Sembra che in macOS Sierra (in realtà partendo da El Capitan), Apple abbia implementato una tecnologia di System Integrity Protection che limita l'accesso a / System. Per giocare con suonerie personalizzate, è necessario disabilitare la protezione dell'integrità del sistema
To enable or disable System Integrity Protection [...]
- Boot to Recovery OS by restarting your machine and holding down the
Command and R keys at startup.
- Launch Terminal from the Utilities
menu.
- Enter the following command:
$ csrutil enable
[or use the command $ csrutil disable
to disable System Integrity Protection]
After enabling or disabling System Integrity Protection on a machine,
a reboot is required.
Fonti : Supporto Apple , Apple Developer
Modifica di TKRingtones.plist
Per far apparire la tua suoneria personalizzata nell'elenco delle suonerie nelle preferenze di FaceTime, dovrai modificare il file /System/Library/PrivateFrameworks/ToneKit.framework/Versions/A /Resources/TKRingtones.plist usando TextEdit (o qualche altro editor di testo - puoi anche usare gli strumenti di sviluppo di Xcode per un'interfaccia più bella). In particolare, aggiungi <string>system:Custom Ringtone Name</string>
nella posizione indicata di seguito (devi sostituire "Nome suoneria personalizzata" con il nome del file suoneria).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
// lots of stuff omitted here
<key>modern</key>
<array>
<string><default></string>
<string>system:Custom Ringtone Name</string>
<string>system:Apex</string>
<string>system:Beacon</string>
<string>system:Bulletin</string>
// lots of stuff omitted here
</array>
<key>sort</key>
<true/>
</dict>
</plist>