Test iPhone in-app purchases on a different bundle? - iphone

We have a group of beta testers for iPhone app. Recently, we added in-app purchases to the app.
Before this, we would send out ad hoc builds to beta testers using a separate bundle ID and name so that they could have the store build and the ad hoc build on their phones.
However, it seems like we have to build the ad hoc copy with the same Bundle ID to test in-app purchases, and this means we can't send out a seperate beta copy - our beta file (annoyingly) overwrites the user's store-bought app.
Is there any way to test in-app purchases in a different bundle ID? Do I need to set up fake, test in-app purchases for the test build too?

I'm pretty certain you do-upload to ITC and then reject the binary.

I think if you change the binary's product name it will install as two separate apps, but I'm not certain on this.
So you itunes one will be foo and your dev one could be foobeta

Related

Export iPhone App for WWDC Submission

I will shortly be applying for the WWDC Student Scholarship. I have been working on an app that I would like to link to in my application. The app is not currently on the App Store.
When I export the app by exporting the .ipa file through Xcode, and email it to a friend for testing, he is unable to transfer the app from iTunes to his iOS device.
I can set up an Ad Hoc profile for him so that he can test it, but I obviously don't have information affiliated with iPhones Apple will use to review the app once I submit it to them.
What must I do to allow the app to run on any iOS device without setting up Ad-Hoc accounts for each?
Have you looked at the submission page? Login required: https://developer.apple.com/wwdc/scholarships/application/
It says your app must be on the App Store. First submit it to the App Store, then once it is approved you can apply for the student scholarship.
Without the device ID of the test phone, you can't distribute your app in development mode. One thing you could do is setup a free TestFlight account, include TestFlight in your app (takes about 10 mins to setup), and then include the TestFlight tester signup link with your application. Then if they want to try your app they can follow that link to register their device with TestFlight, then you'll get alerted when they do that and you can recompile your app with their device id and push it to them via TestFlight.

app store distribution provisioning profile from different account than the one to submit to itunes

I have developed an iphone app for a client. Can I code sign app against the appstore distribution provisioning profile generated from my apple developer account, send it to the client & let him submit it to apple itunes from his apple developer account?
As i learned from my experience, this is not possible. You need to have the provisioning profile generated from the same developer account which you want to use to publish to the appstore.
Basically yes, but look into the xcode 4 archive organizer. You can share an archive with another Xcode. From there it seems to be possibe to do a re-signing. Since your client must use anyway his xcode for submitting to the AppStore, this might be a way to go.

iphone - Is it necessary to create new app in itunes connect for in-app purchases

I'm already having a free application in app store (itunes connect)
Now I want to add in-app purchase for that.
So, I created a new product in in-app purchase and trying to test it. Its saying the product id is invalid.
But I created new app in app store with product id's and when I'm testing, its working fine.
Is it necessary to create new app to distribute my old app with in-app purchases. Can't I add in-app purchase for already existing application?
Yes, you can add in-app purchases to existing apps that previously did not support them.
Is your device jailbroken? If so, you need to revert the jailbreak for IAP to work.

Can I change the Bundle Identifier in my app after it's been approved?

I've got my app approved a while ago and used the * provisioning profile so I created somehting like:
com.mydomain.MyApp
but now I have the necessity of adding push notifications and I can't due I am using the * provisioning profile and it needs to have its own app ID and profile.
How should I proceed in order to achieve an app update without breaking anything
The bundle identifier for an app must always remain the same between updates, but the AppID can actually be different. So all you need to do is create a new AppID that used the same bundle identifier as the original app instead of a wild card.
Apps that use a wildcard still need a normal bundle identifier. The wildcard AppID lets you use any bundle identifier you like, but it still needs one.
There used to be an Apple article about this:
but it is no longer available online However, an archive is available.
You can't change the CFBundleIdentifier of a released app if you want to release updates for it, the App Store will automatically reject it when you upload. So...
I needed to enable iAds on an app previously developed with a wildcard App ID. Here's what I did:
I have a wildcard App ID of <AlphaNumeric>.* which my app currently uses, and my app has a CFBundleIdentifier of com.companyname.mygame.
Created a new App ID of <AlphaNumeric>.com.companyname.mygame.
Created new development and distribution provisioning profiles that include the new App ID.
Download the new provisioning profiles to Xcode and my devices.
I was then able to compile the App with the new non-wildcard distribution profile, which meant on upload I could enable iAds (or Push for you). The CFBundleIdentifier didn't change so the new compilation appears as an update to the existing app.
I can confirm this process worked without issue.
Under Frequently Asked Questions in the document entitled "Technical Note TN2259," which is "Adding In-App Purchase to your iOS and Mac Applications," there's this bit
Question: My iOS application is currently signed with a Provisioning Profile
that uses a wildcard App ID. How do I enable my App ID to support
In-App Purchase?
Answer: Read the Creating and Configuring App IDs section of
the iOS Team Administration Guide to learn how you can enable your App
ID to support In-App Purchase.
The link points here, and there's a section called, "Updating Your App to Include APNS, iCloud, In-App Purchase, or Game Center Requires an Explicit App ID"
That said, I don't know (yet) at what point the app takes on the new App ID. Is it when you upload for review, before that, or when it has been approved? I am working on this problem now, so I might be able to add to this answer soon.
Edit: The explicit app id only affects the piece of software you are testing and has, essentially, nothing to do with iTunes Connect whatsoever. This means that if you are testing in-app purchases, the piece of software that's running (your app) has to have a provision profile based on a cert that is app specific. What happens in iTunes Connect is totally irrelevant.

Testing iPhone in-app purchases in ad hoc distribution mode

My iphone application has in-app purchases and those have been tested using the iTunes Connect test user account. I'm now distributing it via ad-hoc distribution to beta testers. Is there any way to make the purchases "live" so that they can test them with their real iTunes accounts and not have to use the test account? I'd clearly like to test this before formally submitting it to the iTunes store
I think they only run in sandbox mode via ad-hoc. You can't test it, but it should all work if it works through the test account.
You can't use production products, but you can create test user accounts and distribute them so that your beta testers can test the in-app purchase components. It's a bit tricky because they have to use the Settings App to log out and then log in from inside your application with the test user account.