Most, if not all, articles state that certificate pinning is important for apps. However, there is not much discussion whether it is necessary to implement it if you are creating your SDK and vending it for others to use.
Some questions come to mind
I haven't done much SDK develop and am genuinely curious. Thanks in advance!
What I've tried
The very first thing to ask what remote service your SDK is connecting to?
There are several possible options here:
In that case I would suggest to leave certificate pinning to the client as he should be responsible for whether app is contacting his trusted backend. If it is done correctly the whole app will be correctly protected.
In that case you have basically two options:
In that case you have the same options as in the point 2 but leaving the pinning to the client is less dangerous as these services are using well-known publicly trusted certificates and has other anti-abuse measures(e.g you need to have correct token to communicate with the service and have some account created in their infrastructure etc).
Of course in that case there is no need for certificate pinning per se.
Answering your questions more directly: If like you stated you have your own SDK servers I will opt for implementing with the pinning on SDK side.
About whether it interfere with the clients certificate pinning it depends on the how you implemented the certificate pinning itself, as there are several methods you can do that.
There is a brief article on every of the methods above https://www.netguru.com/blog/3-ways-how-to-implement-certificate-pinning-on-android
I described it from the Android perspective but the above assumptions are true for both mobile platforms(implementation on iOS side may vary from the Android one)