A cross-platform suite of tools for building and deploying software for iOS and other platforms.
OTHER License
Bot releases are hidden (Show)
.xmi
files. Fixes an error at the stripping stage when making a release build.[instance]_USE_SUBSTRATE
variable.[instance]_USE_SUBSTRATE = no
, please transition to using [instance]_LOGOS_DEFAULT_GENERATOR = internal
. As use of this seems to be nonexistent in GitHub and Google searches, this was not considered a breaking change.ldid
binary from the toolchain if it exists.ldid
in your $PATH
, that will take precedence over the toolchain’s copy of ldid
.Published by kirb over 6 years ago
${LIBSWIFT}
magic word can be used in a control
file to expand to the correct Swift package name/version dependency, and ${LIBSWIFT_VERSION}
expands to the version on its own.Prefix.pch
.ADDITIONAL_CFLAGS += -DTHEOS_LEAN_AND_MEAN
will disable almost all of Prefix.pch. This requires you to import Foundation and/or UIKit yourself, as well as other fixes that were automatically imported by the prefix header. HBLog macros have been moved to <HBLog.h>
. The imports for AppKit and Cocoa on macOS were removed entirely. Prefix.pch is no longer imported at all for Swift.libgcc_s.1.tbd
file, resolving an “undefined symbols” error when building for ARMv6 with the Xcode 9 toolchain. (Pull request #291)_disused
in one place, causing a build error as this macro comes from substrate.h.-dealloc
.$THEOS/bin/update-theos
.make update-theos
now calls this script, so both will work.COLOR=0
option to disable ANSI escapes (color) in output, including in output from Clang.Published by kirb over 6 years ago
$ brew install make
$ ln -s gmake $(brew --prefix)/bin/make
ld: malformed file: unknown key 'flags'
error when linking against the libraries that were updated in Theos 2.2. (Issue #277)root:wheel
, to normalise all files/directories to have correct ownership. (Issue #202)Published by kirb almost 7 years ago
HBLog…()
macros to directly use the new os_log()
-based logging system when building using the iOS 10.0 SDK or newer with deployment target set to iOS 10.0 or newer.HBLogDebug()
calls will now be compiled into release builds when os_log()
is in use. os_log is designed to be very fast, and debug logs are ignored unless a tool such as macOS’s Console or deviceconsole
is watching the log stream. (Unfortunately it’d be complicated to detect for os_log()
and use it if available. These macros are designed to be helpful but still very simple. This is the best compromise I could come up with.)Published by kirb almost 7 years ago
This tag exists to pinpoint the last commit from DHowett as “Theos 1.0.0”. There are some minor breaking changes since 1.0.0, as detailed by the Updating from legacy Theos page, so the first actual tagged release of Theos is 2.0.0.
Published by kirb almost 7 years ago
perl
on your path is used. (Issue #273)cpan
, but dm.pl always executed with the macOS copy of perl
. It now uses whichever perl
is found on your $PATH
; hopefully the same one as cpan
.IO::Compress::Lzma
.uname
.uname -o
, which is not supported by macOS’s BSD uname
, instead of uname -s
. This didn’t break the script, as it was being used to check for iOS, and Telesphoreo uses GNU uname.Published by kirb almost 7 years ago
Published by kirb almost 7 years ago
dpkg-deb -b
. (Issue #211)gzip
(dpkg-deb’s has been xz
for a long time; previously was gzip
). Theos will still manually specify -Zlzma
, so packages built via Theos will compress with lzma.make update-theos
. The instructions to install it manually while installing Theos from scratch has been added to the Install page. It’s the best compromise I could come up with and I don’t want any pre-built binaries in Theos. If someone has a smarter solution than mine I’d love to discuss it.!defined(THEOS_LEAN_AND_MEAN)
.ADDITIONAL_CFLAGS += -DTHEOS_LEAN_AND_MEAN
or similar if you don’t want the majority of what’s in Prefix.pch to be imported, including the implicit importing of Foundation and UIKit. These really shouldn’t have ever been added to Prefix.pch, but they can’t be removed without breaking projects. Consider using this in your own projects.