I am no longer able to launch to IOS or package for IOS.
Considering the bug i reported with some weird cert issues after the new IOS8 changes made for UE4 with 4.5 i am assuming this is directly related.
What is strange is that it states during the build
Found matching certificate 'iPhone Developer:
But after it fails it says
Device ‘blah blah’ is being checked against . <— why is this blank? Should it be blank?
Please guys. I am on the verge of launch and now i am no longer able to test on mobile.
I checked all certs. I logged another bug where its doing validation checks against UTC time and not my current time. Was this hard coded with the new release? All Log Files
The device ‘blah blah’ has always been there, so that is a red herring. The UTC time is also correct. We now convert everything to UTC time to do the checks, so the current local time and the certificate times are all UTC before we do any check (the ones in the certificate and the provision are already UTC, we had a bug previously where we were checking local times against UTC times, that’s the current change). I’m looking to see if I can figure out what this is now, but the logs all look good except for the final push to the device. Have you tried any of this on a Mac?
Also, the ipa is just a zip file, so you should be able to unzip it to a directory and then you can verify the embedded.mobileprovision is the same as the one picked (it can be loaded into a text editor and checked for the correct id). Also, you can then see if there is a Payload/UE4Game.app/_CodeSignature directory. If that is missing, that would be a big problem.
One thing that may be the issue is if the device you are trying to install on is not included in the mobile provision. This message could indicate that (although usually it is the invalid entitlements message if the device is not included in the provision). Please check that just to make sure.
The device is on the list. Strange thing is i was able to deploy fine.
2 Days ago i was running out of HDD Space. I ended up clearing all the content in the app folders. Users/Appdata/local
Since then i recreated the provisioning profile.
My question regarding the UTC time was to try and understand. So you do convert it to UTC time. But i am in UTC +2
This would then account for the messages i receive about the certificate not being valid for another 2 hours as my time zone is ahead of standard UTC.
This could cause potential issues.
However it might be worth mentioning that when i tried another project i did not get this warning about the time. Even though the build still failed
I looked inside the game.app files and countersignature stuff looks good.
Also
The only thing in the plist file that stands out is CFBundleSignature
???
I was able to get the same message when I added a file to the ipa which didn’t exist in the _CodeSignature/CodeResources file. That file is also a text file. If you extract it from the ipa, you should be able to verify it has every file stored in the IPA. If you find an extra file, that could be the problem.
I’m going to add some code to the deploy to check that file on a failure with that error code and print out any files which are not in there. For now, you may want to go to your games Binaries/IOS directory and delete everything from the directory and then try Launch On again. That may fix the issue.
One other thing to check, the validation step during deploy on device does check the provision and certificate against the time/date on the phone. Make sure the phone’s date/time is correct as well, just to be safe.
However now im confused about how to get Iphone6 splash screens.
But lets not detract.
I would like to confirm if it converts to UTC time… do i really have to wait 2 hours for a brand new cert before it becomes active according to the check?
I think how its being converted is faulty.
It should take into account the local time or do a check against a TSA (time stamping authority) of sorts.
I am only 2 hours. But there are people 13 hours +UTC
No, you shouldn’t need to wait any time. The code that gets the time is just getting your local time in terms of UTC time. The provisions and certificates themselves are already UTC time internally because they are created on servers from Apple which most likely are in different time zones than you are. You will notice if you open the provision it will show a time with a Z at the end. That means its in UTC already. So there shouldn’t be any wait. I’ll do a quick test here again just to make sure tho.
I’ll take a look at when those images are copied during the build process. If they are getting copied into the directory after the code sign but before the zip that is definitely a bug. I do have them working with Zen tho here at the office, but I’ll try on a new project.
Thanks for the feedback.
I added my own iphone6 images as there were non present in the IOS/Resources Directory. I was busy making splash screens when i noticed under project settings its point to defaults but physically those default files were never there. So i saved new ones their according to the dimensions i could see from project settings.
The below image is why i think there something weird with the UTC time stuff.
Its a 2 hour difference according to the certficate output from creating the profiles.
I will test and set my PC clock to another time zone and delete and recreate my apple certs to see if the time then changes according to the new settings.
Ok I have a fix the provision time check failure. The date parse from the provision file was not properly converting it to UTC. In fact it was converting it to local time. Good catch. I’ll try to get the fix in to the upcoming hot fix if I can.