Release an ios application? - iphone

I've an iOS project developed by someone else, now I have to update it and build a release for client so that they test it.
I've updated it and while archive it in release mode, get error-
The identity 'iPhone Developer: XYZ' doesn't match any valid, non-expired certificate/private key pair in the default keychain
I am new to iOS. I have some idea that I have to change developer id or something similar in certificate. But do not know how. Can anyone help me to fix this issue?
Thanks.

You need to have Apple development certificate and .p12 file of that account of which that provisioning profile exists.
If you don't have, you need to create it from keychain, by requesting a certificate from authorised authority->generate csr and submit in you developer account.
hope it helps you........

You need to do an "Ad Hoc" distribution.
Build your App for "Release".
Go to the "Organizer" and select the Archive.
Select your build in the Archive.
Use the "Distribute" button and select the middle radio button. "Save for Enterprise or Ad Hoc Distribution".
That will produce a .ipa and ask you where you want to save it. You can put that on your desktop and distribute it.
In order to build an Ad Hoc Build, you have to get yourself an "Ad Hoc Distribution" certificate. You do that in the Apple iPhone Developer site in the provisioning portal area, located here:
iOS Provisioning Portal
You will also need to authorize the devices you want run test versions on in the same way you authorized your own devices for development.
If you have to run the App on many test devices and the testers are not technical. I suggest you take a look at a pretty good service online called "TestFlightApp".

You don't have a valid keychain item for the developer certificate, is what the error is telling you. It's a case of creating one and installing it.
But for delivering a test build - you need to create an adhoc distribution, using a distribution certificate that has the test device's udid included.
In either case - and for further troubleshooting - Apple have a handy Technical Note for dealing with these kinds of issues and how to solve them.

If you go to your project in Build Settings -> Code Signing -> Code Signing Identity, you can change the signing certificate to your own.

Related

Renewing an expiring Enterprise provisioning profiles, and other aggravations

Now that the app I created last year has enjoyed a year's worth of functional success, my Enterprise users are beginning to see alerts indicating that the provisioning profile is about to expire.
The Code Signing business of the app gave me tremendous difficulty in the beginning, and now it's doing it again. I think it's because all the information I can find about it refers to apps to be distributed in the App Store, but not for Enterprise apps. The "Tools Workflow Guide for IOS" seems only to be helpful for App Store distribution.
I did finally get it working just by trial and error, by setting all of the Code Signing Identities to "iPhone Developer," but I really need to understand the proper way to do it and why it works that way. And I need the "Idiot's Guide" version.
First, I think what is hanging me up is understanding the Distribution aspect. Is "Distribution" only in reference to an app that is bound for the App Store? This being an Enterprise app, does Distribution apply? Any time I try to create a Distribution profile and include it in Distribution/Release for the Code Signing Identity, compile fails. It works ok if all Code Signing Identities are set as "iPhone Developer." Does that mean it is going to always need a Developer provisioning profile, and never a Distribution profile?
The "iPhone Developer" profile always comes up in the Code Signing Identity section of Build Settings as "(currently matches 'iPhone Developer: Bill Norman(4GR2 etc) in 'iOS team". But any other profile doesn't say anything like that, and so none of the other profiles work. If they don't work, why are they there? And do I need to delete them?
And yes, there are lots of profiles listed that are the result of many trials and errors. Only one appears in the Profiles section of the iPhone's Settings, and that's the iOS Team Provisioning Profile.
If it does need a "Distribution" profile, how do I make it work?
Next question: Will my Enterprise users need to download and re-install the app to get the new provisioning profile? Or will it do it by itself, seamlessly? Or will it inform my users that the profile has expired, and they need to do such-and-such to get their app to work?
More: The Developer profile only lasts for a year, while the Distribution profile lasts three years. Obviously it would be helpful to make it last three years, but can we do that with an Enterprise app?
My apologies for my continued inability to fathom the inner workings of this stuff. And many thanks to anyone who can help.
First thing that you want to do is delete all of those extra provisioning profiles that you created through trial and error. Just totally remove them from the organizer. The difference between developer provisioning profiles and distribution provisioning profiles is that developer profiles will only work on devices that are registered with that developer profile, meaning test devices. You would not be able to sign an app with a developer profile and then put it on any device, only devices that you have registered to work with that profile. In the distribution zone you will have app store distribution and Ad Hoc distribution. App store refers to the Apple App Store which you must submit your app to apple for that. Ad Hoc distribution allows developers who have enterprise accounts to distribute to any device via the internet or other methods.
I would need more information when you say that compile fails with distribution but generally speaking, you would click the product tab and then click on archive. When the archiving is complete and the archive window pops up, you would click on the button that says Distribution in the bottom right corner. You would then click on the Save for Enterprise or Ad-Hoc deployment option. You choose your distribution code signing identity when asked which identity to use and hit next. Here comes the tricky part: On the next section where you are choosing where to save the app, you click on the option, save for Enterprise distribution. There are two fields that need to be filled in here, the first is an application url, this is the exact url where you will be hosting the ipa file, for example http://www.somewebsiteyouown.com/myApplication.ipa
The second is the ApplicationTitle which will just be your app title: myApplication.
This process will generate for you a plist and an ipa file, you put thos both on the server and link to the plist from a button or link on a webpage. The plist is like the instructions on where the ipa file is and what to do with it.

Error When Uploading IPA to TestFlight Using New Target

I recently created a new target in my project for the Lite version of my app. Now when I go to upload the .ipa to TestFlight so I can distribute it to my designer, I'm getting:
Invalid IPA: The keychain-access-group in the embedded.mobileprovision
and your binary don't match.
Seems clear to me the reason this is happening is because of the new target. Does anyone know what exactly do I need to change to get this to work?
I had this same problem. It was caused by having the wrong release code signing identity in the target's build settings. You won't need an entitlements file.
Check you are code signing with the correct Distribution profile.
Under Xcode project select > Build Settings > Code Signing
Code Signing Identity:
- Debug > iPhone Developer
- Release > iPhone Distribution
Provisioning Profile:
- Be sure to select a Distribution profile here!
When you created a new bundle you probably didn't change the entitlements and access groups. Make sure you change these in the entitlements file. Have a look at http://www.karlmonaghan.com/2012/08/09/invalid-ipa-the-keychain-access-group-in-the-embedded-mobileprovision-and-your-binary-dont-match/ on how to do this.
Should look like this
If you don't use an entitlements file...
Double check that your developer certificate and provisioning profile used are up-to-date (even if you have the confidence inspiring green tick in the organiser.) Refresh the profile by visiting the Apple Provisioning Portal and edit / modify the provisioning profile, you're using to sign the app.
Un-click and click the signing identity, so that you can submit the form, and the profile will be regenerated.
Wait a minute (really), Go back to XCode and remove the profile from the organiser, next refresh the profiles, and it should re-appear, as the regenerated version.
Once that's done, try archiving / signing the ipa, and upload to TestFlight.
(use the TestFlight app, to speed up this process.)
Here's what worked for me:
Using Automatic (Enterprise Distribution) Profile Selection for all Code Signing Identities I've Established.
Selecting "Refresh Certificates" when going through the Enterprise/Ad Hoc distribution workflow
I have such kind of problem, I am not sure you have the same one or not.
If I have a installed app with the same app id that I am going to install but with a different target, it creates problem. Seems apps are unique with app id and target. So I had to delete the app to install another app with the same app id but different target.
You have good other answers here, but just to stress something out.
If you worked for more than 1 client, and you actually used more than 1 developer account, then the automatic selection of Code Signing Identity on Archive wizard could be different than the one you need, and you might need to select it each time you create the AdHoc version.
Here is a picture, to show you where your error might be (thats where mine was):

How to test app on Ipod Touch from xcode 4.3.1?

I am very new to iOS development. I am developing an app, currently i am testing it on emulator. Now i need to test the app on ipod touch. I have tried to test but it says
The identity 'iPhone Developer' doesn't match any valid, non-expired certificate/private key pair in the default keychain
*I am looking for steps or any posts.*Much appreciated.
I got Apple developer License .
Thanks for your help guys.
you have to jump through a big hoop :) Code Signing
You'll need to get a developer certificate.
Go to applications / utilities and run Keychain Access.
Request a Certificate From a CA
Follow those instruction.
This certifies you.
Next, certify your device.
login to your developer account.
Go to the Provisioning portal (link from main dev. page)
Left side > Devices (you can get the UUID from iTunes or from Xcode organizer).
Add your device. Download the device certificate. Double click it to add it to Xcode.
Certify your App.
Same page in the Provisioning Portal.
Get new app id.
Then go to Provisioning.
Repeat the certificate process to get a developer distribution certificate for your app.
Download these, and see how things look in Xcode Organizer.
Finally, in the main code page of the app itself:
see if you can set the code signing to your developer certificate.
You will know when this is all set, as when you look at Xcode schemes, you should see you iPod listed.
You'll probably get stuck at various points in this process. I did. You might want to ask (or look for) a specific question, whether it's the AppID, the Developer Cert, or code signing.
There are some videos on the Apple site, but they are using an older version of Xcode..
Hope this helps.

Problems when trying to submit iphone app

I'm a fairly new developer.
When I try to submit my iphone app with xcode, I've got error as follows;
Code Sign error: The identity 'iPhone Distribution' doesn't match any valid, non-expired certificate/private key pair in the default keychain
After searching, I found out that I have to create a Distribution Provisioning Profile.
However, my distribution provisioning profile doesn't work, even though my Development Provisioning Profile works perfectly.
Could someone please help me with this problem?
I'm stuck all day...
and please forgive me that my English is not great.
Thank you in advance.
Have you installed you distribution certificate (not the distribution profile) into KeyChain Access?
this link should help you, it explains how to build for distribution.
If not then you should consider going into iOS provisionning portal and recreate your certificate.
I hope your project run on device based on the developer profile.
before your prepare the submission.just follow these things,
create Distribution profile in developer.apple.com--> iOs provisioning portal.Download and install into your system and iosdevice.
2.Then go to your project --> info Press + button above the comment-line build use.select any one of the that duplicate. and then rename that as "Distribution"
then select your project-->build settings and target--> build settings set the code sing as your distribution profile.
this is possible only to build.
then select your products section. right click on it select show in finder option and zip your .app file.
this file has to be use after your finish into the itunesconnect.apple.com ---> mange your applications selection.
go to the application loader--> select your .app zip file
this for submission of app store.

Is it possible to Test iPhone Application on Actual Device rather than Simulator?

I wants to test my own application to my actual iPhone Device rather then simulator.
So, is there any chance to do so with ?
I have an apple developer account.. But don't know the procedure, Please help me if u have any solutions..
Thanks in advance...
Log in to http://developer.apple.com/iphone/ with your developer id and password.
Then:
http://developer.apple.com/iphone/manage/team/index.action and set up your team.
http://developer.apple.com/iphone/manage/certificates/team/index.action to create your certificate
Download the certificate you just created and double click on it to run Keychain Access and install it.
http://developer.apple.com/iphone/manage/devices/index.action to enter your iPhone's id
http://developer.apple.com/iphone/manage/bundles/index.action create an appID
http://developer.apple.com/iphone/manage/provisioningprofiles/index.action to download a provisioning profile
Drop that provisioning profile onto Xcode
Go into your project's info.plist and change your Bundle identifier to be the same as you used for the provisioning profile, minus everything up to the first "."
Go into your project's Build Info, and select the appropriate Code Signing Profile
I think now you're ready to go. Select an iPhone Device from the pop-up menu in your main project browser window, plug your iPhone in and let Xcode see it, and then Build and Run.
You can, but as iPhone applications need to be signed - you need to be a paid developer. It is then a case of logging into the portal, assigning a test device, application settings and then downloading a provisioning certificate.
The procedure is cumbersome, however it is very well documented.
You need to create your Developer Certificate and a Certificate for your software projects.
Go to http://developer.apple.com/iphone/, log in and click iPhone Developer Program Portal on the right side. You will find a "launch Assistant" there that will guide you through the next steps. It's pretty easy.
You have to join the iPhone Developer Program, which is $99 for the Standard Program, $299 for the Enterprise Program.