Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.3.0
-
Qt 5.3 on iOS 7.1.1 using QtPurchasing 1.0
Description
I am using QtPurchasing for in-app purchase. Using a test user (sandbox), I purchased an item which worked fine. However, now that the item is purchased, the module keeps crashing as soon as the identifier is set - before the iTunes login dialog appears.
import QtQuick 2.2 import QtQuick.Controls 1.0 import QtPurchasing 1.0 Item { Store { id: store Product { id: product type: Product.Unlockable } } Button { text: "Crash me" onClicked: product.identifier = "com.mycompany.app.item_12345" } }
Clicking the button sets the identifier and the app crashes immediately and then the iTunes login dialog prompting me to log in appears. It makes no difference whether the identifier is set right away or later like in the example.
2014-06-24 15:55:14.235 ams[4785:60b] *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x16fbd420> was mutated while being enumerated.'
Backtrace:
0 __pthread_kill __pthread_kill 0x38fd71f0 1 pthread_kill pthread_kill 0x3903f7b6 2 abort abort 0x38f87ff8 3 <redacted> <redacted> 0x383d698e 4 <redacted> <redacted> 0x383ef6e6 5 <redacted> <redacted> 0x38a22f7c 6 <redacted> <redacted> 0x383ed1b2 7 __cxa_throw __cxa_throw 0x383eca08 8 objc_exception_throw objc_exception_throw 0x38a22dba 9 <redacted> <redacted> 0x2df5d9f0 10 -[InAppPurchaseManager processPendingTransactions] -[InAppPurchaseManager processPendingTransactions] 0x23ba08 11 QIosInAppPurchaseBackend::registerProduct(QIosInAppPurchaseProduct*) QIosInAppPurchaseBackend::registerProduct(QIosInAppPurchaseProduct*) 0x23c88e 12 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const 0xb8267e 13 QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) 0xb822d2 14 -[InAppPurchaseManager productsRequest:didReceiveResponse:] -[InAppPurchaseManager productsRequest:didReceiveResponse:] 0x23bd86 15 <redacted> <redacted> 0x307228a6 16 <redacted> <redacted> 0x38f0bd52 17 <redacted> <redacted> 0x38f0bd3e 18 _dispatch_main_queue_callback_4CF _dispatch_main_queue_callback_4CF 0x38f0e6c2 19 <redacted> <redacted> 0x2df28678 20 <redacted> <redacted> 0x2df26f44 21 CFRunLoopRunSpecific CFRunLoopRunSpecific 0x2de917a8 22 CFRunLoopRunInMode CFRunLoopRunInMode 0x2de9158a 23 GSEventRunModal GSEventRunModal 0x32dbb6d2 24 UIApplicationMain UIApplicationMain 0x307f0890 25 main main 0x1fc618 26 start start 0x51a88
Attachments
For Gerrit Dashboard: QTBUG-39839 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
130375,1 | iOS: Don't modify an NSMutableArray while iterating it | master | qt/tqtc-qtmobileextras | Status: MERGED | +2 | 0 |