Need some help with my apple certificate

I am signed up now with apple’s developer program now, and have purchased Unity iPhone, and have followed all of the steps to get set up, but am still getting this error message when I try and run UnityRemote in Xcode:

"no certificate was found in your keychain for the specified identifier "

In keychain access there sits my certificate and my keys. I have done the entire process now 4 times trying to figure out why I am still getting that error, and I’m going a little nuts.

If anyone could shed any light at all on this I would be grateful.

Thanks!!

that error commonly means that one of the two certificates are missing you can download from itunes connect.
either your personal or the global apple WWDC one.

Thank you for the response!

I have the worldwide developer certificate, and also the iPhone developer certificate in my keychain.

Any other ideas?

both in the startup part of the keychain? (think its called like that)

and you ensure that you have changed the provision in the project settins to be yours not the default one.

oh and last but not least: the bundle identifier is set to yours in info.plist, so it says com..

your appname potentially could be anything given you created a wildcard provision

Plug your phone into your computer, open Xcode and open the Organizer. Your phone should have a green circle next to it and you should be able to see that the provisioning profile you created for UnityRemote has been downloaded correctly (it will be listed in the window on the right). If not then re-download it. Be sure you follow the instructions precisely when creating the provisioning profile. You should see the provisioning for UnityRemote listed under the Provisioning section once it has been downloaded correctly and deployed the phone (accomplished by dragging it from the Downloads folder and dropping it either on your iTunes or Xcode icon in the dock.

Then open the Unity Remote Xcode project and set the code signing identity under Project Settings to match the provisioning for UnityRemote. Set the Device OS version to the correct version for your phone. Also make sure that under the Active Target Settings, you have set the Identifier correctly on the Properties Tab. For me, based on the App ID I created, it will say:

com.hanultech.${PRODUCT_NAME:identifier}

PRODUCT_NAME gets replaced by UnityRemote when the project is built.

Clean all build targets (Build/Clean All Targets) and build the project. If no errors occur, click on Run to deploy it to your phone. After you follow these steps, report back on any errors reported by Xcode.

By the way, my advice assumes that you named the provisioning profile UnityRemote when you created it in the Apple Dev Portal. If something then different, then, of course, you need to use that name.

Thank you very much for the help!

I am getting the exact same error still from Xcode.

to be sure i am doing it right, where is this in xcode:

"Then open the Unity Remote Xcode project and set the code signing identity under Project Settings to match the provisioning for UnityRemote.
"

And for this:

"For me, based on the App ID I created, it will say:

com.hanultech.${PRODUCT_NAME:identifier}

PRODUCT_NAME gets replaced by UnityRemote when the project is built."

I have:
com.mattbruun.UnityRemote

Maybe this is where I ma running into trouble? I have an app ID that is a series of numbers and letters ending in *. Should I be using that somehow?

Open the UnityRemote.xcodeproj file from your Unity Remote folder, then go to Project → Project Settings to set the provisioning profile for UnityRemote under the Code Signing section (scroll down).

To set the identified, go to Project->Edit Active Target and click on the Properties tab.

Then clean all build targets, Build->Clean All Targets. And then deploy, Build->Run. Then let me know what happens.

Regarding your last question, when you created your App ID for UnityRemote, it should have ended up looking like this in the portal:

0123456789.com.mattbruun.UnityRemote

Where the numbers are those for your device. Is that correct?

And then after you down load the provisioning profile and drop it on iTunes or Xcode, UnityRemote should be listed under the Provisioning section for your phone in the Organizer (i.e. this will be visible on the right when you click on your phone under the devices section of that window). Is this true?

same error.

I am thining that maybe this is not correct?:

com.mattbruun.UnityRemote

Should I have something different there under the properties tab in Xcode?

In the portal it just asked for a common name for my provisioning profile. I named it “mrbProfile”. Below the box where I filled that in was an App ID that was already filled in for me ending in *, and my long device ID for my iPod.

I downloaded that profile and put it in xcode, where I can see it now. I don’t remember ever seeing a place to choose my App ID, it was just there.

Did you set the provisioning profile in the drop down to the right of the Code Sign section of the Project->Edit Active Target->Build tab? The provisioning profile should say UnityRemote in grayed out text and something like iPhone Developer: Matt Bruun in bold text underneath it. If this is not a choice then the provisioning profile has not been downloaded and installed correctly. Go back to the Organizer and click on your phone and make sure it is listed under the provisioning section. If it is not, then you need to download it again and drag it onto the Xcode icon in the dock to redeploy it. Your phone needs to be plugged in when you do this. (You can also drop it on the iTunes icon in the dock.)

If you have set the Code Signing value correctly, then go to the Properties tab in the same dialog and make sure it says the following next to the Identifier property:

com.mattbruun.${PRODUCT_NAME:identifier}

Back on the Build tab scroll further down past the Code Sign section to the Packaging section and make sure that the Product Name is set to UnityRemote.

The provisioning profile was set correctly, as you described.

I tried the identifier you suggested, the new error with that is that “_” is an illegal character. I tried it without that and got the same original error again.

Thanks for taking so much time to try and help me sort this out!

then your app is named wrong.

above is replaced with your apps name

The text in the edit field for the Identifier property (on the Properties tab) should read:

com.mattbruun.${PRODUCT_NAME:identifier}

The “${PRODUCT_NAME:identifier}” portion of this name gets replaced with the product name string set on the Build tab under the Packaging section. That string value should be set to “UnityRemote” (without the quotes).

Is this what you did?

I just tried it with the identifier set to:

com.mattbruun.UnityRemote

and the product name set to:

UnityRemote

I got the same error as I did in the beginning. Should what I just described have worked?

Let’s back up a bit. There are some different working parts at play here:

In the portal you should have done a few things.

First you should have been issued a development certificate. This should show under the Certificates section of the main portal screen on the Development tab.

Then you had to create a device ID for each device upon which you plan to deploy a development build of your game. Under the Device section, on the Manage tab, your phone should be listed as a device. The Device ID string should match the UDID for your phone shows up in iTunes when you plug in your phone and toggle from the serial number to the UDID by clicking on the serial number.

A device can have multiple provisioning profiles associated with it. If you click on the Details link under the Profiles column of the manage tab for your device, you should see each provisioning profile that is associated with it, including the one I have been assuming you created for UnityRemote and which I assumed you called UnityRemote.

Next under the AppIDs section, I assume you either created a wildcard based AppID that looks like this:

0123456789.*

Or a specific one that looks like this:

0123456789.com.mattbruun.UnityRemote

Where the actual numbers and letters are the Serial Number for your phone that is shown when it is connected to iTunes.

Now the provisioning profile. The profile associates a developer certificate, one or more devices and an App ID. I assumed you created one call Unity Remote (doesn’t matter what you call it) and that this profile associated your developer certificate, with your phone’s device ID and your App ID. I then assumed that you downloaded and installed this profile on your phone as previously described.

If you have done all of the above, then I think the issue is that the App ID you are specifying in the project settings does not match your App ID, if you created only a wildcard App ID, then in the Identifier section on the build tab enter:

0123456789.UnityRemote

If you appended your reverse domain name identifier information to the bundle seed ID, then it should be:

0123456789.com.mattbruun.UnityRemote

It think what you did was create only a wild card, and therefore the latter App ID which you entered in the project settings would be wrong. If this does not work, please report back.

Let’s back up a bit. There are some different working parts at play here:

In the portal you should have done a few things.

First you should have been issued a development certificate. This should show under the Certificates section of the main portal screen on the Development tab.

Then you had to create a device ID for each device upon which you plan to deploy a development build of your game. Under the Device section, on the Manage tab, your phone should be listed as a device. The Device ID string should match the UDID for your phone shows up in iTunes when you plug in your phone and toggle from the serial number to the UDID by clicking on the serial number.

A device can have multiple provisioning profiles associated with it. If you click on the Details link under the Profiles column of the manage tab for your device, you should see each provisioning profile that is associated with it, including the one I have been assuming you created for UnityRemote and which I assumed you called UnityRemote.

Next under the AppIDs section, I assume you either created a wildcard based AppID that looks like this:

0123456789.*

Or a specific one that looks like this:

0123456789.com.mattbruun.UnityRemote

Where the actual numbers and letters are the Serial Number for your phone that is shown when it is connected to iTunes.

Now the provisioning profile. The profile associates a developer certificate, one or more devices and an App ID. I assumed you created one called Unity Remote (doesn’t matter what you call it) and that this profile associated your developer certificate, with your phone’s device ID and your App ID. I then assumed that you downloaded and installed this profile on your phone as previously described.

If you have done all of the above, then I think the issue is that the App ID you are specifying in the project settings does not match your App ID, if you created only a wildcard App ID, then in the Identifier section on the build tab enter:

0123456789.UnityRemote

If you appended your reverse domain name identifier information to the bundle seed ID, then it should be:

0123456789.com.mattbruun.UnityRemote

It think what you did was create only a wild card, and therefore the latter App ID which you entered in the project settings would be wrong. If this does not work, please report back.

You never enter the numbers anywhere.

The correct one in either case would be com.mattbruun.UnityRemote
even with a wildcard one like com.mattbruun.*

I only have a wildcard provision for development. There is no real sense in not having a wildcard one as you will be forced to reinstall the whole OS should a deploy lock the build name, which happens far more often than you will like it

Apple uses the serial number from the phone by default when you add the device (or at least they did when back when we added all of our devices).

If you specify a suffix to the bundle seed ID when creating the provisioning profile then you have to specify this as a the identifier prefix for the Identifier in Xcode. I agree that it doesn’t make sense to use a suffix for development purposes but unfortunately Apple recommends this on the App ID creation screen. From the screen