You could give your code out as a compiled static library or framework if you were concerned about that. Then the source code would just be the trivial code required to link and present the app.
Can it be coded with the users public key from their device thus limiting it to work o my on the device with the matching private key?
IDevices do use public/private keys don't they ;)