** Release ** Unilib Creator (beta)

ulciconUnilib is now released. This is a small project I have been working in my spare time (which is very limited nowadays). It was created to facilitate operations done to and with dynamic and static libraries on iOS and OS X.

More importantly, it allows you to build FAT static libraries on OS X and iOS, saving you the trouble to put #ifdefs into your code to link against two types of library, depending on the platform you are buildinf for (arm or i386).

Yes, it’s geeky, but I have found it useful. The UI can certainly be improved, and it will be in the future, until this app is no longer in beta stage, and will be distributed into the Mac Application Store.

You can view more information by clicking on this link.

UniLib Creator (beta)

Universal Library Creator (Unilib) is an small application created in my spare time to facilitate operations done on static and dynamic libraries on iOS and OS X.

It combines some pretty neat stuff I wanted to try for so long using system services. I began writing some code for system services some time ago, and this is a project I made for myself, and thing it will help others.

It has helped me in many occasions, especially with Xcode 4. On iOS, the static libraries produced are for the actual device or the iPhone. It’s never for both. I don’t know why Apple hasn’t included this functionality in XCode 4, since it was already included in Xcode 3. All I know, is that I had found it hard to distribute my static libraries without giving the code, since the user would have to link them against the device or the simulator depending on the test environment, never both.

Some features:

  • Combine static FAT or plain libraries to make FAT static libraries for both OS X and iPhone
  • Obtain info about a static library like the architectures in it, and the object files in it
  • Exctract specific applications from a library.
  • Really UGLY user interface for the time being. Will certainly be improved.

Unilib is currently in bleeding edge beta, with only those basic functions implemented. It will be updated constantly, until it reaches to a point where it will be a commercial application for the Mac Application Store. So far it is free for use.

Requires Lion and an Intel 64-bit platform.

You can download the application here. It also includes some basic auto-update mechanism. Will add more features in future releases.

Making fat static Libraries (Simulator + Device), and applying to Three20

I am starting to get involved with the Three20 project. This project contains valuable classes and UI elements that I need. However, this big library is notorious for its difficulty to include inside an XCode 4 project. The included install script does not work, and the manual install instructions are a miss, and I ended up with Xcode complaining that it can’t find header files, even if I had set up the header search paths correctly.

So, I decided to pre-build the static libraries and include them to my project, and I was successful… to an extent. You see, I couldn’t use the same static libraries for the Simulator and the device, because the libraries built are built each time for the device you specify, and that device only. For example, if you build the libraries for the simulator, the produced libraries will work for the simulator. For the device, you need a different library package.

That led me to the long trip of finding a way to compile a static library for iOS that works for different architectures: armv6, armv7, and i386. Read on to find out how you can manage to make a static library that will work on all platforms.

Continue reading

Installing Portable Dynamic (And Static) Libraries On OS X

Last Update: 07-02-2009

I recently decided to install portable Libraries on my Mac, a procedure that has never been proven easy for me for the past years. In order to port my programs from one platform to another, I must have downloaded portable libraries that exist in all platforms, such as PCRE (perl compatible regular expressions library for C and C++).

The problem is that when I try to install the libraries, I mostly encounter errors and problems during compilation while using the “make” tool of UNIX. This is due to the developers not being careful to handle all different system versions. Even when I did manage to install the necessary libraries, I couldn’t find a way to make them work with Xcode.

So what do you do when you need to install a portable Library and use it with Xcode?

Continue reading