In what way to they need to be different?
(I am basing my answer on a guess that it can be handled by setting some sort of state-variable in the classes or by a custom init method)
I would suggest you create some form of custom init methods or instance variables that you set for the classes that need to have different behaviors. You can then use User defined setting in your build settings for each target.
Check this question & answer for more information: iphone: get User Defined variable in Target's setting by code?
Basicly you could have a setting that would be a string like so: "Standard", you fetch it from the
FooBarClass.h
typedef enum { FooBarSettingNormal, FooBarSettingFast } FooBarSetting;
-(id)initWithSetting:(FooBarSetting)setting;
And then fetch the variable set in buildsetting from the code and init the FooBar object like so:
SomeViewController.m
NSNumber* fooBarSetting = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"FooBarSetting"];
FooBar * baz = [[FooBar alloc] initWithSetting:[fooBarSetting intValue]];
This enables you to have different behavior in your classes and keeping the static library separate and stand alone from the project you are using.
I hope you find this somewhat helpful :)