Building the Titanium Mobile
SDK from source
Angus Fox @nuxnix
CTO @Multizone
CTO @PiotaApps- Over 250 Alloy apps iOS and Android
Co organiser - London Twitter Developer Community
Lightning Talk
Titanium London
18 May 2017
Open Source
The project is Open Source. https://github.com/appcelerator/
titanium_mobile
The prebuilt GA release is available only as part of the Appcelerator
Platform. The Appcelerator Platform GA builds are hidden but the link
construct is as it always has been e.g. http://builds.appcelerator.com/
mobile-releases/5.5.1/mobilesdk-5.5.1.GA-osx.zip
Nevertheless it would be a step toward freedom from Appcelerator
licencing and the platform to be able to build it outselves from the
Open Source on Github.
Unfotunately the tools required are arcane and out of date.
Prerequisites
Apps SDK
MacOS sierra 10.12.x
Python setuptools, and the pyyaml
and Pygments libraries
Xcode 8.2.1 Android NDK r9d (obsolete)
Android SDK 23
SCons, Apache Ant, Eclipse, ADT
(for Android), Gperf
Node.js 4.2.6 max (obsolete)
Apple Java JDK for macOS 1.6
(obsolete)
Android SDK
To install Android Studio on your Mac, proceed
as follows:
Launch the Android Studio DMG file.
Drag and drop Android Studio into the
Applications folder, then launch Android Studio.
Select whether you want to import previous
Android Studio settings, then click OK.
Complete the Android Studio Setup Wizard
Choose Configure --> SDK manager and install
API 23 (Marshmallow / 6.0) and r21 versions of
the tools
Note SDK location /Users/angusf/Library/
Android/sdk
https://en.wikipedia.org/wiki/Android_Studio
Android NDK
r9d macOS 64 bit
This is no longer easy to find
but can be installed Install by
unpacking to a suitable place
fromthe old ddownload archive 
https://dl.google.com/android/
ndk/android-ndk-r9d-darwin-
x86_64.tar.bz2
I chose ~/Library/Android/ndk/
android-ndk-r9d near to where
Android Studio put the SDK.
https://en.wikipedia.org/wiki/Android_(operating_system)
Brew Package Manager
Brew is s package manager for
macOS that makes it easier to
install stuff 
https://brew.sh/
Ant - a Java library and command-
line tool that helps building software.
SCons used to be used to build the
Titanium SDK, it is a build tool like
make
$ brew install ant
$ brew install scons
https://en.wikipedia.org/wiki/Homebrew_(package_management_software)
Node.JS 4.2.6
N - Node Version Manager because
Titanium requires a very specific version of
Node.JS
$ cd /usr/local
…
$ brew install n
$ n 4.2.6
     install : node-v4.2.6
       mkdir : /usr/local/n/versions/node/4.2.6
       fetch : https://nodejs.org/dist/v4.2.6/
node-v4.2.6-darwin-x64.tar.gz
#################################################
####################### 100.0%
   installed : v4.2.6
• Building Titanium Mobile requires Java 1.6 Developer Tools. Java was
provided by Apple under licence from Sun Microsystems back in the
1.6 era.
• You can still find Java 1.6 for OS X https://support.apple.com/en-gb/
HT202912.
• This isn't a JDK but the note gives a clue. It says “This package
installs the same version of Java 6 included in Java for OS X
2013-005.”
• Unbelievably this installs fine on macOS Sierra. Its completely
obsolete but required for Android development.
JDK 1.6 for macOS Sierra
tisdk
$ npm install -g tisdk
$ tisdk list
6.0.3.GA    295540edadd20c0eecdc2c92ae813ae485d624d9
6.0.2.GA    3c5806f49b0cb252e0ae0f5313b114717dfd3fe9
6.0.1.GA    265db0df5c5ad73390d10209cd9ac81e2703b6b0
6.0.0.GA    1aa3df8102146fa1346ff5d79781655c715818b1
5.5.1.GA    b18727f7ccea7217f505a4639d4a0005ab1d3bfe
...
https://github.com/dbankier/tisdk
Building Titanium Mobile
SDK
$ tisdk build 5.5.1.GA
...
full.build:
BUILD SUCCESSFUL
Total time: 5 minutes 29 seconds
...
$ls
-rw-r--r--   1 angusf  staff  110714965  5 Apr 23:45
mobilesdk-5.5.1.GA-osx.zip
https://github.com/dbankier/tisdk
Checking what we got
This is the self built SDK.
$ ~/Library/Application Support/Titanium/
mobilesdk/osx/5.5.1
$ find . -type f | wc -l
8242
This is the 5.5.1.GA build from
Appcelerator.
$ ~/Library/Application Support/Titanium/
mobilesdk/osx/5.5.1.GA$ find . -type f | wc -
l
8242
The same number of files is a good sign.
Building Titanium CLI, and
Alloy
$ npm install -g titanium alloy appcelerator
$ ti sdk
ti sdk
Titanium Command-Line Interface, CLI version 5.0.12, Titanium SDK version 5.5.1
Copyright (c) 2012-2015, Appcelerator, Inc. All Rights Reserved.
Please report bugs to http://jira.appcelerator.org/
SDK Install Locations:
/Library/Application Support/Titanium
/Users/angusf/Library/Application Support/Titanium [default]
Installed SDKs:
5.5.1 [selected] 5.5.1 /Users/angusf/Library/Application Support/Titanium/mobilesdk/
osx/5.5.1
$
Test
Test by creating an empty Alloy app using CLI and Atom. Open a
new terminal and enter
ti create --id com.test -d . -n APPNAME -p all -
t app -u http://youdomain.name
$ cd APPNAME/
$ alloy new
$ ti build -p ios -C ?
Hello World app should open on your simulator
Thanks, Questions? Tweet @nuxnix Slides at slideshare.net/nuxnix

More Related Content

PDF
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
PDF
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
PDF
GCE 上搭配 Cloud Storage 建置 Drone CI
PDF
Webinar - Automated Puppet Code Deployment with R10K
PDF
How to ros
PDF
Puppet Camp Atlanta 2014: r10k Puppet Workflow
PDF
Google ARが提供する WebAR 101
PDF
Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
GCE 上搭配 Cloud Storage 建置 Drone CI
Webinar - Automated Puppet Code Deployment with R10K
How to ros
Puppet Camp Atlanta 2014: r10k Puppet Workflow
Google ARが提供する WebAR 101
Linux Security and How Web Browser Sandboxes Really Work (Security Researcher...

What's hot (12)

PDF
Linux Security and How Web Browser Sandboxes Really Work (NDC Oslo 2017)
PDF
OpenChain AutomotiveWG(OSS license tools()
PDF
Cqrs agile tourvienna
PDF
用 Go 語言實戰 Push Notification 服務
PDF
Startup Camp - Git, Python, Django session
PDF
Riding on rails3 with full stack of gems
PDF
Docker 1.10 1.11
PDF
R10K Workshop - PuppetConf 2014
PDF
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
PDF
Avoiding Performance Potholes: Scaling Python for Data Science Using Apache ...
PDF
PyParis2018 - Python tooling for continuous deployment
Linux Security and How Web Browser Sandboxes Really Work (NDC Oslo 2017)
OpenChain AutomotiveWG(OSS license tools()
Cqrs agile tourvienna
用 Go 語言實戰 Push Notification 服務
Startup Camp - Git, Python, Django session
Riding on rails3 with full stack of gems
Docker 1.10 1.11
R10K Workshop - PuppetConf 2014
Chaos Engineering 시작하기 - 윤석찬 (AWS 테크에반젤리스트) :: 한국 카오스엔지니어링 밋업
Avoiding Performance Potholes: Scaling Python for Data Science Using Apache ...
PyParis2018 - Python tooling for continuous deployment
Ad

Similar to Titanium London Lightning Talk - Building Titanium from the source (20)

PDF
Flutter Vikings 2022 - Full Stack Dart
PDF
Mobile development in 2020
ODP
Android porting for dummies @droidconin 2011
PDF
Build and run embedded apps faster from qt creator with docker
 
PPTX
Webinar: Building Embedded Applications from QtCreator with Docker
PDF
Beginners guide-to-reverse-engineering-android-apps-pau-oliva-fora-viaforensi...
PDF
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
PPTX
Scaling Development Environments with Docker
PDF
Lecture02web 140phpapp01
PPTX
Open-source Android 10 on Orange Pi: myth or reality?
PPTX
What should you know about Net Core?
PDF
QConSF 2022 - Backends in Dart
ODP
OpenCV 2.2.0 for Android
PDF
GCC ARM nRF51 IoT SDK -cheat sheet-
PDF
Reusing your existing software on Android
PDF
Programming IoT with Docker: How to Start?
PDF
Raspberry Pi 2 + Windows 10 IoT Core + Node.js
PDF
containerdの概要と最近の機能
PDF
SPDK benchmark memo
Flutter Vikings 2022 - Full Stack Dart
Mobile development in 2020
Android porting for dummies @droidconin 2011
Build and run embedded apps faster from qt creator with docker
 
Webinar: Building Embedded Applications from QtCreator with Docker
Beginners guide-to-reverse-engineering-android-apps-pau-oliva-fora-viaforensi...
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins
Scaling Development Environments with Docker
Lecture02web 140phpapp01
Open-source Android 10 on Orange Pi: myth or reality?
What should you know about Net Core?
QConSF 2022 - Backends in Dart
OpenCV 2.2.0 for Android
GCC ARM nRF51 IoT SDK -cheat sheet-
Reusing your existing software on Android
Programming IoT with Docker: How to Start?
Raspberry Pi 2 + Windows 10 IoT Core + Node.js
containerdの概要と最近の機能
SPDK benchmark memo
Ad

More from Angus Fox (20)

PDF
#TapIntoTwitter - London - 15 May 2018
PDF
London Twitter Developer community meet up - Sept 2016
PPTX
Building a scalable app factory with Appcelerator Platform
PPTX
Social Developers London update for Twitter Developers
PPTX
Social Developers London - Facebook F8 and Twitter Developer comparison
PPTX
Mz sdl-140331
PPTX
Mz sdl-130917
PPTX
Twitter Update for Social Developers London - May 2013
PPTX
Open social mobile apps increase community involvement in policing and confid...
PPTX
Social Developers London - Twitter Cards Update
PPTX
Twitter Update for Social Developers London - March 2013
PPTX
Social Developers London - Twitter
PPTX
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
PPTX
Tayside Police Mobile App launch presentation
PPTX
#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community
PPTX
Mz twitter-1.1-sdl
PPT
Mz mps-120704-published
PPTX
Mz digitalsurrey-120125-published
PPTX
Devnest 111115
PPTX
Mz bcl9-20111029-published
#TapIntoTwitter - London - 15 May 2018
London Twitter Developer community meet up - Sept 2016
Building a scalable app factory with Appcelerator Platform
Social Developers London update for Twitter Developers
Social Developers London - Facebook F8 and Twitter Developer comparison
Mz sdl-140331
Mz sdl-130917
Twitter Update for Social Developers London - May 2013
Open social mobile apps increase community involvement in policing and confid...
Social Developers London - Twitter Cards Update
Twitter Update for Social Developers London - March 2013
Social Developers London - Twitter
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Tayside Police Mobile App launch presentation
#BLNMIM 2012 - Multizone Mobile Apps for engagement with the community
Mz twitter-1.1-sdl
Mz mps-120704-published
Mz digitalsurrey-120125-published
Devnest 111115
Mz bcl9-20111029-published

Recently uploaded (20)

PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PPT
Geologic Time for studying geology for geologist
DOCX
search engine optimization ppt fir known well about this
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PPTX
Chapter 5: Probability Theory and Statistics
PDF
STKI Israel Market Study 2025 version august
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Unlock new opportunities with location data.pdf
PPTX
Tartificialntelligence_presentation.pptx
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPT
What is a Computer? Input Devices /output devices
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
A comparative study of natural language inference in Swahili using monolingua...
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Geologic Time for studying geology for geologist
search engine optimization ppt fir known well about this
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Chapter 5: Probability Theory and Statistics
STKI Israel Market Study 2025 version august
O2C Customer Invoices to Receipt V15A.pptx
Unlock new opportunities with location data.pdf
Tartificialntelligence_presentation.pptx
Final SEM Unit 1 for mit wpu at pune .pptx
Enhancing emotion recognition model for a student engagement use case through...
What is a Computer? Input Devices /output devices
Univ-Connecticut-ChatGPT-Presentaion.pdf
Hindi spoken digit analysis for native and non-native speakers
A review of recent deep learning applications in wood surface defect identifi...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Developing a website for English-speaking practice to English as a foreign la...
A comparative study of natural language inference in Swahili using monolingua...

Titanium London Lightning Talk - Building Titanium from the source

  • 1. Building the Titanium Mobile SDK from source Angus Fox @nuxnix CTO @Multizone CTO @PiotaApps- Over 250 Alloy apps iOS and Android Co organiser - London Twitter Developer Community Lightning Talk Titanium London 18 May 2017
  • 2. Open Source The project is Open Source. https://github.com/appcelerator/ titanium_mobile The prebuilt GA release is available only as part of the Appcelerator Platform. The Appcelerator Platform GA builds are hidden but the link construct is as it always has been e.g. http://builds.appcelerator.com/ mobile-releases/5.5.1/mobilesdk-5.5.1.GA-osx.zip Nevertheless it would be a step toward freedom from Appcelerator licencing and the platform to be able to build it outselves from the Open Source on Github. Unfotunately the tools required are arcane and out of date.
  • 3. Prerequisites Apps SDK MacOS sierra 10.12.x Python setuptools, and the pyyaml and Pygments libraries Xcode 8.2.1 Android NDK r9d (obsolete) Android SDK 23 SCons, Apache Ant, Eclipse, ADT (for Android), Gperf Node.js 4.2.6 max (obsolete) Apple Java JDK for macOS 1.6 (obsolete)
  • 4. Android SDK To install Android Studio on your Mac, proceed as follows: Launch the Android Studio DMG file. Drag and drop Android Studio into the Applications folder, then launch Android Studio. Select whether you want to import previous Android Studio settings, then click OK. Complete the Android Studio Setup Wizard Choose Configure --> SDK manager and install API 23 (Marshmallow / 6.0) and r21 versions of the tools Note SDK location /Users/angusf/Library/ Android/sdk https://en.wikipedia.org/wiki/Android_Studio
  • 5. Android NDK r9d macOS 64 bit This is no longer easy to find but can be installed Install by unpacking to a suitable place fromthe old ddownload archive  https://dl.google.com/android/ ndk/android-ndk-r9d-darwin- x86_64.tar.bz2 I chose ~/Library/Android/ndk/ android-ndk-r9d near to where Android Studio put the SDK. https://en.wikipedia.org/wiki/Android_(operating_system)
  • 6. Brew Package Manager Brew is s package manager for macOS that makes it easier to install stuff  https://brew.sh/ Ant - a Java library and command- line tool that helps building software. SCons used to be used to build the Titanium SDK, it is a build tool like make $ brew install ant $ brew install scons https://en.wikipedia.org/wiki/Homebrew_(package_management_software)
  • 7. Node.JS 4.2.6 N - Node Version Manager because Titanium requires a very specific version of Node.JS $ cd /usr/local … $ brew install n $ n 4.2.6      install : node-v4.2.6        mkdir : /usr/local/n/versions/node/4.2.6        fetch : https://nodejs.org/dist/v4.2.6/ node-v4.2.6-darwin-x64.tar.gz ################################################# ####################### 100.0%    installed : v4.2.6
  • 8. • Building Titanium Mobile requires Java 1.6 Developer Tools. Java was provided by Apple under licence from Sun Microsystems back in the 1.6 era. • You can still find Java 1.6 for OS X https://support.apple.com/en-gb/ HT202912. • This isn't a JDK but the note gives a clue. It says “This package installs the same version of Java 6 included in Java for OS X 2013-005.” • Unbelievably this installs fine on macOS Sierra. Its completely obsolete but required for Android development. JDK 1.6 for macOS Sierra
  • 9. tisdk $ npm install -g tisdk $ tisdk list 6.0.3.GA    295540edadd20c0eecdc2c92ae813ae485d624d9 6.0.2.GA    3c5806f49b0cb252e0ae0f5313b114717dfd3fe9 6.0.1.GA    265db0df5c5ad73390d10209cd9ac81e2703b6b0 6.0.0.GA    1aa3df8102146fa1346ff5d79781655c715818b1 5.5.1.GA    b18727f7ccea7217f505a4639d4a0005ab1d3bfe ... https://github.com/dbankier/tisdk
  • 10. Building Titanium Mobile SDK $ tisdk build 5.5.1.GA ... full.build: BUILD SUCCESSFUL Total time: 5 minutes 29 seconds ... $ls -rw-r--r--   1 angusf  staff  110714965  5 Apr 23:45 mobilesdk-5.5.1.GA-osx.zip https://github.com/dbankier/tisdk
  • 11. Checking what we got This is the self built SDK. $ ~/Library/Application Support/Titanium/ mobilesdk/osx/5.5.1 $ find . -type f | wc -l 8242 This is the 5.5.1.GA build from Appcelerator. $ ~/Library/Application Support/Titanium/ mobilesdk/osx/5.5.1.GA$ find . -type f | wc - l 8242 The same number of files is a good sign.
  • 12. Building Titanium CLI, and Alloy $ npm install -g titanium alloy appcelerator $ ti sdk ti sdk Titanium Command-Line Interface, CLI version 5.0.12, Titanium SDK version 5.5.1 Copyright (c) 2012-2015, Appcelerator, Inc. All Rights Reserved. Please report bugs to http://jira.appcelerator.org/ SDK Install Locations: /Library/Application Support/Titanium /Users/angusf/Library/Application Support/Titanium [default] Installed SDKs: 5.5.1 [selected] 5.5.1 /Users/angusf/Library/Application Support/Titanium/mobilesdk/ osx/5.5.1 $
  • 13. Test Test by creating an empty Alloy app using CLI and Atom. Open a new terminal and enter ti create --id com.test -d . -n APPNAME -p all - t app -u http://youdomain.name $ cd APPNAME/ $ alloy new $ ti build -p ios -C ? Hello World app should open on your simulator
  • 14. Thanks, Questions? Tweet @nuxnix Slides at slideshare.net/nuxnix