2014-12-09 2 views
4

Я использую VerificationController.m, предоставленный Raywenderlich для проверки чеков для покупки ap. Он отлично работает для XCode5, но в XCode6 он дает количество ошибок. вероятно, из-за C++ кода, как:XCode 6 verificationController.m выпуски

  • пропущенного код для метода декларации
  • @end должен появиться в Objective-C
  • контекста Конфликтующих типов для 'checkReiptSecurity'

    может кто-нибудь сказать мне, что нужно было сделать?

Edit: Вот ошибки скриншоте Errors

Errors

enter image description here

+0

Не могли бы вы включить фактические ошибки? –

+0

Вы добавили файлы NSData + Base64.m и NSData + Base64.h в эту папку в witch VerificationController.m. ? если в вашем проекте уже есть файлы NSData + Base64, то для них создаются отдельные папки – aBilal17

+2

У меня такая же проблема, я решил ее, изменив последовательность методов. [Здесь] (http://stackoverflow.com/questions/26890349/in-app-purchase-receipt-verification-in-ios8/26891519#26891519) - это мой ответ. Вы узнаете какое-либо другое решение? –

ответ

-2

Вы загрузили пример кода? Я загрузил образец кода и его работу отлично на моей стороне. Кажется, что вы пропустили или добавили в свой код дополнительную карту } or {.

Возможно, это произошло, когда вы пытались прокомментировать этот код [UIDevice currentDevice].uniqueIdentifier;, потому что изначально эта строка выдает ошибку.

+0

Можете ли вы дать ссылку на образец кода? код, я использую работал отлично в Xcode 5 – Haris

+0

@Haris я говорю о raywenderlich пример кода ... Вы можете скачать его из http://cdn1.raywenderlich.com/downloads/InAppRagePart2Finished.zip если вы сталкиваетесь ошибка, то комментарий выше заданных строк –

+0

Ваша проблема решена или нет? –

4

Вы исправили это? Я столкнулся с одной и той же проблемой, поэтому я оставлю свое исправление для всех, кто придет посмотреть. Оказывается, в более новых версиях Xcode вам больше не разрешается добавлять C/C++-код в объектный-C-контекст. Поэтому я переместил объявления для unsigned int iTS_intermediate_der_len, unsigned char iTS_intermediate_der[], char* base64_encode(const void* buf, size_t size) и void * base64_decode(const char* s, size_t * data_len) в начало файла, над тегом @implementation.

+1

вы спасли мой день ... thanx +1 –

+0

Да, спасибо !!! Один совет для любого, кто в этом нуждается: порядок этих частей имеет значение, поэтому, если вы переместите все на вершину, убедитесь, что инструкции 'import' находятся на самом верху над ними и пытаются перетасовать их приказы, пока они не будут работать. Взял несколько попыток, но я, наконец, получил работу! – Nerrolken