Недавно я написал аналогичный плагин для синхронизации фрагментов с репозиторием git. Вы можете проверить исходный код здесь: https://github.com/acoomans/ACCodeSnippetRepositoryPlugin.
Наличие обновления библиотеки фрагментов при изменении фрагментов (в обе стороны) не является тривиальным и обязательным swizzling Внутренние классы XCode.
У Xcode есть класс IDECodeSnippetRepository, ответственный за сохранение фрагментов на диске при создании или редактировании и удаление их при удалении.
ACCodeSnippetRepositoryPlugin имеет IDECodeSnippetRepositorySwizzler класс, который Swizzle в saveUserCodeSnippetToDisk: и removeCodeSnippet: методы с пользовательскими реализациями самостоятельно, синхронизируя сниппет с мерзавца репо.
На самом деле, чтобы быть действительно точным, мой IDECodeSnippetRepositorySwizzler может иметь несколько фрагмент кода хранилищ данных, присоединенные и будем называть addCodeSnippet: и removeCodeSnippet: методы по каждому из них при создании/происходят события редактирования/удаления.
ACCodeSnippetRepositoryPlugin предназначался для управления несколькими источниками фрагментов (например, git, gist и т. Д.), Но я не закончил его реализацию. Я даю эту точность, потому что, я не знаю, с чем вы хотите синхронизировать свои фрагменты, но я могу иметь смысл добавить вашу функциональность в ACCodeSnippetRepositoryPlugin.