Как дать Xamarin. iOS ссылки на фреймворк StoreKit или игнорировать необходимость - PullRequest
1 голос
/ 11 апреля 2020

Я создал библиотеку связывания Xamarin. iOS для Flurry Analytics. Он прекрасно работает, за исключением того, что я не могу собрать в режиме релиза. Там написано

Native linking failed, undefined Objective-C class: SKPaymentQueue. The symbol '_OBJC_CLASS_$_SKPaymentQueue' could not be found in any of the libraries or frameworks linked with your application. (MT5211)

В файле Flurry.h я вижу, что для этого нужен StoreKit

/*!
 *  @brief Records an Apple Store transaction.
 *  @since 7.8.0
 *
 *  This method needs to be called before a transaction is finished and finalized.
 *  @note: Needs a 'required' dependency on StoreKit for this API to function correctly.
 *
 *  @param transaction an SKPaymentTransaction.
 *  @param statusCallback a callback gettign called when the status of  ID that is associated with the event
 *
 */
+ (void) logPaymentTransaction:(nonnull SKPaymentTransaction *)transaction
                statusCallback:(nullable void(^)(FlurryTransactionRecordStatus))statusCallback;

Но я никогда не буду вызывать этот метод. Я не включаю его в свой ApiDefinition.cs.

Есть ли способ создать приложение и сообщить Xamarin, что мне действительно не нужен StoreKit? Или есть способ просто включить ссылку на StoreKit.framework, хотя я ее не использую?

Спасибо!

1 Ответ

1 голос
/ 11 апреля 2020

Вы можете использовать свойство Frameworks в атрибуте LinkWith, чтобы принудительно включить фреймворки, на которые ваше приложение не ссылается напрямую, но требуется сторонней.

[assembly: LinkWith ("XXXX", .... , Frameworks="StoreKit")]

re: LinkWithAttribute.Frameworks

...