ARkit on Windows?

Hello,

For developing with ARKit, can we use a Windows PC to develop, and then export to IOS device when complete development?

Because my computer is windows-based, and i cannot afford to purchase a MAC just to develop AR with ARKit.

This is actually a very good question. I am thinking about getting an Ipad Pro just to develop for the ARkit, but I also have a windows PC

2 Likes

To rephrase the question: Can we use a Windows PC to connect to IOS devices while developing, instead of using a Mac? Is a Mac compulsory?

Eagerly following this! Like you, my big windows rig would be ideal to develop from. The macs I had around all ended up being the last version (mid 2011) to sadly longer be supported to run the editor (since Epic dropped OpenGL support in lieu of Metal), which also seems to have cutoff any attempt to use a VM solution (unless you find one that supports a GPU). I don’t wish to purchase a new mac either, so have a bit of a corollary situation.

AFAIK, the only way to build c++ projects for iOS is from Xcode on a mac. Seems like BP projects could be dev’d and packaged from windows for iOS without a mac involved. I don’t know if that allows for debugging support, or if it’s just a packaging process. Now – to add in ARKit? What would that experience be like in the editor on windows?

I’m afraid that our prescribed windows-only course may be to work with BP-only projects and use the one ARKit component that aligns the world… and kinda do it blind in the editor with some form of PIE. Then as it’s a BP project, use the iOS packager to deploy from windows.

MAYBE there’s a trick to dev on windows and remote build to a mac (command line without the editor) with a connected iOS device. And in my dream that is fast and allows for debugging back through to windows :wink:

At the moment the ARKit bits are only available in the dev arkit branch of the engine on github, until 4.17 is released. I haven’t tried to build that branch on windows yet to see what the development or PIE experience is like, or if the new project type is even available. Have you by chance tried that?

I would guess that BP-only ARKit development will be possible with the binary version of UE4 on windows, like normal iOS development.

Could someone from Epic’s Staff answer this question ?

Yes, it would be nice to have some kind of information about this…

I’m not sure if any of y’all tried it out yet but I ended up being able to work on the ARSample project on Windows and once I was done I set up remote packaging to iOS and was able to package the project to iOS. Just make sure you are up to date with the iOS beta.

1 Like

Oh wow Nate, that’s sweet… I had tried to build the dev-arkit branch on two different Windows machines, just in case. But on both the editor would just freeze up when showing the project browser/new project dialog. I hadn’t tried to launch right from the ARSample project, if that’s what you did :wink:

https://artoolkit.org/
Artoolkit. can be used with UE4.
ARkit. Is apple software, and requires a “Mac.”
It seems there is confusion in people relating Artoolkit, and ARkit. They’re 2 different things.
ARkit is only used with Xcode. Xcode is only available on mac.
IF Your going to need “Xcode.” Your going to need a “Mac” That is the last, and final word!!!
Yes you can develop on windows. Then build your project on "“Xcode” on a “Mac”
“Windows.” Will NEVER run “XCODE”
http://www.unreal4ar.com/product/augmented-reality-plugin-for-ue4/
This is the 99$ plug in for AR.

I do not think there is confusion here, no one is talking about artoolkit.org.

I understand than Xcode need a mac but the question is what is the process to build an ARKit experience with unreal without having a Mac ?

I’m not very familiar with how UE4 normally allows iOS builds on windows, but my assumption is that they wont try to add equivalent functionality for new stuff like ARKit until after iOS11 and latest xcode are out of beta.

ARkit plugin is going to be added into the Unreal engine shortly. I think August. When that happens I think we will have a template for the editor, and an example game. What Epic always seems to do.
It’s available now on github. You can pull it with log in. https://github.com/EpicGames/UnrealEngine/tree/dev-ar-kit
This is swift xcode demo. Explains a lot.
https://www.youtube.com/watch?v=tgPV_cRf2hA

Great ideas to learn from the ARkit on Windows. Thanks for sharing a lot of these terms.

Yeah I’m just not sure how that’s going to go. I havent used anything objc, or swiift in windows. I know it’s possible because cocos2dx does it. At least they have branches.

To follow up on this, you can do this. I use the ARSample on my Windows and just copy the whole project folder to our Mac for compiling and deploying.

Great one)

Use ARCore - it’s on Windows and works with Android

Hello everyone. So, if you dont have a mac you cannot use the artkit ue4 plugin to deploy or launch UE4 projects on an ipad? I have succesfully installed Ue4 projects on ios before using just windows but this doesnt apply for ARkit? Thanks for any advice on this topic.

For me, building for iOS on Windows, using the Remote build option works fine. I can even deploy the IPA files to my iphone so it works. But just as I add the ARKit plugin into the project, it failes to build for some reason. Any help would be apreciated.

LogPlayLevel: Project.Build: ********** BUILD COMMAND STARTED **********
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 7.816924
LogPlayLevel: CommandUtils.Run: Run: C:\Program Files\Epic Games\UE_4.17\Engine\Binaries\DotNET\UnrealBuildTool.exe TestProject IOS Development -Project=“C:\Users\Luminet\Documents\Unreal Projects\TestProject 4.17\TestProject.uproject” “C:\Users\Luminet\Documents\Unreal Projects\TestProject 4.17\TestProject.uproject” -NoUBTMakefiles -remoteini=“C:\Users\Lu
minet\Documents\Unreal Projects\TestProject 4.17” -skipdeploy -noxge -generatemanifest -NoHotReload
LogPlayLevel: UnrealBuildTool: Picking the default remote server 192.168.10.38
LogPlayLevel: UnrealBuildTool: Doing date +"%s" && sysctl hw.memsize | awk ‘{print $2}’ && sysctl hw.logicalcpu | awk ‘{print $2}’
LogPlayLevel: UnrealBuildTool: Execute took 00:00:00.1686622
LogPlayLevel: UnrealBuildTool: Failed to run init commands on 192.168.10.38. Output =
LogPlayLevel: UnrealBuildTool: Failed to initialize a connection to the Remote Server 192.168.10.38
LogPlayLevel: CommandUtils.Run: Run: Took 3.5013623s to run UnrealBuildTool.exe, ExitCode=0
LogPlayLevel: CommandUtils.Run: Run: C:\Program Files\Epic Games\UE_4.17\Engine\Binaries\DotNET\UnrealBuildTool.exe TestProject IOS Development -Project=“C:\Users\Luminet\Documents\Unreal Projects\TestProject 4.17\TestProject.uproject” “C:\Users\Luminet\Documents\Unreal Projects\TestProject 4.17\TestProject.uproject” -NoUBTMakefiles -remoteini=“C:\Users\Lu
minet\Documents\Unreal Projects\TestProject 4.17” -skipdeploy -noxge -NoHotReload -ignorejunk
LogPlayLevel: UnrealBuildTool: Picking the default remote server 192.168.10.38
LogPlayLevel: UnrealBuildTool: Doing date +"%s" && sysctl hw.memsize | awk ‘{print $2}’ && sysctl hw.logicalcpu | awk ‘{print $2}’
LogPlayLevel: UnrealBuildTool: Execute took 00:00:00.0090089
LogPlayLevel: UnrealBuildTool: Failed to run init commands on 192.168.10.38. Output =
LogPlayLevel: UnrealBuildTool: Failed to initialize a connection to the Remote Server 192.168.10.38
LogPlayLevel: UnrealBuildTool: Parsing headers for TestProject
LogPlayLevel: UnrealBuildTool: Running UnrealHeaderTool “C:\Users\Luminet\Documents\Unreal Projects\TestProject 4.17\TestProject.uproject” “C:\Users\Luminet\Documents\Unreal Projects\TestProject 4.17\Intermediate\Build\IOS\TestProject\Development\TestProject.uhtmanifest” -LogCmds=“loginit warning, logexit warning, logdatabase error” -Unattended -WarningsAs
Errors -installed
LogPlayLevel: UnrealBuildTool: Reflection code generated for TestProject in 8.5888965 seconds
LogPlayLevel: UnrealBuildTool: Doing xcode-select --print-path
LogPlayLevel: UnrealBuildTool: Execute took 00:00:00.0075135
LogPlayLevel: UnrealBuildTool: Compiling with non-standard Xcode (xcode-select): /
LogPlayLevel: UnrealBuildTool: Doing ls /Platforms/iPhoneOS.platform/Developer/SDKs
LogPlayLevel: UnrealBuildTool: Execute took 00:00:00.0064892
LogPlayLevel: UnrealBuildTool: Compiling with iPhoneOS SDK on Mac 192.168.10.38
LogPlayLevel: UnrealBuildTool: ERROR: System.FormatException: Input string was not in a correct format.
LogPlayLevel: UnrealBuildTool: at System.Number.ParseSingle(String value, NumberStyles options, NumberFormatInfo numfmt)
LogPlayLevel: UnrealBuildTool: at System.Single.Parse(String s, IFormatProvider provider)
LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.IOSToolChainSettings…ctor(String DevicePlatformName, String SimulatorPlatformName)
LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.IOSToolChainSettings…ctor()
LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.IOSToolChain.<>c.<.ctor>b__1_0()
LogPlayLevel: UnrealBuildTool: at System.Lazy1.CreateValue() LogPlayLevel: UnrealBuildTool: at System.Lazy1.LazyInitValue()
LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.IOSToolChain.GetCompileArguments_Global(CppCompileEnvironment CompileEnvironment)
LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.IOSToolChain.CompileCPPFiles(CppCompileEnvironment CompileEnvironment, List1 SourceFiles, String ModuleName, ActionGraph ActionGraph) LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.UEBuildModuleCPP.Compile(ReadOnlyTargetRules Target, UEToolChain ToolChain, CppCompileEnvironment BinaryCompileEnvironment, List1 SharedPCHs, ActionGraph ActionGraph)
LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.UEBuildBinaryCPP.SetupBinaryLinkEnvironment(ReadOnlyTargetRules Target, UEToolChain ToolChain, LinkEnvironment LinkEnvironment, CppCompileEnvironment CompileEnvironment, List1 SharedPCHs, ActionGraph ActionGraph) LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.UEBuildBinaryCPP.Build(ReadOnlyTargetRules Target, UEToolChain ToolChain, CppCompileEnvironment CompileEnvironment, LinkEnvironment LinkEnvironment, List1 SharedPCHs, ActionGraph ActionGraph)
LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.UEBuildTarget.Build(BuildConfiguration BuildConfiguration, CPPHeaders Headers, List1 OutputItems, List1 UObjectModules, ActionGraph ActionGraph)
LogPlayLevel: UnrealBuildTool: at UnrealBuildTool.UnrealBuildTool.RunUBT(BuildConfiguration BuildConfiguration, String] Arguments, FileReference ProjectFile)
LogPlayLevel: CommandUtils.Run: Run: Took 49.9715886s to run UnrealBuildTool.exe, ExitCode=5
LogPlayLevel: Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.CommandUtils+CommandFailedException: Command failed (Result:5): C:\Program Files\Epic Games\UE_4.17\Engine\Binaries\DotNET\UnrealBuildTool.exe TestProject IOS Development -Project=“C:\Users\Luminet\Documents\Unreal Projects\TestProject 4.17\TestProject.uproject” “C:
Users\Luminet\Documents\Unreal Projects\TestProject 4.17\TestProject.uproject” -NoUBTMakefiles -remoteini=“C:\Users\Luminet\Documents\Unreal Projects\TestProject 4.17” -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: ‘UnrealBuildTool-2017.09.21-11.16.09.txt’
LogPlayLevel: at AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary2 EnvVars, SpewFilterCallbackType SpewFilterCallback) LogPlayLevel: at AutomationTool.CommandUtils.RunAndLog(CommandEnvironment Env, String App, String CommandLine, String LogName, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary2 EnvVars, SpewFilterCallbackType SpewFilterCallback)
LogPlayLevel: at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName, Dictionary2 EnvVars) LogPlayLevel: at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, FileReference Project, String Target, String Platform, String Config, String AdditionalArgs, String LogName, Dictionary2 EnvVars)
LogPlayLevel: at AutomationTool.UE4Build.BuildWithUBT(String TargetName, UnrealTargetPlatform TargetPlatform, String Config, FileReference UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, String InAddArgs, Boolean ForceUnity, Dictionary2 EnvVars) LogPlayLevel: at AutomationTool.UE4Build.Build(BuildAgenda Agenda, Nullable1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InUseParallelExecutor, Boolean InForceNonUnity, Boolean InForceUnity, Boolean InShowProgress, Dictionary2 PlatformEnvVars, Nullable1 InChangelistNumberOverride, Dictionary2 InTargetToManifest) LogPlayLevel: at Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL, ProjectBuildTargets TargetMask) LogPlayLevel: at BuildCookRun.DoBuildCookRun(ProjectParams Params) LogPlayLevel: at BuildCookRun.ExecuteBuild() LogPlayLevel: at AutomationTool.BuildCommand.Execute() LogPlayLevel: at AutomationTool.Automation.Execute(List1 CommandsToExecute, Dictionary2 Commands) LogPlayLevel: at AutomationTool.Automation.Process(String] Arguments) LogPlayLevel: at AutomationTool.Program.MainProc(Object Param) LogPlayLevel: at AutomationTool.InternalUtils.RunSingleInstance(Func2 Main, Object Param)
LogPlayLevel: at AutomationTool.Program.Main()
LogPlayLevel: Program.Main: AutomationTool exiting with ExitCode=5 (5)
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 53.064067
LogPlayLevel: BUILD FAILED