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

4 Solutions collect form web for “use_frameworks! только для некоторых стручков или быстрых стручков”

Когда 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

Пустой, пока петля зависает в сборке iPhone

UISearchDisplayController с displaySearchBarInNavigationBar толкает представление результата вниз с помощью navigationBar.translucent = false

Выбранные кнопки UITableViewCell меняются на невыбранное состояние после прокрутки UITableView

Создать CVPixelBufferRef из CIImage для записи в файл

Ошибка sqlite3_prepare_v2 – Уже выполняется предыдущий запрос

Нарушение цикла удержания с сильным / слабым ядром

Как использовать cocoapods с детской площадкой?

UIPageViewController – страница с изменением страницы программно не работает на iPhone 4s / 5 / 5s

как исправить проблему с Viewport при переходе от пейзажа к портрету

Ошибка привязки Xcode после обновления до версии 8.0

Как я могу получить доступ к значениям RGB для UIColor?

Какая польза от Perform Selector в объективной разработке C / Iphone

Шифрование RSA с использованием открытого ключа

Как создать Caffe framework XCode 6.2, среду iOS 8.3

Система UICollectionViewCellLayoutSizeFittingSize возвращает неправильную ширину

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.