[4.7 preview 7] Invalid Signature error after uploading to iTunes

After uploading an IPA via application loader to iTunes, the binary is not accepted and you get an email from apple with the invalid signature error. The IPA was build with Windows and the 4.7 preview 7 release.

Invalid Signature - Your app’s
executable was modified after your app
was codesigned for submission to the
App Store. Because of this, the store
is unable to re-sign your application
for distribution. This can happen if
data was added to the executable after
the code signature was created.

You should ensure that your build
process does not further modify or
append to your app’s executable after
it has been signed. If you are using
tools other than Xcode to build and
sign your app, ensure that you are
using the latest version of those
tools, and consult the developer of
those tools for guidance.

Currently i suppose this is because the preview releases are not meant for shipping, but just in case this is a bug, i thought i post it here.

I’am experiencing the same issues. And it happens in both preview 7 and preview 6.

To add a bit more to that, running codesign --verify --no-strict with verbose output doesn’t show any errors. My output says:
Valid on disk
Satisfies its Designated Requirement

Without --no-strict argument, the output says
resource envelope is obsolete (custom omit rules)

After some searching, this seems to be connected to version of code sign (resource rules are deprecated in v2).

Howdy HEGI and Raool,

Thank you for reporting this issue. I am going to need a bit more information about this issue before I begin to investigate. Would you both being using a Windows or OS X?

Also, Would your issue be similar to the issue that this user has posted about: https://answers.unrealengine.com/questions/94493/application-loader-error-9000.html ?

Any additional information about this error would be greatly appreciated.

Thanks and have a great day!

Hey Sean!

I’am using Windows 7 to package the IPA.

The Application loader Error-9000 happened in 4.6.1, but does not happen in the 4.7 preview 7 anymore. The upload itself with Application loader works fine now and it says the App was delivered successfully. But the binary is never delivered because of the code sign error. Let me know if there are any other infos you need.

I have the same setup as HEGI (repackaging and code signing on windows 7). Additionaly, I try to use the OS X tools to determine where the problem is, but can’t find anything. The codesign tool seems to be ok with the signed .app, but only when --no-strict argument is passed. No fix to iPhonePackager comes to mind, except for trying to update it to v2 of codesigning, where custom resource rules are no longer allowed (but iPP uses them).

Hey HEGI and Raool,

I reached out to the developer that answered that question on the thread that was linked above and he has confirmed that that issue is being caused by the same error. Though you are still seeing the error in the preview builds, this is because the fix has been implemented into the release build for 4.7. At this point in time, I am unsure as to when this release will be made available to the public but I will be sure to keep you updated as I know more.

Thanks and have a great day!

So does that mean, that the fix is only available for epic internally? If so, could you at least tell us what the problem is, so we can fix it ourselves? Or maybe an ETA of the fix in public repository?

Hi Sean,

We have game ready for publish for almost 3 weeks now, and this issue is critical for us. It would be nice to hear when we can expect fix because we need to pick release date with stores ASAP.

fix has been implemented into the
release build for 4.7.
Any tips how to integrate it? Which files we need to merge?

Be grateful for help.

4.7 preview Preview 7 :
Same problem ~~ i got same mail than you :confused: I used a “Production” Certificate and a “Distribution” Provisioning Profiles (Ad Hoc because “App Store” is not working in UE4 it’s not turning to green :confused: …)
Anyway Good luck to you !

But the fix is making it into the 4.7 release version ?

Hi intoxicat3 and Raool,

The fix that Sean mentioned can be found here, if you are using a version of the Engine that you built from source code. That commit added the fix to the Master branch. There was apparently a minor snag in getting it added into the 4.7 branch, so it isn’t in 4.7 yet.

Tim

What i did was using the iPhonePackager from the master branch with the 4.7 preview 8. The upload to iTunes worked fine without the invalid signature error.

I am wondering how you made it… i tryed hard to do it… almost 5 days on it…
I am on 4.7 Preview 8 like you recommend ~~’.
In the engine on window i have not the “green” highligth, just green checkbox.
When i use the IphonePackager i have double checkbox and my Certificate and Distribution are matching… I have same email… invalid binary problem :confused:
I am very lost…

You need to build the iPhonePackager.exe from the GitHub master branch.
Then replace the exe in Unreal Engine\4.7\Engine\Binaries\DotNET\IOS
I dont think i’am allowed to post a link the compiled iPhonePackager.exe from the master branch. :confused: So you have to compile it yourself.

The other option would be, to package the game on OS X.

I see, i anderstand, thank you § I will try to do it, but a hotfix would be appreciated ! :o That’s very bad for Epic to not allow developper to put their game on Apple store, they are loosing money and making developper loosing money too~~ I am very surprised this is not taken seriously…
Have a great day HEGI !

Hey HEGI :slight_smile:
I made my IphonePackager, but i have new problem :
Did you encounter that too? than you )

Missing 64-bit support - Beginning on February 1, 2015 new iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need to follow the same requirements. To enable 64-bit in your project, we recommend using the default Xcode build setting of “Standard architectures” to build a single binary with both 32-bit and 64-bit code.

Nevermind i think i found it, i think i need to check :

  • Support arm64 in Shipping
  • Support armv7s in Shipping
    but i need to do that with github x))

Thanks a lot, this fix works perfectly :slight_smile: