The Xcode plug-in for Ice manages all aspects of code generation, including automatically recompiling Slice files that have changed, removing obsolete generated classes, and tracking dependencies.
On this page:
To add an existing Slice file, select a folder in the project, select File, and choose Add -> Existing Files...
To create a new Slice file, select a folder in the project, select File, and choose New -> New Files... Select the Other category and choose Empty File as the file type. Save the file with a .ice
extension.
The Xcode plug-in is configured using the per-target info build settings, just as you would configure the compiler settings. Select a target, and then select the build settings tab, and enter Slice
in the Search in Build Settings field.
-I
option). Note that the Ice Slice files are automatically in the header search path./opt/Ice-3.4.2
or /opt/IceTouch-1.2
).--ice
to the Slice compiler.--stream
to the Slice compiler (C++ only).--checksum
to the Slice compiler (C++ only).-D
option).slice2cpp
is used to compile the Slice files; otherwise, slice2objc
is used.You can also define Slice compiler options for individual Slice source files. Select your project in the Project Navigator, select the relevant target (you may have only one), then select the Build Phases tab, expand the Compile Sources phase and the Compiler Flags column lets you set each file's options for that target.
For Cocoa and iPhone applications, which use the Xcode SDK, you must add the appropriate directory to Additional SDKs:
Ice Touch 1.2.1 or later | Ice Touch 1.2.0 | |
---|---|---|
Objective-C SDK | /Library/Developer/IceTouch-1.2/SDKs/ObjC/$(PLATFORM_NAME).sdk | $(DEVELOPER_DIR)/SDKs/IceTouch-1.2/$(PLATFORM_NAME).sdk |
C++ SDK | /Library/Developer/IceTouch-1.2/SDKs/Cpp/$(PLATFORM_NAME).sdk | $(DEVELOPER_DIR)/SDKs/IceTouchCpp-1.2/$(PLATFORM_NAME).sdk |
In addition, when creating a new iPhone Xcode project, you must set the Code Signing Resource Rules Path to:
$(SDKROOT)/ResourceRules.plist
You must also add the following to the Frameworks
folder:
CFNetwork.framework
Security.framework
Foundation.framework
When using the Objective-C SDK you must also add the following to the Frameworks
folder:
ExternalAccessory.framework
For non-SDK builds, you must add the location of the Ice installation to the header path (/opt/Ice-3.4.2/include
for Ice 3.4.2, or /opt/IceTouch-1.2/include
for Ice Touch).
In addition, for non-SDK builds, you must correctly configure Other Linker Flags:
-L/opt/Ice-3.4.2/lib -lIce -lIceUtil
-L/opt/IceTouch-1.2/lib -lIceObjC
To be able to run the project from Xcode, you must set DYLD_LIBRARY_PATH
correctly. In Xcode, select Product/Edit Scheme, select the scheme you want to run, then select the Arguments tab and add the following to the Environment Variables section:
DYLD_LIBRARY_PATH
/opt/Ice-3.4.2/lib
(for Ice 3.4.2)/opt/IceTouch-1.2/lib
(for Ice Touch 1.2.0) The plug-in compiles a Slice file whenever you build the project. The extension tracks dependencies among Slice files in the project and recompiles only those files that require it after a change.