Rsync: Remote Certificates Not Found

I’m trying to package a test iOS project from my Windows computer to my Mac. I’ve managed to install DeltaCopy on my PC and setup an RSync daemon on my Mac. I’ve exported both certificate and mobileprovision from Xcode, and imported them into the project on the PC via Project Settings->iOS.

Remote seems to work and files get copied to the Mac. But then I run into this;

Packaging (iOS): UnrealBuildTool: Build settings from command line:
Packaging (iOS): UnrealBuildTool:     CODE_SIGN_IDENTITY = iPhone Developer
Packaging (iOS): UnrealBuildTool:     CODE_SIGN_RESOURCE_RULES_PATH = /Users/USERNAME/UE4/Builds/PC_NAME/C/UE4/TestIOSProject/Binaries/IOS/CustomResourceRules.plist
Packaging (iOS): UnrealBuildTool:     IPHONEOS_DEPLOYMENT_TARGET = 6.0
Packaging (iOS): UnrealBuildTool:     SDKROOT = iphoneos8.4
[...]
IPP ERROR: RPCCommand MakeApp failed with return code Error_RemoteCertificatesNotFound
[...]
UnrealBuildTool: Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) matching the team ID “(null)” were found.
[...]
ERROR: System.Exception: ** BUILD FAILED **IPP ERROR: RPCCommand MakeApp failed with return code Error_RemoteCertificatesNotFound

However I have this further up in the log;

.. .. Installed certificate 'iPhone Developer: Firstname Lastname (ABCDE12345)' is valid (choosing it) (range '2015-07-20 23:42:01' to '2016-07-19 23:42:01')

Picked 'xx12x345-x67x-89x0-x123-4567x8xx9x01.mobileprovision' with AppID 'A1B2C3D4.com.XXXXXgames.appName' and Name 'iOSTeam Provisioning Profile: com.XXXXXgames.appName' as a matching provision for the game 'TestIOSProject'

… so it seems that the mobile provision and certificate successfully load on the PC but I still have certification issues on the Mac, even though they’ve been copied from the Mac?

maybe this can help you:

Thanks, I’ve seen that and tried the suggested solution. Still can’t import the Cert through the editor - hangs at “waiting” (I previously imported using IPP but I think that was part of the problem).

which of the solutions have you tried?

When using the SSH build for IOS you will need to make sure the signing identity certificate is installed on the remote Mac in the System keychain. We can’t access the login keychain without asking for a password, but if the identity is in the system keychain, Xcode will find it properly.

-Pete

I’ve tried the top 5 solutions (imported into keychain, exported from keychain to PC, checked Apple Dev page to see if missing something, re-exported everything, and refreshing in Xcode.)

I’ve imported the certificate into Keychain Access, and then exported it as a .p12 (tried .cer as well) to a USB stick, brough it to the PC, and tried importing it there through the editor, and IPP.

It seems like it won’t load when importing through the editor - importing through IPP “sorta” works (then crashes) and it pops up in the list of certs, but that’s when I get the above error.

To be clear - is this the workflow for getting certs to work with Mac + PC?

  • Add Apple Dev Account in Xcode
  • Export iOS Development certificate (.p12) from Xcode
  • Xcode > Apple IDs > Details > Provisioning Profiles > “Show in Finder” > Copy to PC
  • UE4 Editor Prefs > iOS > Import ^ Provisioning Profiles
  • Import Certificates > ^ .p12 file

As noted before, this is where the editor hangs on “Importing Certificate. Please wait…”

So, yes, that is the workflow as it currently stands. The point where it is hanging for you is where you should be seeing a dialog asking for a password. That dialog could be behind the main editor window. In the end tho, the editor is just calling iPhonePackager.exe to do the import, so utilizing IPP would be the equivalent of what the editor is doing.

-Pete

Alright. When I use IPP, I can import the .p12 file and input the password, but when I try to do something else, IPP crashes. Maybe that’s an indicator?

When pressing “Ready To Package”, IPP straight crashes without any messages.

When trying to open “Other Deployment Tools”;
System.IO.FileNotFoundException: Could not load file or assembly ‘DeploymentInterface, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The system cannot find the file specified.

Hi Pete,
I’m at a loss here. Attaching a picture of what’s confusing. I have a valid cert and a valid mobileprovision, IPP seems to recognize this, but I still get the “null” error further down when packaging.

Are you building on a remote mac? If so, you need to make sure you have the certificate installed there as well. We don’t transfer it over (we would have to ask for a password to send across the network) and so you need to ensure it is installed on the mac which is building your game. It looks like your certificate is relatively new, so make sure that one is on the mac itself as well.

-Pete

Hi Pete,
yes, I’m building on a remote Mac, and I exported it from the Mac (Xcode) as per the list I wrote further up, and then imported it into the PC. Is that correct?

I’m working on this with another user and neither of us get the password box when importing the certificate through the editor.

The other time I’ve seen the No valid signing identity message was when we updated the certificate on our remote mac builders, but didn’t update the provision to be generated from that certificate. Just making sure you updated that provision as well. I’m sure you have, but just checking.

As far as the no password dialog, that is a bit odd as it should be asking you for one. I’ll see if we can reproduce that one here.

-Pete

Oh, which Keychain is your certificate in on the mac? If it is in the login keychain, it might need to be in the system keychain (and vice versa).

-Pete

That did it! Wow, I didn’t notice how Xcode put the key in the login keychain instead of the System one… dang.

Thanks for all your help!

Edit: I still don’t get the password box though, importing through IPP instead

As @bzxo states, it should be looking in the login keychain instead (As that’s where XCode stores them)

The UnrealRemoteTool was able to pull them correctly from the login keychain, and doing a build locally also pulls them from the Login Keychain.

Why is RSync different? I shouldn’t have to manually maintain 2 sets of certificates. (3 if you count the one on my local machine)