I always prefer to add a source, if any, simply because it makes debugging easier. If you make a call to the library procedure and get an unexpected result (or a crash or something else), it is much easier to enter the library code with a debugger and find out what is happening. If you just have a static library, this is a black box and you cannot see what is happening inside. It also makes it easier for you to change the library code if you encounter an error or a missing function (just be careful if the library will be shared by other projects so that you keep the library code up to date in your own repository).
Xcode is good at letting you organize your project, so take advantage of these features. Keep the library code and headers separate from the main application and bundle it as needed.
source share