Friday 18 May 2012

Noatikl 2 now on the Mac App Store

Noatikl 2 has now arrived on the Mac App Store, which is great news of course! You can find it here..

http://itunes.apple.com/us/app/id469613273?mt=12&u1=webmac&affId=1860684

We now have four products on the Mac App Store - Noatikl, Mixtikl, Mixtikl Free and Liptikl - thanks to Apple for providing this distribution channel!

Tuesday 15 May 2012

XCode and static libraries - auto-archiving the .a files for iOS and Mac

I was scratching my head figuring-out how to copy-out the .a files from an XCode static library build for iOS, so that I could distribute the static library variants easily to my customers.

For example, I had builds both for iOS and Simulator, and they were both going somewhere like this:

/Users/me/Library/Developer/Xcode/DerivedData/mylib_blahblahblahblah/Build/Intermediates/...
...ArchiveIntermediates/mylib/IntermediateBuildFilesPath/UninstalledProducts/libmylib.a

... which is a bit tricky to deal with!

The solution for me was to create a Run Script entry in the Build Phases for my Target under the XCode project/target settings...:

mkdir -p /Users/me/myfolder/$CONFIGURATION-$PLATFORM_NAME
cp -p $TARGET_BUILD_DIR/libmylib.a /Users/me/myfolder/$CONFIGURATION-$PLATFORM_NAME
if [ $CONFIGURATION eq Release ]
then
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip -S \
  /Users/me/myfolder/$CONFIGURATION-$PLATFORM_NAME/libmylib.a
fi

Note the strip command, which is essential as the script is always run before XCode's normal strip behaviour!

Note also that to generate a library for Release, for both iOS and simulator, you need to Build for Profile.

Here is the command-line I use to build it all automatically!

xcodebuild -project mylib.xcodeproj Release -sdk iphonesimulator clean
xcodebuild -project mylib.xcodeproj Release -sdk iphoneos clean
xcodebuild -project mylib.xcodeproj Release -sdk iphonesimulator
xcodebuild -project mylib.xcodeproj Release -sdk iphoneos

To configure an app to link-in the appropriate version of the (copied!) static library to match your app's Release/Debug configuration and target (iOS/Simulator), simply put this in the Other Linker Flags section of your app...:

/Users/me/myfolder/$CONFIGURATION-$PLATFORM_NAME/libmylib.a

Sunday 13 May 2012

Noatikl 2 launched!

Noatikl 2 - we've finally launched it! What a huge chunk of work this has been.

http://www.intermorphic.com/tools/noatikl/index.html

I'm pretty pleased with the way that the network editor works, together with the pop-up Synth and Effects editors. The cross-integration of our code base is working well!

Next step: the mobile versions for both iOS and Android. That'll take quite a lot more work, but the GUI changes already in place in Noatikl 2 have taken us a long way down that road.