Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-17041] Support Centralized Mac Server for building iOS from other operating systems

GitHub Issuen/a
TypeNew Feature
PriorityLow
StatusOpen
ResolutionUnresolved
Affected Version/sn/a
Fix Version/sn/a
Componentsn/a
Labelsn/a
ReporterBert Grantges
AssigneeChris Barber
Created2014-05-28T22:03:02.000+0000
Updated2015-06-18T14:47:41.000+0000

Description

As a developer, i would like to be able to configure the Appcelerator Studio / Titanium Studio environment to build for iOS using a centralized server when i am building on non Mac systems. Use Case: I am a developer using Appcelerator Studio on a Windows 8 machine, but i am building an application that supports iOS, Android and Windows targets. Current Behavior I can't build for IOS, i must open the project on a Mac and build the project from there. Desired Behavior I can configure the project to leverage a remote mac to build my project from source. The console should receive associated output during the build to denote errors etc. On build completion we should be able to access the ipa through a standardized distribution mechanism.

Comments

  1. Christopher Williams 2014-05-29

    I have no idea what we'd need to pipe over to the Mac (the initial Titanium project? the Xcode project?), or how the Mac would get set up to do the builds. This sounds a little closer to something you'd have more knowledge on.
  2. Chris Barber 2014-05-29

    I know exactly what we need to do: we need to build the Titanium daemon and an overhaul to the Titanium CLI to communicate with it. Everybody will rejoice when it's released in 2016. In the meantime, we could implement the "export" command where we bundle up a Titanium-free Xcode project that can be shipped over to a Mac for compilation. Everybody will rejoice when this is released in 2015. Or they could just switch to a Mac today.
  3. Bert Grantges 2014-05-30

    Agree with you Barber on the Mac comment - but the enterprise world is still very MSFT focused. basically we get a lot of requests / asks from prospects or customers on whether or not they can build for IOS while programming on WIndows. Short of building a full cloud compilation system to do this, i was thinking that there might be a way to trigger the Titanium CLI on a networked mac server. We wouldn't need to send the code / project over the network, we could pull from source control. I know the obvious thought here is that its starting to sound like a CI tool, so one way to look at this would be to update the run configuration for a platform target to include a field to enter a jenkins URL or other remote trigger url for a centralized build server. i can see this as being handy for building on windows from a Mac as well.
  4. Chris Barber 2014-05-30

    [~bgrantges] I guess the main question is why? If you want to build for iOS, you SHOULD be on a Mac. We simply aren't there yet to support this feature. You can't even create an iOS enabled Titanium app from Windows. The next generation Titanium CLI will most likely be able to support this. A CI server would work, but that's outside the scope of Titanium.
  5. Bert Grantges 2014-06-01

    [~cbarber] Within the large enterprises, IT still has a hang-up about macs. They don't have security models in place, and typically don't have a lot of expertise to support it as well. Buy 20 macs and having them try and figure that out is a much greater task than on build machine thats locked down on a network someplace internal. That, and even with big budgets these organizations can be pretty cheap, and aren't looking to go buy everyone new macs.
  6. Chris Barber 2014-06-02

    [~bgrantges] I get that, but since we don't support this feature today, and won't anytime soon, their only options are buying a Mac and using a large amount of duct tape to send code to the Mac, build it the app, and return the app. And what are you going to do with the app then? You can't just install an iOS app on an iOS device from a Windows machine without hacking together some 3rd party libraries. Plain and simple, we just do not support this.

JSON Source