Distribution Packing iOS on Source build fails

Moving my blueprint only project to source so I can use the Flurry plugin and target 64bit only and it fails when trying to package for distribution. Version is 4.9 and I also moved from a Windows machine to OS X 10.10.5 with Xcode 7.0. Packing for distribution works fine from the 4.9.2 binary version on the mac. The build configuration when I open the project in source is Debug, not sure if that makes a difference and I don’t know how to open it in a different configuration.

[link text][1]

74871-ios-packaging-error.txt (61.5 KB)

Hey ,

After looking over the logs provided, the error seems to stem from: *ERROR: UBT ERROR: Failed to produce item: /Users//Documents/Unreal Projects/Sudoku-4.9 4.9/Binaries/IOS/Sudoku-IOS-Shipping*

  • Have you tried deleting your DerivedDataCache, Intermediate and Saved folders from your project folder?
  • Can you replicate this on a new project?
  • Does the same thing happen to your project in 4.10?

I was able to get it to package. The problem was with the DefaultEngine.ini. I’m not sure what the exact problem was but I used the DefaultEngine.ini from a new project and copied in the necessary lines from DefaultEngine.ini that I had been using.

There is one problem remaining now with the line:

Unable to load module ‘OnlineSubsystemIOS’ because the file ‘/Users//Downloads/UnrealEngine-4.9/Engine/Binaries/Mac/’ was not found.\

This occurs with bSupportsInAppPurchasing=True set in the DefaultEngine.ini or in the IOSEngine.ini. I’ve also tried bSupportInAppPurchasing=True and I still get the error.

I’m glad that you got part of the issue resolved. Lets look into the second half.

So when bSupportInAppPurchasing=False you do not get the error of:

Unable to load module 'OnlineSubsystemIOS' because the file '/Users//Downloads/UnrealEngine-4.9/Engine/Binaries/Mac/' was not found.\

Could you show me the output logs from your project having it set as bSupportInAppPurchasing=True and bSupportInAppPurchasing=False.

Thanks!

Hey ,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will offer further assistance.

Thank you!

The second problem I had with OnlineSubsystemIOS seems to have resolved itself but I did narrow down what causes the original problem.

I get the original error when setting the minimum iOS version to 8. When it is set to 6.1 it packages fine. I get the same error on a blank project also, This is a problem because I get an error when uploading for testflight because minimum OS in info.plist needs to be set to 8. Also a second error on uploading I get is arm64 is not added in the info.plist under UIRequiredDeviceCapabilities.

Is there a way to edit the info.plist? I tried to open the ipa and I did edit it but I get an invalid signature error when uploading. I also tried modifying the info.plist in the saved and intermediate folders but those get overwritten each time I package.

I discovered you can re-sign with the iphonepackager so I think I’m good now.

edit: I spoke too soon. I got an email back from iTunes store saying it has an invalid signature. Is there a correct way to resign it on a mac?

Here is the [documentation for iOS][1]. This should have all information needed to complete your signing process.

Setting Up an Unreal Engine Project for iOS | Unreal Engine 5.1 Documentation

That has nothing about re-signing an ipa after modifying it. I was able to get is re-signed correctly but the ipa is 30mb smaller and gets stuck on installing on my iphone.

I’ve spent two weeks trying to work around the bugs to package my game but have been unsuccessful so now I’m stuck.

Error I get after packaging with 4.9:

Even if it would package with MinimumOSVersion set to 8 there would still be an error about arm64. I also get this error with 4.10 and it probably happens with 4.11 also but I’ve been unable to test it because the source build just crashes.(arm64 for shipping is the only thing checked but armv7s is still set in the info.plist)

Since metal doesn’t work on iOS 8 when working with 4.10 or 4.11 I decided I would just set the MinimumOSVersion to 9 but that is not an option. I tried to add it as an option in the source code but was unsuccessful. I would still get the arm64 error anyways.

Should I create a new bug report for arm64 not getting set in the info.plist and the missing option of 9 for the MinimumOSVersion? And is there something I could modify in the source code to fix this now?

If this could get fixed for 4.11 I think I could live with that although I would prefer to support IOS 8 also.

I finally was able to edit the info.plist, re-sign it and successfully upload it to iTunes connect.

What I did was:

  • after packaging it I went into project\binaries\IOS\Payload and modified the info.plist.
  • I then found the codesign command towards the end of the output log that was generated from packaging and ran it in the terminal.
  • I then ran the command zip -qr resigned.ipa Payload

I’m glad you were able to resolve this on your own. If you run into any additional complications, please let us know.

Have a great day!