2016-04-12 13 views
3

Apple'ın uzun bir süredir uygulama içi satın alma makbuzunu yerel olarak doğrulamak için örneğini kullanıyordum, ancak son zamanlarda sanal alan modu (üretim üzerinde çalışıyor) üzerinde çalışmayı durdurdu.Apple'ın VerificationController.m sanal uygulama içi satın alma girişinin imzasını doğrulayama başarısız oldu

AssertMacros: signature_blob_ptr->version == 2, file: ../VerificationController.m 
Transaction is invalid! 

sahip olduğu farklı version (3 yerine - transaction.transactionReceipt doğrulamak çalışırken

Belki iOS 9.3.1 ilişkili veya onların sunucu tarafında bir şey değiştirdik var, , bu başarısız olur 2) ve aşağıdaki yapı uymuyor belgesinin geri kalanı -

struct signature_blob { 
    uint8_t version; 
    uint8_t signature[128]; 
    uint32_t cert_len; 
    uint8_t certificate[]; 
} 

konusunda fikrin nasıl Apple'ın uygulama içi satın alma makbuzunun sürüm 3 doğrulamak için?

+0

Bu sorun hakkında daha fazla bilgi buldunuz mu? Ben de tam olarak aynı durumla karşı karşıyayım, benim üretim uygulamalarım da çalışmıyor ... Teşekkür ederim – brbgyn

+0

Kabul edilen cevap benim durumumda ne olduğunu yansıtıyor gibi görünüyor. – Kof

cevap

3

"Sürüm 3" imzasına baktım ve başarılı bir şekilde tersine mühendislik uyguladık.

tek değişiklik şimdi 256 bit yerine 128. blob'un kalanı açmak ve https://developer.apple.com/legacy/library/releasenotes/StoreKit/IAP_ReceiptValidation/index.html gelen kodu kullanarak beklendiği gibi doğrulamak gerektiğini var, imza uzunluğudur.

İmzalama sertifikası şimdi Apple'ın en son kök sertifikasını https://www.apple.com/certificateauthority/ adresinde bulabilirsiniz. Her iki versiyon destekleyebilir böylece ilk imzanın geri kalanını açma önce sürümüne 3.

Ben sürümünü elde öneririz için blob dahil imzalama sertifikasını doğrulamak için olandan ortak anahtarı kullanmanız gerekecektir 2 ve 3.

+0

Söylediğin gibi değiştim ama benim için çalışmıyor. –

+0

@HardikShekhat lütfen spesifik olun. Ne tür hatalar alıyorsunuz? Ne denedin? –

1

Apple kendi sunucu tarafı çeklerde iOS6 tarzı makbuzları amorti gibi görünüyor: şimdi canlı hala çalışır gibi görünüyor için https://forums.developer.apple.com/thread/44603

, ama biz muhtemelen yeni biçime

bakınız bağlantı üzerinden hareket etmelidir detaylar için.

0

Açıkladığınız aynı sorunu yaşadım. Apple'la faturaları yerel olarak doğruladığımda, her şey uyandırdı ve geçersiz fatura ile çalışmayı durdurdu. Bugün (14 Nisan 2016) En son iOS (iOS 9.3.1) sürümünü ve yeni xCode sürümünü (7.3) yükledim ve doğrulama tekrar çalışıyor. Kodumda hiçbir şey değişmedi!

+0

Bu sorun kullanıcılara iOS 9.3 ile oluyor, bu nedenle xcode'u yeniden yüklemek sorunu giderirdi, ancak onların değil ... Bu sorun hakkında daha fazla bilgi buldunuz mu? Teşekkürler – brbgyn

0

Temelde tüm uygulamalarımı elma kırdı. Güncelleme yapamıyorum çünkü sadece yeni cihaz boyutlarındaki tüm resimler bir gün veya dört saat sürecek ve iyi satmıyorlar. Ne yazık ki, ücretsiz uygulama içi satın alımlarda bile faturalama başarısız olduğu için, bunları ücretsiz olarak yapamıyorum.

Kendiliğe dikkat: asla sunucu tarafı işlevselliğini kullanan uygulamaları kontrolümün ötesinde bir daha yapma.

İlgili konular