Библиотека Stripe iOS в приложении Swift приводит к нераспознанной ошибке селектора

Я пытаюсь добавить Apple Pay в приложение Swift с помощью Stripe. Я следую руководству по Stripe. Я создал демо-репозиторий, чтобы продемонстрировать обнаруженную ниже ошибку.

Я добавил библиотеку Stripe, соединил необходимые библиотеки Apple, добавил заголовок моста Objective-C, добавил публикуемый ключ Stripe, включил макрос Stripe Enable ApplePay и включил право ApplePay.

Проблема возникает, когда я пытаюсь создать фактический запрос на оплату:

 var request: PKPaymentRequest = Stripe.paymentRequestWithMerchantIdentifier("merchant.fm.kenneth.donate")

Мой репозиторий объясняет это подробно.

Когда я создаю приложение, возникает следующая ошибка:

2014-11-09 13:59:33.576 stripeTest2[22128:904179] 
+[Stripe paymentRequestWithMerchantIdentifier:]: 
unrecognized selector sent to class 0x10910a210

2014-11-09 13:59:33.579 stripeTest2[22128:904179] *** 
Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '+[Stripe paymentRequestWithMerchantIdentifier:]: 
unrecognized selector sent to class 0x10910a210'

Я предполагаю, что должна быть проблема с переходом в код Objective-C в библиотеке Stripe. Любая помощь будет принята с благодарностью.


person Kenneth Transier    schedule 09.11.2014    source источник
comment
Вы это проверяли? stackoverflow.com/questions/24002369/   -  person bpolat    schedule 10.11.2014
comment
Эта проблема решена? Я настраиваю Apple Pay в приложении Swift и сталкиваюсь с той же проблемой. У меня есть последние версии всех библиотек, и эта проблема закрадывается во время выполнения. Есть более конкретные предложения, как это исправить?   -  person dmitryame    schedule 28.05.2015


Ответы (2)


Это интересный случай. Кажется, что __IPHONE_OS_VERSION_MAX_ALLOWED не определен для приложений на чистом Swift, поэтому код ApplePay не компилируется.

Поскольку эта проверка не является строго необходимой (если вы #define STRIPE_ENABLE_APPLEPAY, но ваш базовый SDK старше iOS8, это в основном ошибка программиста), я взял эти проверки из нашего SDK (я инженер в Stripe). Если вы возьмете последнюю версию (2.2.2), все должно работать для вас (я клонировал ваше репо и протестировал это изменение, и все выглядит нормально).

Спасибо, что сообщили нам об этом!

Джек

person jflinter    schedule 16.11.2014
comment
Я все еще получаю это исключение при использовании последней версии (4.0.3), найденной здесь github.com/stripe/stripe-ios/releases/tag/v4.0.3. Мой проект очень быстрый. Есть ли другое решение или что-то, что мне не хватает? - person zingle-dingle; 10.06.2015
comment
Вы видите этот сбой в симуляторе или только на устройствах iOS? Пара вещей, которые стоит попробовать: - убедитесь, что Stripe.framework указан в списке встроенных двоичных файлов на вкладке «Общие» в настройках вашего проекта. - убедитесь, что вы слабо связываетесь с PassKit.framework - person jflinter; 18.06.2015

Также помогает, если, как я обнаружил, вы добавляете «Stripe + ApplePay.h» в свой заголовок моста.

person Dylan Knight    schedule 12.12.2014