Easily add acknowledgments to your Xcode projects
When you’re working on a iOS or OSX app, you’re bound to use a library, framework or other code that was generously shared by other people. The right thing to do (especially when the license requires it!) is to acknowledge that you’re using their work in your app.
There are various ways to go about this, but I’ve just released a script called Acknowledge that will make it very easy. It also works very well with DCOAboutWindow, which I released earlier.
Acknowledge is a simple bash script that will easily generate a rtf that contains all the acknowledgments for libraries, frameworks and other code you’ve used in your iOS or OSX project.
It’s made to work very well with DCOAboutWindow and Cocoapods. Acknowledge relies on MultiMarkdown by Fletcher Penny.
You can read more about Acknowledge on GitHub, or follow the setup guide below.
Clone the repo, preferably into the root of your Xcode project:
$ git clone email@example.com:DangerCove/Acknowledge.git
Or if your project is a repo already, add it as a submodule:
$ git submodule add firstname.lastname@example.org:DangerCove/Acknowledge.git
Follow the guide on Fletcher’s website, or if you’re using homebrew:
$ brew install multimarkdown
Copy acknowledge.cfg.default to acknowledge.cfg:
$ cd Acknowledge $ cp acknowledge.cfg.default acknowledge.cfg
Customize the paths to multimarkdown and your Pods folder if necessary.
If you use Cocoapods and have your Pods directory setup, you are ready to go. Just run
Just add a markdown file to the
sources directory and Acknowledge will handle the rest. Make sure the extension is
You might’ve notice the
20_ prefixes in front of the files in the
sources folder. Acknowledge will concatenate the files in order, so just add files and change to number to change the order.
The acknowledgments generated by Cocoapods will always be prepended with
Potential directory layout
. |- Acknowledge/ | |- acknowledge | |- ... | |- source/ | | |- 11_Vendor.md | | |- 20_Acknowledge.md |- Pods/ | |- Pods-acknowledgements.markdown |- |- ... |- Podfile |- Coolproject.xcodeproj |- Coolproject.xcworkspace |- ...
Don’t skip this step, you’ll need to output in the next one.
Open a terminal window and run
acknowledge once to see if it works, and to generate the initial
Fix any errors and proceed.
Add it to Xcode
You’ll probably want to show the acknowledgments somewhere in your app (have a look at DCOAboutWindow if you’re working on a Mac app, btw).
Simply add the generated
Acknowledgments.rtf file to your project and display it somewhere.
Generate the acknowledgments on each build
Keeping your acknowledgments up to date is easy if you add Acknowledge as a build phase. Here’s how that works:
- Open Xcode;
- Select your project and open the
Editor → Add Build Phase → Add Run Script Build Phase;
- Name your script something like “Update Acknowledgments” and position it so that it’s above
Copy Bundle Resources;
- Now add the following code:
cd Acknowledge && ./acknowledge
(Make sure to adapt the paths if the script isn’t located in the default folder.)
It should look something like this:
That’s it! Just build your project and you’re set.