StoreKit fails to purchase if CFBundleVersion not present in Info.plist

Originator:darvids0n
Number:rdar://9772334 Date Originated:14/07/2011
Status:Open Resolved:No
Product:iPhone SDK Product Version:4.3,5.0b1,5.0b2
Classification:Serious Bug Reproducible:Always
 
Summary: When purchasing a product (using [[SKPaymentQueue defaultQueue] addPayment:[SKPayment paymentWithProduct:product]]), StoreKit returns error code 0 and fails to process a payment if a CFBundleVersion string is not present in the application's Info.plist

Steps to Reproduce:

1. Link to StoreKit.framework in a Single-view application.
2. Remove the CFBundleVersion key-value pair from the project's Info.plist.
3. Set up an SKProductsRequest for a valid product, obtain an SKProduct from the SKProductsResponse and create an SKPayment with this product.
4. Assign the default payment queue's transaction observer to self, and implement methods to catch a failed transaction and display an error UIAlertView.
5. Attempt to purchase on the default payment queue using the SKPayment from step 3.

Expected Results: A UIAlertView prompting to confirm purchase of the product.

Actual Results: A UIAlertView containing a transaction failed error message, with error domain SKErrorDomain and error code 0.

Regression: I've only tested on the following versions:
SDK: 5.0b1, 5.0b2, 4.3
iOS: 4.2.1 (8C148), 4.3.3 (8J3), 5.0 (9A220p)

Notes: N/A

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!