Редактирование заблокированных файлов из системы CocoaPods
У меня есть рабочее пространство Xcode, которое использует CocoaPods для включения нескольких сторонних фреймворков. Я хотел бы отредактировать строку исходного кода в одной из этих зависимостей. Однако, когда я это делаю, Xcode предупреждает меня, что файл заблокирован и что любые изменения, которые я делаю, не могут быть сохранены. Поэтому мой вопрос: будут ли мои изменения в исходном коде отбрасываться при запуске установки/обновления pod? Если нет, есть ли другой сценарий, возможно, не связанный с CocoaPods, который отменит мои изменения? И, наконец, есть ли хороший способ, чтобы я мог редактировать исходный код, не сталкиваясь с такими проблемами?
Спасибо заранее.
Ответы
Ответ 1
Вы не можете вносить изменения в файл Original Pod. Если вы хотите добавить еще несколько функций, вам нужно разблокировать это конкретное репо.
Выполните следующие действия:
- Найти библиотеку, которую вы хотите использовать на Git.
- Библиотека вилок.
- Обновить подфайл, который ссылается на вашу раздвоенную версию.
Предположим, я хочу разблокировать библиотеку GPUImage. Затем укажите свою вилку в подфайле как указано.
pod 'GPUImage',: git = > 'https://github.com/UserName/GPUImage.git'
- Внесите свои изменения.
- Заблокируйте/нажмите свои изменения на разветвленное репо.
- Отправьте запрос на перенос оригинальному автору Библиотеки.
- Если запрос на извлечение принят и обновлен модуль, верните обратно подфайл для использования публичного пакета.
Вы можете создать категорию (Objective C) или Extension (Swift), чтобы расширить или добавить некоторые функции в существующий класс.
Ответ 2
Вы можете сделать это просто. Просто измените код pods src. Переключитесь на другой филиал и переключитесь обратно. Xcode перестроит модули с вашим измененным кодом. Если вы хотите вернуться назад, вы должны удалить модуль в Podfile, выполнить pod install
Затем добавить модуль обратно, выполнить pod install
. Это решение только для отладки. Для вечности, вы должны принять ответ @technerd
Ответ 3
На самом деле есть еще один способ, с помощью которого вы можете изменить библиотеку в соответствии с вашими потребностями и получать будущие обновления из библиотеки, при этом поддерживая ее через cocoapods.
![enter image description here]()
Я написал статью/учебник, объясняющий то же самое.
https://medium.com/@mihirpmehta/how-to-modify-cocoapods-library-within-pods-647d2bf7e1cb