Forum General

"No valid iOS code signing keys" error when debugging to a physical iOS device

ravl13ravl13 USMember ✭✭


Whenever I try to Debug a Xamarin project via VS2015 on a Windows machine directly on a physical iOS device via a Xamarin-Agent mac machine, I get this error:

No valid iOS code signing keys found in keychain. You need to request a codesigning certificate from

Most posts online for that error are about using a simulator, but that's not what I'm using - I'm testing on an actual iOS device. I can actually able to successfully debug my project using a Xamarin-Agent connected Mac and its iPhone 7 simulator. It's only when trying to test on a real device that I get this error.

I am logged into the iOS device itself as the developer account (let's say it's "[email protected]")

I have a paid corporate developer account, using [email protected]

I am signed into XCode as [email protected]

In the Certificates section of my developer account of the apple developer website, I have a Development certificate file which I have downloaded. It is the only Development certificate I have - I don't have multiples

I double-clicked that .cer file, and I added it to both the System and Login keychains on my Mac machine.

I also have a Development Provisioning Profile, which has all of my physical devices "approved" for use with it. It is the only Provisioning Profile I have - I don't have multiples - it is the "wildcard" type which can be used for multiple projects.

After downloading this .mobileprovision file, onto my mac machine with XCode on it, I double-click it, and that causes XCode to start, but other than that, nothing happens. There's not a lot of information online that I can find on how to use this file, so perhaps this is the main issue - I'm not sure how to use it.

Anyone have suggestions for what I need to do to resolve this keychain error when trying to test my physical iOS device via VS2015 on a windows machine?

Best Answer


  • ravl13ravl13 USMember ✭✭

    OK, so it turns out I was missing the step where you have to build a fake project, which is where I'm guessing it goes and grabs the private key thing in the background that is unique to each physical machine.

Sign In or Register to comment.