macOS版 開発環境をXcode 10に移行
Xcode 10.3の推奨設定を受け入れる。
これにより、en.lprojフォルダに格納されていた*.xibファイルが、すべてBase.lprojフォルダに移動された。
Base Internationalizationに対応するため、すべての*.xibについて英語の文字列リソースを作成する。 Base Internationalizationは、OS X 10.8から導入されている。
Localization [*]Base [*]English <-チェックマークを付ける
これまで通り、文字列リソースは英語のみの対応とするため、英語以外を削除する。
Project / MIDITrail / Info Localizations English -- Development Language -> 残す French, Deprecated -> 削除する German, Deprecated -> 削除する Japanese, Deprecated -> 削除する以下の警告を選択して"Migrate"ボタンを押すが、何も起こらないようだ。
Migrate "French.lproj" (Deprecated) Migrate "German.lproj" (Deprecated) Migrate "Japanese.lproj" (Deprecated)"Endlish.lproj"フォルダは削除した。
*.xibについて以下の警告が発生するため、Deployment Targetを10.8に変更して回避する。
Base Internationalization is not available when compiling for targets before macOS 10.8これによりMIDITrailのサポート対象OSを、OS X Lion (10.7)以降から、Mountain Lion (10.8)以降に変更する。
Project / MIDITrail / Info Deployment Target 10.7 -> 10.8 に変更 Target / MIDITrail / General Deployment Info Deployment Target 10.7 -> 10.8 に変更
アイコンをアセットカタログで管理する。
Project / MIDITrail / General App Icons
Xcode上で、Resources/Images.xcassetsが追加される。 プロジェクトフォルダには、MIDITrail/MIDITrail/Images.xcassets/AppIcon.appiconsetが追加される。
アイコンの管理方法変更に伴い、以下の設定からMIDITrail.icns を削除する。
Targets / MIDITrail / Build Phases Copy Bundle Resources
Xcode 10でMIDITrailをビルドして起動すると、OpenGLの関数でエラーが発生してしまう。 エラー発生原因を辿ると、glGetIntegerv(GL_MAX_TEXTURE_SIZE,&size)の呼び出しで、 sizeにゼロが返されており、OpenGLが正常に動作していないことが分かった。 原因は、シーンの生成処理前にCGLSetCurrentContextを実行していないためであった。 これまでたまたま動作していただけなのかもしれないが、Xcode 10に移行しただけで 動作が変わってしまったことが不可解である。
シーン生成メソッドを新規追加。 これまでMIDITrailApp::_CreateSceneで実施していたシーンオブジェクトの生成メソッド呼び出しを 本メソッドに引っ越し、コンテキスト取得後に実行する。
描画デバイス取得メソッドが不要となったため削除。
シーンオブジェクトに対して生成メソッド呼び出しを直接実行していたが、これをとりやめ、 MTMainView::createSceneの呼び出しに切り替える。
フルスクリーンの切り替え時に、OpenGLの関数でエラーが発生してしまう。
試行錯誤の末、独自の描画スレッドをやめてディスプレイリンクに移行し、 フルスクリーンの切り替え時にディスプレイリンクを一時停止することで回避することにした。
ディスプレイリンク移行は以下のチケットで対応する。
これまでHelpメニューの"Manual..."を選択した場合、macOSのヘルプビューアが起動していた。
しかしXcode 10移行後は、ヘルプビューアは起動せず、Webブラウザが起動するようになった。 OSの仕様変更と思われるが、関連情報は検索で見つからなかった。
開発環境をXcode 9.4.1から10.3に移行する。
以前Xcode 10.2に移行を試みたところ、OpenGLが正常に動作しなくなったため、Xcode 10への移行を断念していた。