Archive for the 'Xcode' Category
Archiving Framework Versions In Xcode
Here’s a quick script you can use in Xcode to archive framework versions. This is specifically for getting around the problem when you clean the build target. When you clean the target, it removes everything and re-builds it - this removes all of the versions that were there before. So if you had version A, and B, and B is the latest version. Cleaning the target will delete version A. In my case, I want to make sure these versions are kept intact.
OUTPUT=archive/${FULL_PRODUCT_NAME} FV=$FRAMEWORK_VERSION VERSIONED_OUTPUT=${OUTPUT}/Versions/${FRAMEWORK_VERSION} mkdir -p $VERSIONED_OUTPUT cp -Rf ${TARGET_BUILD_DIR}/${FULL_PRODUCT_NAME}/Versions/${FRAMEWORK_VERSION}/* ${VERSIONED_OUTPUT} cd ${OUTPUT} rm -f $EXECUTABLE_NAME ln -sf Versions/${FV}/${EXECUTABLE_NAME} $EXECUTABLE_NAME rm -f Headers ln -sf Versions/${FV}/Headers Headers rm -f Resources ln -sf Versions/${FV}/Resources Resources cd Versions rm -f Current ln -sf ${FV} Current
After you change a Framework Version in xcode, you should clean the project, otherwise Xcode leaves around some dangling symlinks. Which will get copied into this archive. Not a big deal, but I don’t want any stragglers.
No commentsEvironment Variables in Xcode
When you’re writing scripts in xcode you’ll need to know what environment variables xcode exposes.
Here’s how you can find them all:
-make a new empty xcode cocoa project
-add a new “run script build phase phase” to the app target
-add this as the script:
env > ENV
-build the project.
There will be file in the project directory called “ENV”, which lists all environment variables. Which comes in really handy as a reference.
1 commentXCode and Clang Static Analyzer
First, check out clang static analyzer.
To get it running form Xcode make a new “Shell Script Target,” call it “Clang,” and for it’s “script build phase” put this in it:
/usr/bin/scan-build -V xcodebuild -configuration $CONFIGURATION
This is assuming the scan-build tool is in /usr/bin/, change the path if you need to. Now, change your build target to Clang, and build it. All it does is run the script, which will in turn build the project for your configuration (usually debug or release). And, if clang finds any problems, it will automatically open your browser to show you the output, if no problems are present, it’s just a successful build.
No comments