I am working on my third or so MonoTouch project and want to start seriously using 3rd party OSS like NUnitLite and maybe TinyIoC. I am not sure what the best way is to manage these dependencies. Some of these projects do not have released MonoTouch assemblies anyway. Doing a quick search of GitHub for “MonoTouch” found some projects using OSS. It seems they are including the source of the dependency directly in their projects, which leads me to think it is going to be an update nightmare.
Anyone have a good workflow they can point me to?
Generally speaking, I prefer to compile projects that have low activity like MonoTouch.Dialog and keep them in a lib folder. For other more active projects I like to use Git submodules.
For instance, let’s take ServiceStack.Text which is an extremely fast serializer that is compatible with MonoTouch and Mono for Android out of the box. In my project I issue the command:
Then I compile the the appropriate project and reference them directly from the build output. This has the added benefit of being able to issue a
git pullagainst the repository to get updates quickly and seamlessly.It does add a bit of overhead, but it’s the best way to manage OSS dependencies without something like a curated directory of libraries or a package manager 😉