Theos: Difference between revisions

From iPhone Development Wiki
(Add table of theos variables)
(Added ARCHS and TARGET variables)
Line 27: Line 27:
Here is an incomplete list of the variables:
Here is an incomplete list of the variables:


{| class="wikitable"
{| class="wikitable sortable"
|-
|-
! Variable name
! Variable name
Line 38: Line 38:
| <code>$(THEOS_PACKAGE_BASE_VERSION)-$(VERSION.INC_BUILD_NUMBER)</code>
| <code>$(THEOS_PACKAGE_BASE_VERSION)-$(VERSION.INC_BUILD_NUMBER)</code>
| [https://www.reddit.com/r/jailbreakdevelopers/comments/2mmc98/how_to_stop_theos_from_adding_a_build_number_to/cmd71fi/]
| [https://www.reddit.com/r/jailbreakdevelopers/comments/2mmc98/how_to_stop_theos_from_adding_a_build_number_to/cmd71fi/]
|-
| <code>ARCHS</code>
| List of architectures to build for. Possible values: armv6 armv7 armv7s armv7f armv7v arm64
|
|
|-
| <code>TARGET</code>
| Target specification for the build. Some values can be obviated. Formatting: platform:compiler:sdk_version:deployment_version
| local machine platform, gcc, 3.0 and 3.0
|
|}
|}


[[Category:Development Tools]]
[[Category:Development Tools]]

Revision as of 19:00, 11 January 2015

Theos is a cross-platform suite of development tools for managing, developing, and deploying iOS software without the use of Xcode. It is an important tool for people building extensions (tweaks) for jailbroken iOS; most extension developers use Theos.

Overview

The Theos suite of tools consists of a handful of important components:

  • A project templating system (NIC), which creates ready-to-build empty projects for varying purposes
  • A robust build system driven by GNU Make, capable of directly creating .deb packages for distribution in Cydia
  • Logos, a built-in preprocessor-based library of directives designed to make MobileSubstrate extension development easy

Theos is primarily used for jailbreak-centric iOS development (such as MobileSubstrate extensions, PreferenceLoader bundles, and applications intended for distribution in Cydia), but can be used for other types of projects as well. This can be helpful for someone wishing to develop an iPhone SDK-based application without using Mac OS X or Xcode to do so, as Theos can be used on Linux and iOS as well.

Theos also includes Logify, which accepts a class header and generates a MobileSubstrate extension which hooks all of that class's methods, printing log messages when they are called. This helps a hook developer see when certain methods are invoked during use.

How to start using Theos

See Theos/Setup.

This Stack Overflow answer may also be helpful.

For reference, check out this Theos documentation by theiostream.

Theos variables

You can configure theos by setting variables in a project's Makefile.

Here is an incomplete list of the variables:

Variable name Description Default value Notes
PACKAGE_VERSION $(THEOS_PACKAGE_BASE_VERSION)-$(VERSION.INC_BUILD_NUMBER) [1]
ARCHS List of architectures to build for. Possible values: armv6 armv7 armv7s armv7f armv7v arm64
TARGET Target specification for the build. Some values can be obviated. Formatting: platform:compiler:sdk_version:deployment_version local machine platform, gcc, 3.0 and 3.0