Почему Cocoapods 1.8.3 добавляет APPLICATION_EXTENSION_API_ONLY в файл xcconfig Target Support? - PullRequest
0 голосов
/ 14 октября 2019

Мы использовали Cocoapods в нашем проекте в течение длительного времени. Начиная с 1.8.3, он добавляет APPLICATION_EXTENSION_API_ONLY к одному из Pods/Target Support Files/*/*.xcconfig файлов нашего частного модуля, и это, в свою очередь, приводит к сбою сборки.

В качестве обходного пути мы удаляем этолиния, и все снова работает.

Я бы хотел навсегда решить эту проблему и хотел бы знать, что именно заставляет кокоподов добавить этот флаг, и что нам нужно, чтобы проект снова заработал.

Предполагается, что рассматриваемый модуль используется в расширениях, это правда. Он содержит условную компиляцию (#ifndef TARGET_IS_EXTENSION) для исключения кода, который не должен входить в расширения.

Что мы делаем неправильно?

1 Ответ

1 голос
/ 14 октября 2019

Вместо того, чтобы делать это вручную, вы можете сделать это автоматически после установки модуля с помощью хука post_install, добавив следующее в конец вашего Podfile.

(Ниже приведен шаблон, который может потребовать несколько настроек в зависимости от проекта)

post_install do |installer|
    installer.pods_project.build_configurations.each do |config|
        if target.name.include?(“CUSTOM_POD”). // or remove if statement to delete/set value for all pods
            config.build_settings.delete('APPLICATION_EXTENSION_API_ONLY')
               //OR
            config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO' //or 'YES'
        end
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...