6 ms·
I currently use cctools (https://github.com/tpoechtrager/cctools-port.git https://github.com/tpoechtrager/cctools-port.git) to cross compile iOS apps from my 32
by JesseLivermore 8y ago
I currently use cctools (https://github.com/tpoechtrager/cctools-port.git https://github.com/tpoechtrager/cctools-port.git) to cross compile iOS apps from my 32-bit Linux computer. Then I load onto my phone using Cydia Impactor.
It's much more flexible to do it this way than using the latest version of Xcode. I can compile a 32-bit app that runs on iOS 6, or I can compile a 64-bit app using the iOS 7 sdk.
I also prefer compiling OS X apps on my Linux box, because I can use whichever version of clang I want, but compile it so that it will run on Snow Leopard. The dev environment for Snow Leopard is missing a lot of the newer features of Objective-C, so I find it easier to do this, than to use the latest version of macOS and Xcode.
I only use Objective-C, I haven't tried cross compiling Swift, simply because I do not like the language.
- hardwaresofton 8y agoThanks for the pointer and explanation of how you work -- I have a ton of questions about this: - 32bit linux, still? Is there any reason you haven't gone 64, or have you just been on some rock solid distro that never felt like it needed the upgrade? - Cydia Impactor[0] requires a jailbroken iPhone, does it not? What version of iOS are you running on the actual device? I understand that you're compiling with iOS6/7 SDKs but I wonder how long they'll be supported, and how fluently they work on iOS12 for example. - Are there any limitations on versions for the Cocoa SDK that you use for building OSX apps? Do you worry at all about EoLing of support or anything like that? > I only use Objective-C, I haven't tried cross compiling Swift, simply because I do not like the language. Could you explain this and why? While I'm not necessarily a Swift fan because I don't think it does particularly well in comparison with some of the recent languages that I really enjoy using, I found Objective-C to be pretty jarring. Clearly you know a thing or two about the toolchain and Objective C, I'd love to know why you prefer it to Swift or why you think Swift is not worth switching over to just yet (if at all). This is kind of random but maybe the thought will be interesting -- I've often wondered why it's not possible to actually just build and run XCode (or at least the lower level toolchain) on an apple device like a phone. Has anyone heard of anything in this area? [0]: http://www.cydiaimpactor.com/ http://www.cydiaimpactor.com/
- JesseLivermore 8y agoI'm still using 32bit linux because I'm on Slackware and the multilib situation is too annoying for me to deal with. I tried to upgrade to 64bit Slackware but I need Wine, and it's much easier to set up on a 32bit machine. I don't want to switch to another distro because most of them use systemd, and I use my own custom window manager. Cydia Impactor does not require a jailbroken iPhone, it is generally used to initiate the process of jailbreaking, by sideloading an app onto the device. I have an SE running iOS 12, an iPad Mini running iOS 10, and a 4S running iOS 6. iOS 10 is the last version to support 32bit apps. If I compile with the iOS 7 SDK, the app will still run with later versions of iOS, it's only if you need the header files for some of the API's that are only in the later versions of iOS that you should use a more recent SDK to make your life easier, but you can still send the messages via Objective-C without the actual header files (because of introspection the API is available at runtime). I'm not sure what you mean by limitations for the Cocoa SDK and OSX apps. I do this for my own personal code, it's not something I distribute so I don't worry about End of Life It's just that I started with C and Objective-C, and it's a lot of work to bridge between Swift and C, so I'd rather stick to Objective-C. Also there is no 32bit Swift runtime (that I am aware of). I just like being able to run my code on older 32bit processors. Objective-C is just so dynamic and the fact that it's just a thin layer on C is very appealing to me. I'm more fond of the Objective-C runtime itself than I am of Foundation. I have a jailbroken 4S with iOS 6, and you can install clang and all the tools you need to compile an app on the device itself. No need for Xcode at all unless you need storyboard or to submit an app to the App Store. Most of the toolchain can be downloaded from Cydia, and you can read the instruction for Theos to get an idea of how it works, but you don't need to use Theos, you can compile it with clang yourself (on the device).
- ryandrake 8y agoAs a macOS/iOS developer who more or less does things the “by the book” Apple way, using Apple HW, Xcode, etc. I don’t know whether to give you a high-5 or shake my head! It’s fascinating to know there are developers like you out there, doin’ it the hard way just to target “legacy” hardware. Very interesting setup.