QtでiOSアプリを作るとき、色々面倒だったので、調べたことをメモっておきます。QtのiOSは日本語情報少ないですね。
使ったバージョンは、Qt 5.11、5.12、Xcode 10あたり。
#QtでiPad専用アプリを作るとき。
.proファイルに、下記を書きます。
ios {
#1:iPhone 2:iPad 1,2:universal
QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 2
}
3以降もあるみたいだけど、とりあえず使う予定もなかったので詳しく調べていない。
#Qtでiosのアイコンを設定する。
XCodeでアイコンを登録した~.xcassetsを作ります。
次に、.proファイルに下記を書きます。
ios {
QMAKE_ASSET_CATALOGS += ios/Images.xcassets
}
#QMLでiPhoneXのノッチ部分にも描画するとき
普通にWindowを使ってもフルスクリーンになりません。
そのままだとリジェクトされるので、下記の手順でフルスクリーンにします。
- スプラッシュスクリーン用のxibファイルをXcodeで真面目に作ります。
- Info.plistに以下の設定を書きます。
<key>UILaunchStoryboardName</key>
<string>スプラッシュスクリーン用のStoryboardのファイル名、拡張子なしで。</string>
- Window QMLのflagsに Qt.MaximizeUsingFullscreenGeometryHint を設定する。
- iPhoneXのセーフエリアに配慮してオブジェクトを配置する。
上下44ptはボタン類置いちゃダメだよ!回転にも対応するんだよ。
#iPhoneXでノッチ部分に暗い色で描画してしまい、ステータスが見えなくなったとき。
これはQtと関係ない、Info.plistの設定ネタですが…。
QtでiOSアプリを作るには、Xcode経由じゃなくてInfo.plistを直接いじることが多いと思うので、書いておきます。
ノッチ部分に暗い色で描画してしまいステータスが見えなくなったときは、ステータスバーのスタイルをLIGHTに変更するといいです。
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
あーiOSはめんどくさい。