iOS Developer Certificate and Mobile Provision work on Windows but not OSX

I have been reading through documentation to try and begin packaging my game for IOS. I followed the given instructions and downloaded my .cer and my .mobileprovision and loaded them up into the editor through the project settings. When I load these files on my windows machine, they appear just fine, turning green and allowing me to launch directly to my device. However, I am using a plugin which requires me to use a code based project meaning I need to use OSX to package. After loading the same .cer and .mobileprovision, beside my provision it says “No Valid Certificate Found.” Can anyone tell me what is going wrong or what I need to do differently for OSX to IOS dev?

Are you using RSync to remotely build on the Mac, or actually running the editor?
If you are using RSync, you need to go to Applications->Utilities->KeychainAccess

Once there copy the iPhone Developer certificate in the ‘login’ keychain to the ‘System’ keychain.

UE4 doesn’t use the logged in user’s keychain, so it can’t find those installed by xcode.

If you’re running the editor, you may need to open XCode and go to Xcode->Preferences then select your team and hit ‘View Details’ and hit ‘download all’ on your provisioning profiles.

While there, also make sure the iOS signing identities are valid and aren’t requesting you create or reset them.

I’m not using RSync, nor do I know what RSync is. I am running in the editor. I opened XCode and it doesn’t look like my team is logged in under the “accounts” tab, I expect I need to have them login there and then proceed with your instructions. I’ll give that a try and check back in.

Hi Path3tic,

Were you able to get this to work? If not, be sure you have the uninstalled the old and downloaded the latest Apple World Wide Developer Authority Certificate. Once you’ve verified you have the latest AWWDC, let us know if you are still experiencing difficulty on your Mac.

Thanks,

Sorry for the slow response, I do have the latest AWWDC, yet still am having no luck

Since you are running the Editor from your Mac, did you follow FacePalm.exe’s instructions:

"…open XCode and go to Xcode->Preferences then select your team and hit ‘View Details’ and hit ‘download all’ on your provisioning profiles.

While there, also make sure the iOS signing identities are valid and aren’t requesting you create or reset them."

Please verify that you have followed these steps.

I did follow those steps, but they are not what solved my problem actually. I found another somewhat unrelated answerhub post that had the answer within it. I had to reset my signing identity in XCode preferences>account details. That solved my problem. Thanks for being willing to help.

Thank you for posting your solution -I have converted it to the answer to this post.

I found the first half of this tutorial very helpful - - YouTube

later he goes into building his game with GameSalad, but the first part he goes through all the certificate signing procedures, and I found it really helpful

@: Thanks for posting the video link -I’m sure this will prove useful to a lot of users experiencing the same or similar issues.

Hello, sorry to revive an old post like this but am stuck with fail remote builds and we are on a deadline.
What does it means that the Xcode identity needs to be reset? Mine says reset but everytime i reset it from xcode in my mac the status on my provision changes to invalid. Do i need to reset it? even if it invalidates my provision on the apple developer certificates web?

Ty so much in advance.

From memory what the reset actually does is invalidates the current certificate and then re-issues a new one.
So as the provisioning profile contains which certificates are valid for it, you will need to either create a new provisioning profile, or make sure you re-add the new certificate to the list of valid signing identities for it. (I’m assuming it’s a custom one, not an XCode managed one right?) Either way you’ll need to download the new profile and copy the new certificate across to your PC.

I haven’t done any iOS work recently, so I’m not sure if copying the certificate from ‘login’ to ‘System’ is still required, or whether Epic fixed the generation of the temp keychain (which was supposed to copy the certificate from your PC to sign on the mac)

Hopefully that helps :slight_smile:

Yes, you are right. I figured it out. Xcode wont compile anything if the certificates are not managed by itself. You need to export the keys and certificates and import them to the PC and unreal.
Took me some time to relalice that.

Here are the steps i took to manage building remotely:

1 Create a Developer account on developer.apple.com and pay the 100$.

2 Get a Mac (or a sort of Mac) and install Xcode 9.

3 Open Xcode and in preferences-Accounts log to you Developer account Apple ID.

4 Create a iOS Developer and iOS Distributor certificates on the “manage certificates” button.

5 Go to developer.apple.com and create an AppID with the same name of your Unreal project, add your test devices and generate 3 provisions. One for developer, AddHog and AppStore.

6 Download the provisions to your PC.

7 In Xcode on your mac Preference-Accounts click the “Download Manual profiles”

8 In Xcode Preferences-Accounts-Manage Certificates Export both certificates to your Mac desktop.

9 Open your Keychain and import those certificates exported from Xcode to the System tray (THIS IS VERY IMPORTANT) as rSync cannot interact with the Login tray of the Mac Keychain (and that’s where Xcode add the certificates by default)

10 Go to the Login Tray of the Mac Keychain and export each certificates (the developer and the Distribution) separately in the form of Certificates files. And Export the Keys to those certificates in the form of .P12 files.

11 Transfer those 4 exported files to your PC.

12 Open unreal and in Project preference iOS tab import both certificates and when asked for a key submit the .P12 key exports respectively.

13 Add the provision profiles you previously downloaded from the developer.apple.com.

14 Uncheck all Certificates and provisions and let unreal manage which to use.

15 get the IP address of you “Mac” and add it to the remote server with a administrator Mac account.

16 Run Create SSH permission file. Submit the password for the administrator user twice.

17 In the Mac´s System Preferences-Sharing enable remote Login allow access to all users.

18 Sometimes it takes a Restart to read new certificates on the Mac.

19 Go to your Unreal PC Save all and Build.

Hope this saves you all a headache.

2 Likes

Last comment doesn’t work either. Followed it to the letter. Got the error “object reference not set to the instance of an object”.

This works!!! Thank you, my friend!! I was stuck on this for almost a week!! But then that’s while taking care of a 2yr old and a 6mths old.

Regarding Deodance’s “object reference not set to the instance of an object” error. It’s because you imported the .cer file, import the .p12 instead and it will just ask for the password.

Thanks again Darthlogan, your explanation is concise!

To clarify, I’m talking about step 12 when only import the .p12