Подтвердить что ты не робот

Редактирование заблокированных файлов из системы CocoaPods

У меня есть рабочее пространство Xcode, которое использует CocoaPods для включения нескольких сторонних фреймворков. Я хотел бы отредактировать строку исходного кода в одной из этих зависимостей. Однако, когда я это делаю, Xcode предупреждает меня, что файл заблокирован и что любые изменения, которые я делаю, не могут быть сохранены. Поэтому мой вопрос: будут ли мои изменения в исходном коде отбрасываться при запуске установки/обновления pod? Если нет, есть ли другой сценарий, возможно, не связанный с CocoaPods, который отменит мои изменения? И, наконец, есть ли хороший способ, чтобы я мог редактировать исходный код, не сталкиваясь с такими проблемами?

Спасибо заранее.

4b9b3361

Ответ 1

Вы не можете вносить изменения в файл Original Pod. Если вы хотите добавить еще несколько функций, вам нужно разблокировать это конкретное репо.

Выполните следующие действия:

  • Найти библиотеку, которую вы хотите использовать на Git.
  • Библиотека вилок.
  • Обновить подфайл, который ссылается на вашу раздвоенную версию. Предположим, я хочу разблокировать библиотеку GPUImage. Затем укажите свою вилку в подфайле как указано.

pod 'GPUImage',: git = > 'https://github.com/UserName/GPUImage.git'

  1. Внесите свои изменения.
  2. Заблокируйте/нажмите свои изменения на разветвленное репо.
  3. Отправьте запрос на перенос оригинальному автору Библиотеки.
  4. Если запрос на извлечение принят и обновлен модуль, верните обратно подфайл для использования публичного пакета.

Вы можете создать категорию (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