use_frameworks! только для некоторых стручков или быстрых стручков

У меня есть оба Objective C и Swift Pods в моем проекте.

 pod 'WBWebViewConsole', '~> 1.0.1' use_frameworks! pod 'XWebView', '~>0.9.5' pod 'Starscream', '~> 1.1.3' 

Поскольку быстрые POD ( XWebView , Starscream ) могут быть добавлены только в качестве фреймворков, я должен использовать use_frameworks!

Но это делает все POD как фреймворк, включая Objective-C POD ( WBWebViewConsole ).

Но это вызывает проблему с Objective-C POD, но я не намерен создавать Objective-C POD в качестве рамки.

Так или иначе, я могу игнорировать пару POD из преобразования в качестве фреймворка?

Благодарю.

Обновить:

Как воспроизвести проблему?

Проблема с POD WBWebViewConsole

Запустите подключенный проект на любых устройствах iOS 8+, имеющих подключение к Интернету, когда он загружает html-документ из Google Drive.

в html doc … нажмите Общие / Информация / Предупреждение / Отладка / Журнал ошибок

введите описание изображения здесь

вы увидите какой-либо текст, появляющийся на странице html всякий раз, когда вы нажимаете любую из вышеперечисленных кнопок ….

Библиотека собирает журналы, созданные на html-странице …

Всякий раз, когда вы нажимаете кнопку отдельно от отображения некоторого текста на странице html, я пишу некоторый журнал в фоновом режиме.

введите описание изображения здесь

Теперь нажмите кнопку « Получить журналы» … и просмотрите журналы в Xcode IDE … вы увидите все журналы консоли, созданные в html

введите описание изображения здесь

Get logs-> – это встроенная кнопка super, наложенная на webview. Библиотека позволяет нам читать консольные журналы из wkwebview ..

Теперь в POD u раскомментируем следующие строки

 use_frameworks! pod 'PLCrashReporter' pod 'XWebView', '~> 0.9.5' 

и сделать pod install

затем вставьте следующий код поверх ViewController

 import WBWebViewConsole 

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

теперь вы запускаете проект на устройстве и нажимаете некоторые кнопки на странице html и нажимаете « Получить журналы», вы не можете видеть комментарии, созданные на странице html

Чтобы быть конкретным ниже, методы делегата, реализованные в WBWKWebView, не запускаются.

 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler - (void)wb_evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^)(NSString *, NSError *))completionHandler 

Но при создании экземпляра WBWKWebView и загрузке URL-адреса все необходимые делегаты этого класса увольняются.

Вышеупомянутые делегаты должны запускаться при записи журнала при нажатии кнопки на странице html

Когда JSBridge init, он добавит некоторые «UserScripts» в webview, источник которых загружен из [NSBundle mainBundle] в предыдущей версии. Но если он находится в рамках, файлы ресурсов находятся в пакете framework вместо mainBundle .

Таким образом, исправление находится в WBWebViewConsoleDefines

замените это

 inline static NSBundle * WBWebBrowserConsoleBundle() { return [NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], @"WBWebBrowserConsole.bundle"]]; } 

с

 inline static NSBundle * WBWebBrowserConsoleBundle() { return [NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [NSBundle bundleForClass:[WBWebViewConsole class]], @"WBWebBrowserConsole.bundle"]]; } 

На самом деле автор выпустил новую версию, у нее также есть исправление

pod 'WBWebViewConsole', '~> 1.0.2'

  1. pod install
  2. перезапустите Xcode и очистите свой проект
  3. снова строить и запускать

Примечание: Это невозможно. если вы используете_frameworks! все становится динамической основой.

  source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! pod 'WBWebViewConsole', '~> 1.0.1' pod 'XWebView', '~>0.9.5' pod 'Starscream', '~> 1.1.3' 

нет необходимости указывать цель c pod выше use_framework !.

Я использую оба объекта Objective-C и Swift вместе с моим проектом. Вы должны использовать директиву use_frameworks! если вам нужно включить стручки, написанные в Swift. Использование use_frameworks! директива с непередвижными стручками не вызывает проблем. Поместите директиву в верхнюю часть списков контейнеров.

Как правило, import ModuleName Objective-C должны работать только с использованием import ModuleName в любом быстром файле, который вы хотите использовать фреймворк, но если это не так, вы должны попробовать добавить мостовую-header.h в свой проект и #import объектно-c там есть заголовок.

Попробуйте это и обновите здесь о результатах.

Основанный на члене CocoaPods:

Это невозможно для общего случая из-за транзитивных зависимостей. Если Pod A строит динамически и зависит от Pod B, который строит статически, и приложение также зависит от Pod B, его невозможно построить, потому что либо Pod A будет пропускать символы Pod B во время ссылки, либо вы в конечном итоге с несколькими копиями Pod B. Есть, вероятно, больше сценариев, которые не будут работать.

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

Interesting Posts

Вход AudioSession с выхода bluetooth в линейный выход или динамик

Рамка не отражает ограничения автоматической компоновки после отклонения контроллера модального представления

iOS обнаруживает прямоугольники с камеры с помощью openCV

UIBarButtonItem изменение названия не работает

iOS 6 (iPhone / iPad) Загрузка изображения «Запрос потока тела исчерпан» с NTLM / Windows Authentication

iOS 7 Автоматическая компоновка Y Положение / высота Отсутствует ограничение

Как достоверно обнаружить, что UIViewController был уволен

Какао / iOS: как добавить файл в качестве вложения в документ PDF?

Не удается получить цвет текста UIPicker

UITests: deinit не вызывается

Pragma Mark отсутствует в Xcode SDK

Почему в shouldReceiveTouch мой распознаватель жестов всегда сообщает, что он прослушивается в том же месте?

Импульсная анимация на iPhone

Xcode 8.3 автозаполнение и подсветка синтаксиса не работают

iOS 7.1 По умолчанию цвет оттенка не изменяется для UISwitch

Давайте будем гением компьютера.