Bob build ios on windows

Can i build ios on windows or not?

I get error.

Exception in thread "main" com.dynamo.bob.CompileExceptionError: /libexec/x86_64-win32/lipo.exe could not be found locally, create an application manifest to build the engine remotely.
        at com.dynamo.bob.Project.build(Project.java:455)
        at com.dynamo.bob.Bob.mainInternal(Bob.java:621)
        at com.dynamo.bob.Bob.main(Bob.java:670)
Caused by: java.lang.RuntimeException: /libexec/x86_64-win32/lipo.exe could not be found locally, create an application manifest to build the engine remotely.
        at com.dynamo.bob.Bob.getExeWithExtension(Bob.java:276)
        at com.dynamo.bob.Bob.getExes(Bob.java:216)
        at com.dynamo.bob.Bob.getExe(Bob.java:222)
        at com.dynamo.bob.bundle.IOSBundler.lipoBinaries(IOSBundler.java:131)
        at com.dynamo.bob.bundle.IOSBundler.bundleApplication(IOSBundler.java:324)
        at com.dynamo.bob.Project.bundle(Project.java:599)
        at com.dynamo.bob.Project.doBuild(Project.java:898)
        at com.dynamo.bob.Project.build(Project.java:445)
        ... 2 more

My original comment was apparently a bit confused since we don’t package lipo.exewith bob.

However, if you only build one architecture (e.g. arm64), we’re skipping the lipo stage. For bob, pass “–platform=armv7-darwin --architectures=arm64-darwin” to only build for arm64.

2 Likes

Thanks. But another error:)
java -jar bob/bob.jar --archive --platform=armv7-darwin --architectures=arm64-darwin build bundle --bo bob/dev/ios

 /libexec/x86_64-win32/strip_ios.exe could not be found locally, create an application manifest to build the engine remotely.

Also i am a confused. How platform and architecturesfor ios worked.
Bob platforms:
arm64-darwin iOS 64 bit
armv7-darwin iOS 32 bit

-platform=armv7-darwin --architectures=arm64-darwin
Wtf platform 32bit architectures 64 bit ?

java -jar bob/bob.jar --archive --platform=armv7-darwin --architectures=armv7-darwin --variant debug build bundle --bo bob/dev/ios

Exception in thread "main" com.dynamo.bob.CompileExceptionError: Cannot run program "cp": CreateProcess error=2, Не удается найти указанный файл
        at com.dynamo.bob.Project.build(Project.java:455)
        at com.dynamo.bob.Bob.mainInternal(Bob.java:621)
        at com.dynamo.bob.Bob.main(Bob.java:670)
Caused by: java.io.IOException: Cannot run program "cp": CreateProcess error=2, Не удается найти указанный файл
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
        at com.dynamo.bob.bundle.IOSBundler.bundleApplication(IOSBundler.java:474)
        at com.dynamo.bob.Project.bundle(Project.java:599)
        at com.dynamo.bob.Project.doBuild(Project.java:898)
        at com.dynamo.bob.Project.build(Project.java:445)
        ... 2 more
Caused by: java.io.IOException: CreateProcess error=2, Не удается найти указанный файл
        at java.base/java.lang.ProcessImpl.create(Native Method)
        at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:420)
        at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:151)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
        ... 7 more

сp is not window command)
Looks like build ios not worked on windows.

You are right. The line number doesn’t match the stack trace above (which version of bob are you using?) but I believe it is this line:

Bob will also try to call “zip” a couple of lines later which may also not work on Windows. These are minor things and should be relatively easy to solve.

2 Likes

Thanks.
bob.jar version: 1.2.178 sha1: af6a29c2a1e2545e2d033790089c606ac9f0bb7a built: 2021-01-11 08:49:44

Yeah, I think it’s safe to say that the iOS bundle currently doesn’t work all the way unfortunately. To get it to bundle should at least be doable if someone wishes to help with it. (E.g. replace “cp” with a platform alternative for Windows)

platform=armv7-darwin --architectures=arm64-darwin

Yes, it’s the old legacy names for the platforms that are a bit outdated here and we haven’t put any recent effort in cleaning them up completely.

Platform=armv7-darwin selects the IOSBundler.java. You can then omit the “–architectures” and it will select both armv7 and arm64. This is the default.
Or you can specify a specific architecture (armv7-darwin or arm64-darwin)

Wtf platform 32bit architectures 64 bit ?

I realise it can be frustrating when things doesn’t work as expected, but please be mindful of the language :slight_smile:

6 Likes