Использование фреймворка Objective C, который находится внутри фреймворка Swift, в проекте Xamarin iOS.

  • У меня есть фреймворк Objective C. (Эта структура правильно работает с проектом Swift)
  • Тогда у меня есть фреймворк Swift. Этот фреймворк использовал ранее упомянутый фреймворк Objective C. (Эта среда Swift также работает в проекте Swift)
  • Теперь я пытаюсь использовать эту структуру Swift в проекте Xamarin iOS.
  • Я создал проект Binding Library в своем проекте Xamarin iOS, и в Native Reference я добавил как эти фреймворки Swift, так и толстые файлы фреймворка Objective C.
  • Я также соответствующим образом обновил файл ApiDefinition.

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

Ниже показано, как я пытаюсь получить доступ к методам этих фреймворков внутри моего проекта Xamarin iOS.

using BindingSwift;
// More codes here

        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var myClass = new AroshaMathPerformer();
            var result = myClass.DoTheMath;
            Console.WriteLine("# Result = " + result);
        }

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


person AnujAroshA    schedule 25.05.2019    source источник
comment
Вероятно, вам следует подробно описать, как вы связываете фреймворки (динамически или статически).   -  person Claus Jørgensen    schedule 25.05.2019


Ответы (2)


Предполагая, что все, что вы сделали, находится в вопросе, ожидается, что это не сработает. Библиотеки Swift официально не поддерживаются в Xamarin.iOS. Некоторые люди заставили их работать с помощью следующих шагов: https://medium.com/@Flash3001/binding-swift-libraries-xamarin-ios-ff32adbc7c76

person Ivan Ičin    schedule 25.05.2019
comment
Это хороший пост. Но у меня есть предыдущий опыт использования фреймворков Swift в приложениях Xamarin для iOS. Итак, у меня есть представление о содержании этого сообщения, а также я поделился своим опытом в одном из моя запись в блоге. Чего я не пробовал, так это того, что фреймворк Swift, который я использовал для привязки, имеет ссылку на другой сторонний фреймворк Objective C. Еще один мой подозрительный момент - сценарий несоответствия версии VS для Mac и версии Xcode. - person AnujAroshA; 26.05.2019

В таком случае вы можете найти настоящую причину, зайдя в

Настройки -> Конфиденциальность -> Аналитика -> Данные аналитики -> И найдите файл журнала с идентификатором пакета и датой/временем сбоя.

Ошибка, показанная мне, была связана с @rpath/, но на самом деле она устранена после подписания пакета с действительным профилем подготовки.

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

person AnujAroshA    schedule 06.06.2019