tpoechtrager / osxcross

Mac OS X cross toolchain for Linux, FreeBSD, OpenBSD and Android (Termux)
GNU General Public License v2.0
2.91k stars 329 forks source link

iOS? #38

Open reduz opened 9 years ago

reduz commented 9 years ago

Question, does this work for cross compiling to iOS?

tpoechtrager commented 9 years ago

No. Not yet.

For now you can use https://github.com/tpoechtrager/cctools-port/tree/master/usage_examples/ios_toolchain


Fur future visitors: You can find an explanation on how to setup an iOS toolchain with 64-bit support here and here.

tpoechtrager commented 9 years ago

I am not sure if I should really add iOS support to OSXCross, all the OS ifs, e.g.:

if iOS {
  // iOS
} else if OSX {
  // OS X
}

are... annoying.

And I am not sure what tools like xcrun should do by default when both toolchains are installed, etc. etc..

To the watchers: is there any interest for iOS support in OSXCross? And does someone of you own a jailbroken iOS ARM64 device who could possibly do some testing?

reduz commented 9 years ago

If it helps, we need it for doing Godot builds, but not necessarily want to use it for Jailbroken devices. Godot will export an XCode project with the precompiled binaries so actual developers with a mac can build and deploy legally. The problem is that creating those binaries in an automated system that is cloud hosted is impossible due to no (cheap at last) access to macs, which is a problem given we are quite a popular opensource project.

So being able to just build the binaries for OSX and iOS on a regular linux machine would be priceless for us.

tpoechtrager commented 9 years ago

Well, tbh, I have no clue how iOS code signing works, so no idea how to make the binaries run/work on non-jailbroken devices.

Do you need more than what https://github.com/tpoechtrager/cctools-port/tree/master/usage_examples/ios_toolchain provides?

xavier83 commented 8 years ago

@reduz there are some instructions here xchain, but it is ancient and unmaintained though.

akien-mga commented 4 years ago

I guess this could be closed, as we do cross-compile Godot to iOS from Linux using osxcross. Here's the Dockerfile for our iOS build container: https://github.com/godotengine/build-containers/blob/master/Dockerfile.ios

Do you need more than what https://github.com/tpoechtrager/cctools-port/tree/master/usage_examples/ios_toolchain provides?

That's indeed what we use and it seems to work fine.

palmerc commented 2 years ago

Well, tbh, I have no clue how iOS code signing works, so no idea how to make the binaries run/work on non-jailbroken devices.

Do you need more than what https://github.com/tpoechtrager/cctools-port/tree/master/usage_examples/ios_toolchain provides?

This message is old, but really codesign is unnecessary as long as the binary is otherwise working. Once built code signing can still be managed on a Mac. Building the software in the cloud would be a major win.

dvc94ch commented 2 years ago

I don't think any of this is needed anymore since clang and lld are already cross compilers/linkers. You can cross compile to mac/ios using a recent clang/lld. As for other stuff you'd want to do like codesigning, notarization and building dmgs, it's all possible from linux using [0]. If you're trying to cross compile rust you might find [1] more convenient, which handles downloading the ios/macos sdks, setting all the correct flags for cargo/rust/clang/lld and then codesigning/notarizing/packaging the result.