как включить внешнюю библиотеку в приложение iOS?

avatar
zeus
8 апреля 2018 в 11:52
196
1
1

В FirebaseCore.framework у меня есть эта декларация:

@interface FIRApp : NSObject

+ (void)configure;

@end

Я объявляю в delphi такой объект:

  FIRAppClass = interface(NSObjectClass)
  ['{37BEFC11-8AE6-4312-971D-53BF9D8DB22A}']
    procedure configure; cdecl;
  end;
  FIRApp = interface(NSObject)
  ['{69F89279-48F0-4276-B337-37FE79821507}']
  end;
  TFIRApp = class(TOCGenericImport<FIRAppClass, FIRApp>) end;

Теперь, когда я запускаю TFIRApp.OCClass.configure, я получаю сообщение об ошибке "Не удалось найти FIRApp класса ObjectiveC"

Что мне не хватает? как включить в мое приложение для iOS FirebaseCore.framework и реализовать FIRApp?

Источник

Ответы (1)

avatar
Dalija Prasnikar
8 апреля 2018 в 12:13
3

"Не удалось найти FIRApp класса ObjectiveC"

Эта ошибка означает, что класс FIRApp не был полностью связан с вашим приложением. Для этого вам нужно добавить флаг -ObjC в Параметры проекта -> Компилятор Delphi -> Связывание -> Параметры, переданные компоновщику LD

enter image description here

zeus
8 апреля 2018 в 13:31
0

спасибо, Далия, однако, когда я добавляю -Objc, у меня теперь другая ошибка, но на этот раз во время компиляции: [Ошибка DCC] E2597 Неопределенные символы для архитектуры armv7: Ошибка: «_OBJC_CLASS_$_SKPaymentQueue», ссылка из: objc-class-ref в C :\Dev\Alcinoe\lib\ios\firebase\FirebaseAnalytics.framework\FirebaseAnalytics(FIRAInAppPurchaseTransactionReporter_780d0e22c66d661ab61b3e74b77b38bd.o); ( coderhelper.com/questions/49712340/… )

Dalija Prasnikar
8 апреля 2018 в 13:36
0

Извините, я не могу вам помочь с этой частью... если у вас есть StoreKit, он должен работать, но это не так... Я знаю, у меня похожие проблемы... Пробовали ли вы обновление 10.2.3? Я не говорю, что это сработает... потому что, скорее всего, не сработает, но кто знает...

zeus
8 апреля 2018 в 14:46
0

Спасибо, Далия, нет, не пробовал 10.2.3, только 10.2.2, потому что миграция сложна, но я не думаю, что что-то изменилось в 10.2.3, или я ошибаюсь?

Dalija Prasnikar
8 апреля 2018 в 17:21
0

Исправлен один неприятный сбой для Android, связанный с финализацией контекста OpenGL.

zeus
8 апреля 2018 в 18:14
0

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

Dalija Prasnikar
8 апреля 2018 в 18:17
0

да. Я думаю, что 10.2.3 стоит обновить только из-за этого. есть другие вещи, исправленные, но я не обращал пристального внимания. И вроде ничего не сломали. По крайней мере, ничего существенного :) Конечно, это не означает, что ваша текущая проблема будет решена с обновлением. У меня похожие проблемы с Firebase и 10.2.3.

zeus
8 апреля 2018 в 18:35
0

ахах, я исправляю эту ошибку с того дня, как я установил выпуск 2;) также это не очень важная ошибка, потому что она появляется только тогда, когда мы закрываем приложение, и нас действительно не волнует, кроме как в отладчике, любое исключение во время закрытия (на iOS, например, закрытие даже никогда не будет вызвано).

Dalija Prasnikar
8 апреля 2018 в 18:46
0

На устройстве Android у меня эта ошибка вызвала видимый сбой.

zeus
8 апреля 2018 в 18:51
0

вау, что-то я не знал! я сделаю более интенсивный тест, так что...

zeus
8 апреля 2018 в 18:53
0

но в любом случае обновление очень и очень болезненно, удалите старую версию, чтобы переустановить новую сверху, источник delphi изменится, и вы должны все переотладить, и если что-то пойдет не так, вы находитесь в ##{~, потому что нужно удалить переустановить старую .. , очень болезненный процесс! хуже они могут сделать