Ticket #39720

macOS版 開発環境をXcode 10に移行

Open Date: 2019-11-04 21:45 Last Update: 2019-11-07 01:29

Reporter:
Owner:
Status:
Closed
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

開発環境をXcode 9.4.1から10.3に移行する。

以前Xcode 10.2に移行を試みたところ、OpenGLが正常に動作しなくなったため、Xcode 10への移行を断念していた。

  • #39116 macOS版 開発環境をXcode 9に移行

Ticket History (3/6 Histories)

2019-11-04 21:45 Updated by: yknk
  • New Ticket "macOS版 開発環境をXcode 10に移行" created
2019-11-04 21:46 Updated by: yknk
Comment

対策

推奨設定適用

Xcode 10.3の推奨設定を受け入れる。

  • Choose files and reference language to create Base localization
  • Specify how to migrate "Endlish.lproj"(deprecated) items to the "en.lproj" localization

これにより、en.lprojフォルダに格納されていた*.xibファイルが、すべてBase.lprojフォルダに移動された。

Base Internationalization 対応

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"フォルダは削除した。

Deployment Targetの変更

*.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

  • "Use Asset Catalog..."ボタンを押す。
  • "Migrate"ボタンを押す。

Xcode上で、Resources/Images.xcassetsが追加される。 プロジェクトフォルダには、MIDITrail/MIDITrail/Images.xcassets/AppIcon.appiconsetが追加される。

アイコンの管理方法変更に伴い、以下の設定からMIDITrail.icns を削除する。

Targets / MIDITrail / Build Phases
Copy Bundle Resources

2019-11-04 21:47 Updated by: yknk
Comment

対策:OpenGLの動作異常 その1

Xcode 10でMIDITrailをビルドして起動すると、OpenGLの関数でエラーが発生してしまう。 エラー発生原因を辿ると、glGetIntegerv(GL_MAX_TEXTURE_SIZE,&size)の呼び出しで、 sizeにゼロが返されており、OpenGLが正常に動作していないことが分かった。 原因は、シーンの生成処理前にCGLSetCurrentContextを実行していないためであった。 これまでたまたま動作していただけなのかもしれないが、Xcode 10に移行しただけで 動作が変わってしまったことが不可解である。

MTMainView::createScene

シーン生成メソッドを新規追加。 これまでMIDITrailApp::_CreateSceneで実施していたシーンオブジェクトの生成メソッド呼び出しを 本メソッドに引っ越し、コンテキスト取得後に実行する。

MTMainView::getDevice

描画デバイス取得メソッドが不要となったため削除。

MIDITrailApp::_CreateScene

シーンオブジェクトに対して生成メソッド呼び出しを直接実行していたが、これをとりやめ、 MTMainView::createSceneの呼び出しに切り替える。

2019-11-04 21:51 Updated by: yknk
Comment

対策:OpenGLの動作異常 その2

フルスクリーンの切り替え時に、OpenGLの関数でエラーが発生してしまう。

試行錯誤の末、独自の描画スレッドをやめてディスプレイリンクに移行し、 フルスクリーンの切り替え時にディスプレイリンクを一時停止することで回避することにした。

ディスプレイリンク移行は以下のチケットで対応する。

  • #39721 macOS版 ディスプレイリンク対応
2019-11-04 23:31 Updated by: yknk
Comment

ヘルプについて

これまでHelpメニューの"Manual..."を選択した場合、macOSのヘルプビューアが起動していた。

しかしXcode 10移行後は、ヘルプビューアは起動せず、Webブラウザが起動するようになった。 OSの仕様変更と思われるが、関連情報は検索で見つからなかった。

2019-11-07 01:29 Updated by: yknk
  • Resolution Update from None to Fixed
  • Status Update from Open to Closed

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login