Can't import pair key file from Mac

Hi all,

I’m pouring my weekend down the sink trying to make remote build work - would really appreciate if anyone could help me with the below.

Background: I’m using engine version 4.16.2 and am developing a blueprint only application, however for some weird reason when I try to package it for iOS it fails (it says it needs a server as some of the built in blueprints haven’t been pre-cooked). It used to work in previous versions of the engine, but no longer. I then decided to use a remote build model instead, with SSH and all that.

After a lot of head banging I managed to get the system to almost work - it connects to the mac and does its thing but it fails right at the end due to a certificate problem. I did install all provision and certification files in the mac, however realised that because I initially generated all these certificates on a pc, the mac didn’t have the infamous private key. I tried to export the private key from the PC, to no avail - the Mac doesn’t understand what that key is, so I gave up, revoked all certificates and provisions and created everything again on the Mac.

Then, I transferred the files over the PC (3 files, the provision, the certificate and the p12 export from XCode). The provision is imported fine, however the certificate doesn’t get imported. If I choose the actual certificate it then asks me for the private key, for which I select the .p12 file and it returns this very clear error message: “Object reference not set to an instance of an object”, which despite the clarity and helpfulness didn’t quite make the cut for me to understand anything whatsoever. I realised that you could try to import the certificate through the p12 file as well, but that basically makes Unreal Engine hang with the message “Importing Certificate. Please wait…” forever. More strangely, the p12 file has a password that MacOS forced me to put, but that wasn’t even asked in Unreal Engine.

So, there you go. As of now I have absolutely no idea how to do something that should probably be simple: put the same provision and certificate files in the Mac and the PC so the remote build model works. I must be really stupid. I would really appreciate any help anyone can give because as of now I literally have no idea on what to do.

Best
Al

Hi,

The problem is caused by a bug when you have a password on the certificate you are importing. Unreal creates a hidden window to do the importing and it’s the hidden window that is asking for your password. That is fixed in 4.17, and you can find the fix here if you’re using Github.

For the certificates you import on the Mac, you need to import them into the System keychain and also allow access to all programs.

We have improved the remote toolchain signing process for 4.18 and there will no longer be any need to configure anything on the Mac.

Cheers
Jack

Awesome stuff Jack, this will be very helpful. I ultimately managed to import the file by exporting not the full profile but just the individual key directly from KeyChain, which then doesn’t force you to put a password.

One thing I would suggest also is adding back the web page with the advanced PC/Mac workflow (now it returns error 404). There are a bunch of tutorials over the Internet that make you do stuff that isn’t necessary, such as installing DeltaCopy - I was cracking my head to make that work until I decided to try without it and it worked perfectly.

Many thanks again for the reply, and I look forward to the simplified workflow on 4.18 :slight_smile:

Best,
Alessandro

Unreal engine 5.1, trying to use a certificate on windows, on mac never had it ask this: find file for specific keypair used to create this certificate.

How do I find this keypair? I made the certificate from my windows machine and no “keypair” was ever generated, I just got an ssh key but no “keypair”. when I select the .key file with the ssh key in it, I get the message “This is a key, but make sure its the keypair you used to create the certificate”. BUT IT IS THE KEY I USED.

Thanks for your input if you see this