How to disable the iPhone app on a testing device from apple developer member account - iphone

How to disable an iPhone app running on a testing device without deleting it, for which the ipa file has been generated using a provisioning profile for the testing device. Assume I have access to the paid member account.
If I make the profile invalid, Does the app still works on the device ?
I am naive to the iPhone development. I am sorry If my question is improper one.

I guess that when you make a IPA with a profile from the provisioning center, it comes embeded within the IPA. So, theoretically, if you remove a device from the provisioning center, the change will not reflect on previously installed devices.
Just a guess.
If that's right, the only way I see to do it dynamically, is if you make by yourself an auth system for the app testers, requiring a password or whatever that will be validated online for the app be able to run.

in apple developer provisioning center, when you make a profile, it asks you to select devices for that profile from your list. app will run on listed devices only, you can remove/add the devices by modifying that profile and then downloading profile and making a IPA with that profile.

I think what you are asking is is it possible to remotely disable / wipe an app that you have previously sent to a tester.
I believe that is impossible, because assuming the tester managed to make it run at least one, he/she already has the provisioning profile and the app to match that provisioning profile. Therefore unless the tester changes that setup, there is nothing you can do to revoke the access.
On the other hand, I believe remote wipe is possible under the enterprise developer programme though.

Related

Questions about Ad Hoc distribution

I am trying to set an Ad Hoc distribution in order to test an iPhone app with some remote users. And I haven't found any good and clear tutorial up to now. By reading bits and pieces on Apple documentation and others I am now able to put the app on my iPod device doing as much as I can "as if I was remote user"; meaning I can put my app on the device without going through XCode. But when I send the xxx.mobileprovision an the app file to a remote user, things go wrong. The user gets a message saying that there is no proper signing authority.
As far as I know I included myself and the other users in the list of device UDIDs.
One thing unclear to me related to this issue is :
In the iOS Provisioning Portal section Certificates I can see one tab "Development" and another one "Distribution", I am not sure of what the difference is. I have one item in each tab, but I see no "Add" button to add more items and try something different. Is one of those two tabs important for my problem above?
Thanks.
The tabs are very important.
With certificates, Development is the Key Chain cert that grants you permission to build in Xcode directly to an iOS device connected by cable. Distribution is the Key Chain cert that grants you permission to build in Xcode app that may be installed onto an iOS device remotely.
Development is the mobile provisioning profile that has the list of registered an iOS devices you may directly build an app onto connected by cable.
Distribution is the mobile provisioning profile that has the list of registered an iOS devices you may send an app to someone else and have them install it on a registered iOS device remotely without using Xcode.
You want to do an Archive which will require a Distribution mobile provisioning profile. I might add that if you are sending an mobile provisioning profile in an email, you will likely want to Zip it with the .ipa since the profile can often get corrupted with in certain email clients.
Here's a link to another question that has very thorough step-by-step instructions for creating ad-hoc distribution profiles: how do you beta test an iPhone app. The instructions have changed slightly with newer Xcode versions, but this is still the best walkthrough I could find.

Can I put my own app on just my iphone?

I want to create an iphone app for personal use.
Can I just put it on my phone and use it or do I have to go through the iphone store process to get it on my phone?
Thanks.
As long as you have a valid developer certificate to sign the app and you have a development provisioning profile and your device is registered as a test device. For that you need to be registered as an iPhone Developer Program member.
In other words, you have to pay Apple $99 to be able to put your own app on your own phone.
Yes, you can run your own apps on your phone. You need a paid iPhone developer account though.
Purchase a developer account for $99 from Apple. Create a developer provisioning file and build to your device. The annoyance will be the provisioning file is good for a limited time, requiring you to update it periodically and rebuild.
To run an app on an un-jailbroken iDevice, it needs to be signed. Registered developers get personal signing keys (and also have to register the device) which lets them test their apps. They also can do ad-hoc distribution, meaning compiling and signing an app so that other people can use it without being registered. This is limited in the number of users who can use it though.
Enterprise developers can sign apps for internal distribution, sorta like unlimited ad-hoc, but that program is expensive and unnecessary for what most people do.
As pointed out by others here, you can sign up as a developer to temporarily install apps on your device for testing purposes, but you would constantly need to renew your phone's installed provisioning profile to keep using it over time.
The only way to permanently put your own application on an un-jailbroken phone is to publish it to the app-store and download it through iTunes. Of course, Apple would need to accept the app so you would need to face the same regulations as other apps sold via iTunes, and your app would be public to everyone.

Code Sign Error When Building iPhone Application

I am new to iPhone development. I just registered with Apple for the iPhone Developer Program. When I try to build, I am receiving an error:
Code Sign error: a valid provisioning profile matching the application’s identifier could not be found
I'm not sure what is wrong. I tried browsing the Internet but I get confused. Can anyone help me with what I should do?
At first it seems a complex process, but it's pretty straightforward when you've been through it a few times.
In a nutshell the process is this:
(I'm assuming you've set up your iPhone/iPod touch as a test device)
Via the iPhone Developer Portal
Create an App ID
(give your application a name, this is just for reference on the website and nothing to do with your own build of your application)
enter a string to identify it, like com.yourcompany.appname
(this is important and should be the same as in your .plist file inside Xcode)
Click and Save this
Go to Provisioning
There are 2 provisioning profiles you'll need
a) development - so you can install your application on a test device (i.e. your iPhone / iPod touch)
b) distribution - if you want to sell the application via the App Store
You can create the profiles by selecting your App ID, created in the previous step, from the drop down list and clicking Save
In a few moments (usually, though it can be longer) the certificate is available for download. Download this to your Mac and drop it onto the Xcode icon. Sometimes the development profile doesn't work for me like this and I drop it directly into the Organiser window in Xcode that shows my connected device.
Besides, if you are in a team account, team admin need to edit Development Provisioning Profiles, and add modify your certificates privilege.
In Xcode inside 'Edit Project Settings' you can select the certificate you wish to code sign with. Usually for debug I sign with the development certificate. Follow the instructions on the apple site and clone the release profile and call it something like release and sign this with your distribution profile. (You won't be able to load the app onto your phone with the distribution profile selected)
Make sure you select the target device as Device and not Simulator when building for the App Store!
Hope that helps, it's from memory so apologies if I've skipped some small steps.
xcode top left corner make sure you're running as "similator" "iphone"
Did you set up an iPhone provisioning profile for either development, ad hoc distribution, or app store distribution?
If not go to the iPhone developer program portal, which is linked from the developer.apple.com/iphone. Apple has provided a great series of video tutorials.
Just make sure you install the certificates or the profile won't be selectable in the project configuration. When you download the certificates double-click on them to install.
Possibly more use for others seeing this issue on a previously configured dev environment.
This error is also shown if your provisioning profile has expired, in this case you can go through the steps in Neosionnach's answer or you can go to Organizer, click on the profile and click Refresh.
This was the winner for me when I had this issue.
As of July 2012, you can go here:
https://developer.apple.com/ios/manage/overview/index.action
Then launch the "Development Provisioning Assistant." It walks through all the steps outlined by FiddleMeRagged.
You can use this process to create a Wildcard ID, if you're just looking to test your app on your iOS device and don't need to deploy to the App Store right away.

How to test the final distribution build before submitting it for review to the iPhone app store?

I have developed an iPhone App and I want to test this final distribution build before submitting it to the App Store for review.
Is there any safe way to make this app to run on a device?
You might want to also check out Craig Hockenberry's "The final test" blog post.
Craig gives a method of testing where the only difference between what you test and what you submit is the signing identity.
No, you can't. This makes me a little nuts, too. If you set up an ad-hoc distribution profile, that is as close as you can get. On the "positive" side, you're guaranteed to have your app rejected if it can't be installed properly...
check this out, you can actually test a distribution build :
http://nikhilkerala.blogspot.com/2010/12/how-to-test-app-store-distribution.html
You can setup a beta through the iPhone portal program. You can then load the App and the associated profile onto a phone through iTunes or XCode.
I know this question is a little old, but I've recently found a better way of testing and distributing my Apps prior to submission and this method allows me to easily get it on real devices without having to have the device physically in my hands or have the user muck with provisioning profiles, certificates or iTunes syncing.
Developers can create an account on TestFlight and create a team.
After creating a team, invite testers to your team (click "Invite a Teammate" on the team's page). The tester will receive an invitation email to join your team and will be walked through the process of creating a basic account (name, email, password) and will have their device registered and their account will be added to your team.
Once you have your testers in place, go to your team's page and select all the testers, export their device information via the link and import that list into an Ad-Hoc distribution profile.
Import that profile (and the Ad-Hoc certificate) into Xcode and rebuild your project and share it as an *.ipa file.
Go back to your TestFlightApp.com team's page and upload the binary. All the testers on your team with access to the build will get an email notification about it. All they have to do is click "Install" in the email and they will be taken to a TestFlightApp.com page that will install the App on their device over the air, no iTunes, no mucking around with profiles, etc.
I tested it this morning actually and I'm very impressed with how easy it is and it also happens to be free.
It is actually possible to install the distribution build if you have once previously installed an Ad Hoc build on your phone. Most people simply never tried it =)
And no jailbreak is required. For step by step instructions, see my answer here:
Testing App Store "Distribution" version

Do I need to make an Ad Hoc Provisioning Profile to debug my app on my iPhone?

I think I'm just cloudy on how debugging works on a real device - is that how to go about it? I've been reading through Apple's docs on creating provisioning profiles for distribution, but I'm not finding any information for simply debugging my app, which is running on my device, through Xcode. Can someone point me in the right direction?
Edit (2/19/09):
I'm getting conflicting answers on whether or not I need to create an ad-hoc provisioning profile to debug my app. If I don't need to create an ad-hoc provisioning profile, what else do I have to do to debug my app, other than having my development provisioning profile and certificate for myself?
Edit (2/20/09):
This link, iPhone Development Guide: Preparing Devices for Development, seems to say that you do need a development provisioning profile for debugging on a device. In my last edit, I mentioned that I was getting conflicting answers on whether or not I need to create an ad-hoc provisioning profile. The answers are not conflicting, I just didn't understand the difference between an ad-hoc provisioning profile and a development provisioning profile.
Any time you're writing software to be installed on an iPhone, you need two things: a key and a provisioning profile. The key identifies the person who developed the application; it stays on your computer and is used to sign the apps you build. The profile identifies which devices are allowed to run applications signed by a given key; it needs to be installed onto the device.
Distribution keys are basically one per company, and are only meant to be used when you are building a version of an app that's intended to be distributed outside your development team. (App Store builds must be signed with a distribution key.) Development keys are intended to be one per developer, but are only meant to be used when actively developing an app.
(If you are an individual developer, of course, you have only one developer key and one distribution key. On my machine, I've set up Keychain to require a password for the distribution key, so even if somebody steals my laptop they can't release an update to one of my apps that compromises user security. The developer key, which can only install software onto my personal phone, is not passworded.)
When you're testing on your own personal device and installing through Xcode, you need a development provisioning profile and a development key. This development profile should be installed into Xcode, which will then install it onto your phone.
When you're distributing to a small number of others (for example, for beta testing, or if you wrote an app that's specialized for a specific customer), you need an ad-hoc profile and a distribution key. You'll need to send the ad-hoc profile to the user along with the app. The user can then drop both the profile and app into iTunes and sync their phone to install.
When you're distributing through the App Store, you need an App Store profile and a distribution key. Builds made in this way cannot be run on any device you control, but Apple's submission tools require them to be built using this profile.
So to answer your question: You need to provision your device, but it has to be a development provisioning profile, not an ad-hoc profile.
No, you don't need an Ad Hoc provisioning profile to debug an app, you only need a development provisioning profile and certificate for yourself on your device.
You need to provision the device, yes. IIRC you need to use Apple's online tool, and then provision it using Xcode, after which you will be able to debug it on the device.
See the first post on this blog for more.