How on earth do you develop for iOS?

So we have been working on a mobile game for the past month and have run into about a thousand issues trying to package/publish for iOS. Android was fine, but we need to use iOS primarily. After troubleshooting hundreds of issues, here are the ones we can simply not get by.

  1. For any chance of displaying multiple ad networks, or ads, both banner and interstitial, we had to use the UniversalMobileAds plugin found on the forums. Cool, that is integrated nicely and set up properly. But oh! You can’t package for iOS with a 3rd party plugin enabled, unless you package on a Mac.

So, I install everything on a Mac. Boom - You can’t publish Blueprint Based Projects for iOS on Macs. So we can’t package our project on Windows, or Mac, unless we don’t use the plugin, in which case, we can’t have ads.

  1. Without the plugin, we can package and publish fine, it creates an IPA and I publish that on my Mac. But the resolution and textures are completely messed up and pixelated. While on Android, they are perfect and scale to different devices. We’ve tried messing with DPI Curve, Scale Boxes, Anchors, Size Boxes, and Device Profiles, and no matter what, the game does not scale to iOS Devices, and our textures with transparency still appear pixelated and distorted…

Someone please help!

worth a try,

to get a plugin to package on iOS with a mac i added an empty c++ Class to the project.

I was running in to similar problems. And when I finally got it to package properly, ads wouldn’t even run. Including the base engine banner ads. Haha…

In order to get it to package properly, I had to turn it into a C++ project like suggested. This then broke Game Center, which I fixed by adding this code to the build.CS;

 if ((Target.Platform == UnrealTargetPlatform.IOS))
 {
     PrivateDependencyModuleNames.Add("OnlineSubsystem");
     DynamicallyLoadedModuleNames.Add("OnlineSubsystemIOS");
     PrivateDependencyModuleNames.Add("Advertising");
     PrivateDependencyModuleNames.Add("IOSAdvertising");
 }

And here I am now, with ads still broken. The only guide on using iOS ads in C++ says to add this code to the target.CS just like in the Match 3 project;

if (Target.Platform == UnrealTargetPlatform.IOS)
{
ModuleNames.Add(“OnlineSubsystemFacebook”);
ModuleNames.Add(“OnlineSubsystemIOS”);
ModuleNames.Add(“IOSAdvertising”);
ModuleNames.Add(“MetalRHI”);

But doing so once again prevents it from packaging. The unaltered Match 3 project itself won’t package either, so this isn’t surprising.
Bang up , Epic. I’ve literally been trying for 2 months now to get ads working in my game.

From having worked through a number of issues on packaging on both iOS and Android I can definitely agree packaging is not the most agreeable at times. @rileygdev it’s surprising that packaging on Android has worked alot easier for you in my experience this has been the opposite. @Grimwolf what are the issues you are running into when packaging on iOS? Can you provide your build log? I’d be happy to take a closer look at things if it will help at all? You shouldn’t need to include all the modules you are describing just to get ads working, I have integrated multiple ad sdks across iOS and Android and haven’t had to include these modules explicitly ever. Indeed I’ve found like the rest of you that creating a UE project as a C++ project seems to lend itself better to SDK integrations.

I would also offer some of the work we are doing in office for SDK integration…

Upsight - GitHub - getsetgames/Upsight: Unreal plugin for integrating the Upsight SDK. Details can be found
Adobe Mobile/Omniture - GitHub - getsetgames/AdobeMobile: A UE4 plugin for working with Adobe Mobile analytics and marketi

Hopefully those repositories can provide some insight and of course happy to answer any further questions.

I gave up on it, and just reverted it to a blueprint only project. It wasn’t worth it. If I ever come to a point in the future where I need actual code for a game, I’ll probably just use Unity.

Ah sorry I didn’t see you’re post earlier. If you ever revisit this on Unreal in the future feel free to hit me up for questions