[iOS] Fail to package StrategyGame for iOS

I have trouble compiling the Sample Project StrategyGame to iOS device. I was able to compile SwingNinja though.

I made sure I had the provisioning profile at the right place.

I check the output log between the 2 and it seems that the StrategyGame’s Info.plist is trying to saved to a weird location.

Here’s the error:

MainFrameActions: Packaging (iOS): env: ProcessInfoPlistFile /Users/Shared/UnrealEngine/4.1/Engine/Binaries/IOS/Payload/StrategyGame.app/Info.plist /Users/Shared/UnrealEngine/4.1/Engine/Source/Programs/StrategyGame/Resources/IOS/StrategyGame-Info.plist
MainFrameActions: Packaging (iOS): env:     cd "/Users/khinboon/Documents/Unreal Projects/Strategy Game 4.1"
MainFrameActions: Packaging (iOS): env:     export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/Shared/UnrealEngine/4.1/Engine/Build/BatchFiles/Mac/../../../Binaries/ThirdParty/Mono/Mac/bin:/usr/bin:/bin:/usr/sbin:/sbin"
MainFrameActions: Packaging (iOS): env:     builtin-infoPlistUtility /Users/Shared/UnrealEngine/4.1/Engine/Source/Programs/StrategyGame/Resources/IOS/StrategyGame-Info.plist -genpkginfo /Users/Shared/UnrealEngine/4.1/Engine/Binaries/IOS/Payload/StrategyGame.app/PkgInfo -expandbuildsettings -format xml -platform iphoneos -resourcerulesfile /Users/Shared/UnrealEngine/4.1/Engine/Binaries/IOS/Payload/StrategyGame.app/CustomResourceRules.plist -o /Users/Shared/UnrealEngine/4.1/Engine/Binaries/IOS/Payload/StrategyGame.app/Info.plist
MainFrameActions: Packaging (iOS): env: error: could not read data from '/Users/Shared/UnrealEngine/4.1/Engine/Source/Programs/StrategyGame/Resources/IOS/StrategyGame-Info.plist': The file ???StrategyGame-Info.plist??? couldn???t be opened because there is no such file.

For comparision, here’s the output of SwingNinja:

MainFrameActions: Packaging (iOS): env: ProcessInfoPlistFile /Users/Shared/UnrealEngine/4.1/Engine/Binaries/IOS/Payload/UE4Game.app/Info.plist [B]/Users/Shared/UnrealEngine/4.1/Engine/Intermediate/IOS/UE4Game-Info.plist[/B]
MainFrameActions: Packaging (iOS): env:     cd "/Users/khinboon/Documents/Unreal Projects/Swing Ninja 4.1"
MainFrameActions: Packaging (iOS): env:     export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/Shared/UnrealEngine/4.1/Engine/Build/BatchFiles/Mac/../../../Binaries/ThirdParty/Mono/Mac/bin:/usr/bin:/bin:/usr/sbin:/sbin"
MainFrameActions: Packaging (iOS): env:     builtin-infoPlistUtility /Users/Shared/UnrealEngine/4.1/Engine/Intermediate/IOS/UE4Game-Info.plist -genpkginfo /Users/Shared/UnrealEngine/4.1/Engine/Binaries/IOS/Payload/UE4Game.app/PkgInfo -expandbuildsettings -format xml -platform iphoneos -resourcerulesfile /Users/Shared/UnrealEngine/4.1/Engine/Binaries/IOS/Payload/UE4Game.app/CustomResourceRules.plist -o /Users/Shared/UnrealEngine/4.1/Engine/Binaries/IOS/Payload/UE4Game.app/Info.plist

The difference is that the StrategyGame is trying to access the Info.plist file inside the installation path of Unreal Engine, but when I’m trying to download it through Unreal Engine Launcher, it is place in my Documents folder instead.

One thing to note is that this might not be the cause of the issue. Unreal Engine still generating the IPA file. but there’s seems to be a lack of PROVISIONING_PROFILE_REQUIRED=YES which cause the the provisioning profile not be embedded.

I’m quite well verse in Xcode project modification but I have no idea where I can modify these settings which is making it a frustrating session.

This looks like a bug. I’ll have QA see if they can reproduce this. We’ve also fixed up some issues with the generated Xcode project for the next release, so this may be fixed in 4.2.

-Pete

Hey Ixcid,

We believe the issue you were hitting was fixed in the recent 4.2 release. If you are able to check this on 4.2 or 4.2.1, please let us know if you are still experiencing this issue by replying/bumping this thread and we’ll be glad to investigate further.

Thanks,

-Steve

Could you describe what the fix was. I’m having a similar issue with my own project in 4.4.1.

Howdy rogerfreedom,

Thank you for posting on this issue. Just a couple more question so I can further investigate what you are currently experiencing. What device are you using to package this project ad what version is it currently running on? Does this only occur on your project? Any additional information would be greatly appreciated.

Thanks and have a great day!

Hi Sean,

On a 2013 MacBook Pro running Mavericks. I’m noticing variable behaviour. When I first built StrategyGame it worked. Then later it failed in the same fashion. On my project if I run the command that generates that error from a Terminal while in the same folder as the project then it works. Here’s the command I run:

/usr/bin/env UBT_NO_POST_DEPLOY=true /usr/bin/xcrun xcodebuild build -project “/JBGDepot/DarkChill/Project/DarkChill.xcodeproj” -scheme ‘DarkChill - iOS’ -configuration Development CODE_SIGN_IDENTITY=“iPhone Developer”

When it works (from Terminal command line) I get this result:

ProcessInfoPlistFile /GitHub/UnrealEngine/Engine/Binaries/IOS/Payload/DarkChill.app/Info.plist Intermediate/IOS/DarkChill-Info.plist

When it doesn’t work (from Unreal Editor) I get this result:

ProcessInfoPlistFile /GitHub/UnrealEngine/Engine/Binaries/IOS/Payload/DarkChill.app/Info.plist /GitHub/UnrealEngine/DarkChill/Intermediate/IOS/DarkChill-Info.plist

When I generate the project using “Services | Generate Xcode Project” it generates the following Build Settings in the project, which are somewhat suspect. I’ve tried changing these to my project folder but that didn’t help.

Build Products Path: /GitHub/UnrealEngine/Engine/Binaries/IOS/Payload
Intermediate Build Files Path: /GitHub/UnrealEngine/Engine/Intermediate/IOS/build
Pre-Configuration Build Products Path: /GitHub/UnrealEngine/Engine/Binaries/IOS/Payload
Info.plist File: /GitHub/UnrealEngine/DarkChill/Intermediate/IOS/DarkChill-Info.plist

No matter what value I have for “Info.plist File” in “Build Settings” when Unreal Editor runs the xcodebuild command I always get this result:

ProcessInfoPlistFile /GitHub/UnrealEngine/Engine/Binaries/IOS/Payload/DarkChill.app/Info.plist /GitHub/UnrealEngine/DarkChill/Intermediate/IOS/DarkChill-Info.plist

hey ,

I just looked in our bug database and found that there is a bug that has been previously reported. The issue reported is that StrategyGame-Info.plist is at the wrong location. Would this be similar to the issue that you are currently seeing?

Please let me know if it is not so that i may further investigate.

Thanks!

Ok, figured it out. There’s an evil dependency in the project generation code that requires your project to be in a folder with the same name as the project, otherwise it generates a bogus project setup. In my case my project was in /JBGDepot/DarkChill/Project/DarkChill.uproject. Moving it to /JBGDepot/DarkChill/DarkChill.uproject solved the problem. If you take a look at the following code in XCodeProjectFileGenerator.cs you’ll see the dependency:

foreach (string GameFolder in GameFolders)
{
if (GameFolder.EndsWith(Target.TargetName))
{
IsAGame = true;
GamePath = Toolchain.ConvertPath(Path.GetFullPath(GameFolder));
break;
}
}

When IsAGame ends up being false it’s game over for your project setup.

Cheers,

Glad to hear that you have found a solution for the issue. I am going to mark this thread as resolved for the time being. If you run across a similar error in a later build, please feel free to open this thread so that we may further investigate.

Thanks and have a great day!