チケット #36981

iOS版 64bit対応

登録: 2017-02-12 02:51 最終更新: 2017-02-12 10:31

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

iOSアプリは2015年6月1日以降、iOS 8 SDKによるビルドと64bitサポートが必須となったため、 iOS版を64bit対応させる。開発環境を次のように変更する。

変更前:OS X 10.8.5 (Mountain Lion), Xcode 4.6.3
変更後:OS X 10.12.3 (macOS Sierra), Xcode 8.2.1

チケットの履歴 (8 件中 3 件表示)

2017-02-12 02:51 更新者: yknk
  • 新しいチケット "iOS版 64bit対応" が作成されました
2017-02-12 02:53 更新者: yknk
  • マイルストーン(未割り当て) から Version 1.1.0 for iOS (完了済み) に更新されました
  • コンポーネント(未割り当て) から MIDITrail Ver.1.1.x for iOS に更新されました
  • 担当者(未割り当て) から yknk に更新されました
2017-02-12 02:54 更新者: yknk
コメント

ビルド設定変更

Architectures

Targets:MIDITrail / Architectures / Architectures
 →"Standard architectures (armv7, arm64)"に変更

参考:armv7(32bit)はiPhone 3GS以降、arm64(64bit)はiPhone 5s以降

推奨設定

Xcodeのバージョン変更時に提示された推奨設定を受け入れた。 iOS Deployment Targetが8.0に変更されたため、MIDITrailのサポート対象iOSは5.0から8.0に変更する。

Xcode7変更時

  • Target 'MIDITrail' - Adopt "Product Bundle Identifier" build setting
  • Project 'MIDITrail' - Upgrade Base SDK Configuration to Latest iOS (iOS 9.1)
  • Project 'MIDITrail' - Enable Recommended Warnings
  • Project 'MIDItrail' - Automatically Select Architectures
  • Project 'MIDITrail' - Turn on "Build Active Architecture Only" When Debugging
  • Project 'MIDITrail' - Trun on "Enable Testability" When Debugging

Xcode8変更時

  • Target 'MIDITrail' - Update iOS Deployment Target
  • Project 'MIDITrail' - Update iOS Deployment Target
  • Project 'MIDITrail' - Enable Recommended Warnings
2017-02-12 02:56 更新者: yknk
コメント

型の変更

unsigned long型

unsigned longは32bit環境で4byte、64bit環境で8byteになる。 MIDITrailのソースコードはunsigned longを大量に利用しており、影響が大きい。

このためunsigned longを基本的にすべてunsigned intに変更する。 unsigned intは32bit,64bit環境のいずれでも4byteである。

OpenGL APIインターフェースでGLsizei型が指定されているパラメータについて、 unsigned longを利用していた場合は、unsigned intではなくGLsizeiに変更する。

エンコーディングIDをunsigned longで処理していた箇所は、NSStringEncodingに 変更する。

2017-02-12 02:56 更新者: yknk
コメント

廃止APIへの対応

MTFontTexture::CreateTexture

NSString::sizeWithFont を NSString::sizeWithAttributes に変更。 NSString::drawInRect withFont: lineBreakMode: alignment: を NSString::drawInRect withAttributes: に変更。

MIDITrailApp::openMainView

UIViewController::presentModalViewController animated: を UIViewController::presentViewController animated: completion: に変更。

MIDITrailApp::closeMainView

UIViewController::presentModalViewController animated: を UIViewController::presentViewController animated: completion: に変更。

MTMainViewCtrl::onHelpButton

UIViewController::presentModalViewController animated: を UIViewController::presentViewController animated: completion: に変更。

ビュークラス全般

UIViewController::viewDidUnload を削除。

2017-02-12 02:56 更新者: yknk
コメント

その他修正

MTFirstPersonCam::_TransformEyeDirection

警告回避のため、abs()をfabsf()に変更。

MTFirstPersonCam::_TransformRolling

警告回避のため、abs()をfabsf()に変更。

OGLPrimitive::Draw

GL_UNSIGNED_INT が未定義になったため GL_UNSIGNED_INT_OES に変更。

2017-02-12 02:57 更新者: yknk
  • チケット完了時刻2017-02-12 02:57 に更新されました
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました
2017-02-12 10:31 更新者: yknk
コメント

ステータスバー非表示

iPadでMIDITrailを実行すると、メインビューでステータスバーが表示されてしまうため、 以下の修正を適用した。

MTMainViewCtrl::prefersStatusBarHidden

ステータスバー非表示メソッドを追加。常にYESを返却する。

添付ファイルリスト

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

編集

このチケットにコメントを追加するには、ログインが必要です » ログインする