Skip to content

Logos (Theos) Support

kokoabim edited this page Feb 21, 2012 · 9 revisions

Requirements

Theos must be installed to use the Logos Tweak Xcode template. See http://iphonedevwiki.net/index.php/Theos/Getting_Started for installation instructions.

Logos Reference

See http://iphonedevwiki.net/index.php/Logos for Logos information.

Need-to-Know

Xcode template use

  • Xcode build engine is used, not Theos’ makefile system.
  • The following build after an *.xm file has been added (i.e. project’s first build and after adding *.xm files manually) will fail by design. This is because a Build Phase is modifying the Xcode project file to provide better *.xm file support. Just perform the build again.
  • During builds, all *.xm files are run through the Logos Processor (logos.pl) which generates their corresponding *.mm files in the same directory as the *.xm file. The *.xm files are not compiled by Xcode but rather the generated *.mm files are compiled.
  • Edits/changes to *.mm files will be overwritten during each build since these files are generated from *.xm files by the Logos Processor. So… edit only *.xm files, not *.mm files.
  • If an *.xm file is added manually (this does not include the initial *.xm file), then perform a build to generate its corresponding *.mm file and add the newly created *.mm file to the Xcode project to have it compiled with the project.

Known issues

  • Syntax coloring isn’t fully supported (yet).
  • Code completion isn’t supported (yet).

Xcode Build Errors

Theos not installed

Problem: Build fails with message containing:

Failed to locate Logos Processor. Is Theos installed? If not, see http://iphonedevwiki.net/index.php/Theos/Getting_Started.
Fix: Install Theos. If installed, make sure it’s located at /opt/theos.

Xcode profile file modified

Problem: Build fails with message containing:

Modifying Xcode project file: setting *.xm file-types to Objective-C++...
Modifying Xcode project file: setting *.xm language to Objective-C++...
DON'T WORRY, EVERYTHING IS OK!
The Xcode project file was modified to provide better *.xm file support.
To dismiss this build error, just perform the build again.
Fix: Just as the build message explains, just perform the build again.

Link to libsubstrate.dylib

Problem: Build fails with message containing:

#error iOSOpenDev post-project creation from template requirements (remove these lines after completed) -- Link to libsubstrate.dylib: (1) go to TARGETS > Build Phases > Link Binary With Libraries and add /opt/iOSOpenDev/lib/libsubstrate.dylib (2) remove these lines from *.xm files (not *.mm files as they're automatically generated from *.xm files)
Fix: Just as the build message explains, you need to link to libsubstrate.dylib (go to TARGETS > Build Phases > Link Binary With Libraries and add /opt/iOSOpenDev/lib/libsubstrate.dylib) and delete the #error preprocessor directive from the *.xm file.