Is it possible to distribute an unsigned build to QA via TestFlight so that testers can use Charles Proxy to view API requests/responses?
Related
I've been reading a bunch of Apple's docs, as well as many other SO questions, but haven't found the answer to this particular question.
I have an existing workflow in place for generating AdHoc Distribution builds for QA members and beta testers. Now that I've added support for push notifications, I'd like those notification paths to be able to be tested as well.
I'm under the impression that Developer builds, signed with a Development provisioning profile, generate tokens that for the sandbox/development APNS environment, and Distribution builds, signed with a Distribution provisioning profile (whether that be destined for AdHoc Distribution OR AppStore Distribution), generate tokens for the production APNS environment. I believe this can be confirmed by opening the different .mobileprovision files, and examining the aps-environment key.
I'd like to know if there's a way to have my AdHoc Distribution builds use the sandbox APNS environment, rather than the production APNS environment.
If I really wanted QA and beta testers to use sandbox APNS, would I have to somehow find a way to allow them to run development builds, rather than distribution builds?
Or are my assumptions about the way things work way off base? (referenced this post and this post)
I did found some mention to AdHoc in the context of APNS environments :
Note: There is a separate persistent connection to the push service
for each environment. The operating system establishes a persistent
connection to the sandbox environment for development builds; ad hoc
and distribution builds connect to the production environment.
It's taken from Technical Note TN2265.
I guess this note confirms that you can't use the sandbox env in AdHoc distribution.
Apple uses a different server for:
Apps signed with a Development profile
All other profiles (AdHoc, InHouse and AppStore). These are going via a Live Server.
I am working on Audio capture related task, I have downloaded speak here sample code from Apple site, I just want to run and debug about its functionality, when I am trying in my device, it is saying invalid provision certificate, I know what is provisional certificate, we registered for our application. My question is how to run sample projects in device. Is there any way?
please help...
To install application on any iOS device you have to have a developer account and it is not free.
You can go to this website
http://jailcoder.com/
What this does program does is patch SDKSettings.plist inside of Xcode and also patches your project (just adds a run script) and install on your device with fake provisions certificate. This is all fully reversible. You will need to have your device jailbroken with appsync installed.
Then you can just build for device and it'll run it on your device instead of the simulator.
To install application for development or distribution on iOS device you have to "Enroll" or "BUY" to Apple's Developer program or Enterprise program.
Developer Program
Its have Developer certificate as well Distribution certificate but its follows UUID means device ID to install on device.
Enterprise program
Its have Developer certificate as well Distribution certificate but UUID means device ID is optional for in-House distribution provision profile to install on device so you can install on any device.
I'm building an iOS app that uses push notifications, and I'm finally ready to submit it. Before I do, I'd like to test out push notifications off the Production server, to make sure everything is working correctly. Thus far, the sandbox environment has been working fine.
After doing quite a bit of searching, I learned that switching the servers over from ssl://gateway.sandbox.push.apple.com:2195 to ssl://gateway.push.apple.com:2195 wasn't enough, and that production push tokens are different from sandbox push tokens. Instead, apparently I need a new provisioning profile with Production entitlements, new certs installed on my server, and to re-build my app with said profile so that it knows to create the correct push tokens.
So, after going through all the steps, I can't even make a build run on my phone; XCode says
This profile cannot be installed on devices
Here are the steps I've taken. If I'm missing something please let me know:
In my iOS Developer Center, I've made sure that my AppID is "enabled for production" under the Apple Push Notification Service.
Also in my iOS Developer Center, I've created my Production Push SSL Certificate, gone through the necessary conversion steps, and installed the resulting .pem on my server.
Per the instructions, I've create "a new provisioning profile containing the App ID you wish to use for notifications." I've done this by going to Provisioning, and clicking on the "Distribution" tab, and making a new profile. I've confirmed that "production" is set under the "entitlements" section of this profile.
I've selected the provisioning profile in my project settings. I get the message
This profile cannot be installed on devices
and I'm stuck.
Build an ad-hoc distribution version of your app, and install it on your own device. That will use the production APN gateway and certs.
You cannot install an app compiled with a appstore distribution (production) profile on a device. Only Apple reviewers can do that. you can only test push on an app compiled in development mode and using sandbox server.
If you want to test production servers, you must compile the app using an AdHoc distribution profile enabling the devices you want to do the test. Clearly you must recompile and the send the app for review using the App Store distribution profile.
Can anyone enlist the all deployment methods along with some description and requirements?
I know there are methods to use iTune and methods to avoid iTunes, you can use App Store or not, etc.
Four Options Plus the obvious webapp choice:
Developer Deploy: Deploy from XCode using the build and run function to a connected device. The provisioning profiles is only valid for a max of three months, and it's required to have the device connected to the computer to run. Really, only for debugging.
Ad-Hoc Deploy: Signed with a Ad-Hoc Distribution Certificate for up to 100 pre registered devices. Requires the UDID of all those devices perfor packaging. Can be deployed using either itunes on the device users computer of via a link that points to the right safari file. Check this blog for more info about ad-hoc install per Mobile Safari Parade of Raind
Appstore: Well, yeah. It's kinda, you know. Right.
Enterprise Appstore: Grab a Enterprise Certificate by apple, costs 300$, and you can do the same you can do with ad-hoc Deploys, but without preregistering the devices. However, you're only allowed to use this method for In-house (inside the company) deployments!
Try this:
[PDF] http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf
http://www.airplaysdk.com/docs.php?url=/main/programmertools/mkbfilesettings/deploymentoptions.html
Quick deployment of an app after build without running
I was under the impression that when you use a development provisioning profile for a build of an app, only the specified developers can deploy that build to a phone.
But I just deployed a build that uses a development profile to a phone using Xcode Organizer, even though I'm not one of the valid developers for that profile. One of my colleagues, who doesn't even have Xcode installed, did the same with his phone using iTunes.
In that case, why not use a development provisioning profile for distributing your app to e.g. your QA team, instead of ad hoc distribution?
EDIT: Please read the part in bold carefully before answering. I'm not asking a basic "how does this work" question. I've made a lot of development, ad hoc, and app store builds, and now I find that I seem to have made some wrong assumptions.
There's one situation in which you need an Ad Hoc profile, and that's when you want to test Push Notifications.
If you test Push Notifications on a Development Provisioning Profile, your push notifications need to be sent using the Development Push Notification Certificate for your SSL connections to Apple's sandbox APNS server.
If you want to test Push Notifications using your Production Push Notification Certificate and the live APNS servers, you'll have to deploy your app to a device using a Distribution Certificate and Ad Hoc Provisioning Profile (which includes doing the Entitlement.plist steps, which you can ordinarily skip if you were only using Developer Provisioning Profiles).
Also note that when you deploy using an Ad Hoc profile, your device token will be different from the one you use when you're using the development profile. This the recommended way to test APN because there's no back end changes that need to be made between the Ad Hoc build and the final live deployment on the AppStore.
Ad-Hoc is not for developers, but for testers. Who do not have iPhone SDK / XCode, iTunes only.
(The answer is: you can install ad-hoc app without developer certificate, and can't do it with development app)
Method 1: Install from XCode
The Development Provisioning Profile requires you to run the app (initially) from within XCode.
This has the side-effect of marking the device as being used for development, but also requires you to connect the iPhone/iPod Touch to the machine running XCode. Once you run the app from XCode, the app is installed on the device and you no longer need to be connected to the machine to run it. (Until you want to update the app.)
Method 2: Install from iTunes
An Ad-Hoc provisioning profile allows you to give the app to anyone and let them install it themselves using iTunes. You send them:
the app, and
the Ad-Hoc Provisioning Profile
They select these two and drag them onto iTunes. Then sync.
Later, you can give them an updated version of the app only (without the Ad-Hoc Provisioning Profile, since they've already installed that on their device) and they can drag the new app onto the iTunes icon to install the new version.
One limitation to Ad-Hoc distribution, is that it requires you to enter each Device ID into the iPhone Development Portal. And there is a limit to 100 device IDs per year (you cannot erase any IDs, until your next year begins -- only add them). The 100-ID limit will not be a hindrance for most developers, just keep in mind that you need to get the device ID ahead of time, before you create the Ad-Hoc Provisioning Profile to send to the person you want to install your app.