iOS用のcustom keyboardを開発しているのですが、
機種ごとの解像度への自動対応の仕組みで苦慮しています。

viewWillAppear内で

let screenSize = UIScreen.mainScreen().bounds.size

で画面サイズを取得して、
その画面サイズから、キーボードの表示領域と、キーのwidthなどを計算で算出し、
Interface Builderを使わずにキーボードを描画させていますが、
新しいアプリでは大丈夫でも、
少し昔のアプリでキーボードが表示されると、
auto-scalingでサイズ拡大(おそらく約1.17倍)されてしまうことがあり、
以下の画像のように、キーボードの右側が画面から溢れて、表示されないキーが生じてしまいます。

古いアプリでキーボードが拡大され、非表示領域ができてしまう。左が正しい表示。右が古いアプリで拡大表示への対応ができていない表示。

厄介なのは自動拡大された場合でも、上記screenSizeのwidthを取得すると、例えばiPhone6のサイズに合わせて375という値を返してきて、もともとの画面幅の320を返してくれないことです。
(320を返してくれれば、簡単に計算し直せるのですが。)

そこで質問ですが、
auto-scalingする前の実際の画像解像度を取得する方法はありますでしょうか。
viewDidLoad内でやってもダメでした。
もしくは、他に良い解決方法がありますでしょうか。
例えば、constraintsをほぼ使っていないので、それを使えば解決できるでしょうか。
(現状、ほぼ全てプログラム的に表示させており、constraintsを使っていません)

初歩的な質問かもしれず恐縮ですが、
お分かりの方がおられれば、ご教授いただけると幸いです。

大まかな実装は、以下のような感じのコードです。

    //画面サイズ取得
    myAppFrameSize = UIScreen.mainScreen().bounds

    print(myAppFrameSize!.width)

    screenWidth = myAppFrameSize!.width
    screenHeight = myAppFrameSize!.height

    isPortlait = screenWidth > screenHeight ? false : true //画面方向の確認
    isIPad = screenWidth > 900 ? true:false

    if(isIPad){
        keyWidth = 100
    }else if(screenWidth < 900 && screenWidth > 370){
        keyWidth = 55
    }else{
        keyWidth = 48
    }