Apptentive: ошибка "неопределенные символы для архитектуры..." в проекте Cordova

Я пытаюсь использовать Apptentive в проекте Cordova. При создании моего проекта XCode я получаю сообщение об ошибке:

Undefined symbols for architecture arm64:
"_CGImageSourceCreateWithURL", referenced from:
  -[ATFileAttachment createThumbnailOfSize:] in libApptentiveConnect.a(ATFileAttachment.o)
"_kCGImageSourceCreateThumbnailWithTransform", referenced from:
  -[ATFileAttachment createThumbnailOfSize:] in libApptentiveConnect.a(ATFileAttachment.o)
"_kCGImageSourceThumbnailMaxPixelSize", referenced from:
  -[ATFileAttachment createThumbnailOfSize:] in libApptentiveConnect.a(ATFileAttachment.o)
"_OBJC_CLASS_$_QLPreviewController", referenced from:
  objc-class-ref in libApptentiveConnect.a(ATAttachmentController.o)
  objc-class-ref in libApptentiveConnect.a(ATMessageCenterViewController.o)
"_kCGImageSourceCreateThumbnailFromImageAlways", referenced from:
  -[ATFileAttachment createThumbnailOfSize:] in libApptentiveConnect.a(ATFileAttachment.o)
"_CGImageSourceCreateThumbnailAtIndex", referenced from:
  -[ATFileAttachment createThumbnailOfSize:] in libApptentiveConnect.a(ATFileAttachment.o)
"_CGImageSourceCopyTypeIdentifiers", referenced from:
  ___50+[ATFileAttachment canCreateThumbnailForMIMEType:]_block_invoke in libApptentiveConnect.a(ATFileAttachment.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Есть аналогичный вопрос о Stackru, но решение не сработало для меня:/

Похоже, у меня есть все необходимые зависимости, также я добавил -lApptentiveConnect флаг для компоновщика.

Каркасы

1 ответ

Решение

Похоже, что есть некоторые обязательные системные рамки, которые не связаны автоматически.

Вам необходимо установить связь с AVFoundation, CoreData, CoreGraphics, Foundation, ImageIO, MobileCoreServices, QuartzCore, SystemConfiguration, UIKit и слабыми ссылками StoreKit и CoreTelephony.

Шаг за шагом:

  1. Выберите ваш проект в навигаторе проекта в Xcode.
  2. Выберите вашу цель из списка целей.
  3. Выберите вкладку Build Phases.
  4. Разверните группу "Связать двоичные файлы с библиотеками".
  5. Нажмите кнопку + и выберите вышеупомянутые рамки (включая две слабосвязанные). Вы можете -нажмите, чтобы выбрать более одного.
  6. Когда вы вернетесь к списку библиотек, выберите "Необязательно" для двух слабосвязанных структур.

После этого вы сможете успешно строить и запускать.

Другие вопросы по тегам