Is there a way to know at run time what device it is. I know how to differentiate iPhone and iPad, but how to differentiate iphone5, 6 and 6+?
If you use sysctlbyname you can read the hw.machine value. iPhone 6 is "iPhone7,2" and 6+ is "iPhone7,1". As mentioned in your other thread: http://forums.xamarin.com/discussion/comment/86508/#Comment_86508
An obvious difference is that they all have different screen sizes (http://www.iosres.com/). Aside from that you can look at approaches like this and adapting them to Xamarin as needed.
Obviously all of this code would need to be done in a platform-specific assembly and then somehow communicated to your Xamarin.Forms PCL code.
Xamarin Inc., as a wholly-owned Microsoft subsidiary acting as a separate legal entity, adheres to the Microsoft Privacy Statement: Privacy & cookies