Добавление зависимости плагина Flutter с собственным iOS SDK как для целевого приложения, так и для расширения клавиатурIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Добавление зависимости плагина Flutter с собственным iOS SDK как для целевого приложения, так и для расширения клавиатур

Сообщение Anonymous »

Я создаю плагин Flutter [MyPlugin], который зависит от собственных собственных SDK (один для iOS, другой для Android). Затем мне нужно добавить этот плагин в качестве зависимости к приложению Flutter, которое я также разрабатываю [myApp]. В iOS это приложение имеет собственное расширение клавиатуры. И расширение клавиатуры, и приложение зависят от функциональности MyPlugin, поэтому мне нужно добавить эту зависимость к обеим целям. MyPlugin можно интегрировать в приложение Flutter (и, в частности, в iOS) с помощью Cocoapods.
В подспецификацию плагина я добавляю зависимость от собственного SDK [MyNativeSDK].
файл my_plugin/ios/my_plugin.podspec

Код: Выделить всё

Pod::Spec.new do |s|
s.name             = 'my_plugin'
s.version          = '0.0.1'
s.summary          = 'A Flutter plugin'
s.description      =  '[email protected]' }
s.source           = { :path => '.' }
s.source_files = 'Classes/**/*'
s.dependency 'Flutter'
s.dependency 'MyNativeSDK', '0.7.2'
s.platform = :ios, '15.0'

# Flutter.framework does not contain a i386 slice.
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
s.swift_version = '5.0'
end
Затем я пытаюсь добавить к обеим моим целям (в примере внутри плагина) зависимость от плагина (без нее код даже не собирается).
файл my_plugin /example/ios/Podfile

Код: Выделить всё

target 'Runner' do
use_frameworks!
use_modular_headers!

flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))

target 'MyKeyboardExtension' do
inherit! :search_paths
end
end
К сожалению, при запуске приложения у меня возникает несколько проблем:
  • Дубликационное предупреждение о том, что Realm связан дважды и неясно, какой из двух будет использоваться (в этом, я считаю, суть проблемы)

Код: Выделить всё

objc[4797]: Class _TtC10RealmSwiftP33_DFF53EDC9789EA51BB3D260332C05DF321ProjectionSchemaCache is implemented in both
/private/var/containers/Bundle/Application/429179EE-8537-4928-9751-F9329EA58C42/Runner.app/Frameworks/RealmSwift.framework/RealmSwift (0x104780768) and /private/var/containers/Bundle/Application/429179EE-8537-4928-9751-F9329EA58C42/Runner.app/Frameworks/MyNativeSDK.framework/MyNativeSDK (0x105894240). One of the two will be used. Which one is undefined.
  • во-вторых, приложение собирается и запускается, но всякий раз, когда я пытаюсь вызвать функциональность плагина внутри приложения (или из расширения клавиатуры) приложение аварийно завершает работу с сообщением BAD EXC.

Код: Выделить всё

Thread 31: EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff8)
Я считаю, что проблема связана с тем, что Realm связывается дважды, но мне неясно, связана ли эта «двойная связь» с необходимостью добавить зависимость MyNativePlugin в обе цели ( Runner и Keyboard Extension) или потому, что Realm уже дважды связан с MyNativeSDK.
Для справки: тот же MyNativeSDK отлично работает при интеграции в собственное приложение iOS, которое также имеет расширение клавиатуры: нет показывать какие-либо предупреждения и не выдавать никаких ошибок при использовании.

Подробнее здесь: https://stackoverflow.com/questions/786 ... -app-and-k
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»