OSDN Ticket Archive


Ticket #39720

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

登録: 2019-11-04 21:45 最終更新: 2019-11-07 01:29

報告者:
yknk
担当者:
yknk
チケットの種類:
サポートリクエスト
状況:
完了
コンポーネント:
MIDITrail Ver.1.3.x for macOS
マイルストーン:
Version 1.3.1 for macOS (完了済み)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

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

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

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

チケットの履歴

2019-11-04 21:45 更新者: yknk
  • 新しいチケット "macOS版 開発環境をXcode 10に移行" が作成されました
2019-11-04 21:46 更新者: yknk
コメント

対策

推奨設定適用

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 更新者: yknk
コメント

対策: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 更新者: yknk
コメント

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

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

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

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

  • #39721 macOS版 ディスプレイリンク対応
2019-11-04 23:31 更新者: yknk
コメント

ヘルプについて

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

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

2019-11-07 01:29 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません