Skip to content

Xcode Template: Custom Build Settings

kokoabim edited this page Feb 11, 2012 · 2 revisions

The iOSOpenDev provided Xcode templates have a collection of user-defined build settings that are used iosod which is run as a Run Script Build Phase whenever the projects are built. This page will explain the use of the added user-defined build settings.

iOSOpenDevCopyOnBuild

Setting this to YES will, during any build, copy the target (executable) to the device at /var/root/iOSOpenDevBuilds/[project name]/[executable name]. This is provided to run the executable on the device (using an SSH connection) without having the entire Debian package installed. It is for convenience-sake only and is useful for command-line tools only.

Default setting is NO.

iOSOpenDevDevice

Set this to the host name (e.g. MyiPhone.local) or IP address (e.g. 192.168.1.101) of the device you wish to use during development.

Tip: If iOSOpenDevDevice is empty, the user's Bash personal initialization file is scanned to acquire the value.

iOSOpenDevInstallOnProfiling

Setting this to YES will, during a Build For Profiling (Command-Shift-I or Product > Build For > Build For Profiling), build the project's Debian package, copy the package to the device at /var/root/iOSOpenDevPackages (using SSH) and install the package (using SSH and running dpkg locally on the device), which is performed by the iosod tool that is executed by Xcode during the target's Run Script Build Phase.

If any package dependencies are not met, the installation of the package will fail as dpkg does not provide a mechanism to install dependencies from APT repositories, as such, the original Build For Profiling build will fail.

If this is set to YES and there are build failures, it may be that compiling and linking did not fail but rather the process of installing the package failed. Review the build message closely to determine at which point the failure occurred to discover possible missing dependancies, SSH connection issues, etc.

To satisfy package dependencies, use Cydia or apt-get (via a SSH connection) on the device.

Default setting is NO.

iOSOpenDevPath

Do not change this. This is the path to iOSOpenDev which is used by other build settings.

iOSOpenDevRespringOnInstall

Setting this to YES will, during a Build For Profiling (Command-Shift-I or Product > Build For > Build For Profiling), after the Debian package has been built and installed, respring (i.e. kill and relaunch SpringBoard) the device. It is for convenience-sake only and is useful for targets that require such action prior to use (e.g. NoticationCenter Widgets, Substrate Tweaks, etc).

To be clear, this feature requires iOSOpenDevInstallOnProfiling to be set to YES. If installation of the package fails then respringing will not be performed.

iOSOpenDevInstallOnAnyBuild

Setting this to YES will install the package on the device on any type of build. This is provided to install Debug (or other) configuration builds.

iOSOpenDevUsePackageVersionPList

This will being deprecated soon. It indicates whether to use the target's PackageVersion.plist file to set the Debian package's control file's Version field only. It is being deprecated to encourage developers to use the control file.