任务单 #35750

OS X版の開発環境をXcode7に変更

开放日期: 2015-11-18 01:10 最后更新: 2015-11-29 00:36

报告人:
属主:
状态:
关闭
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Fixed
文件:

Details

OS X 10.11(El Capitan)でMIDITrailが起動時にエラーが発生する問題(#35749)を調査するため、 最新版のXcode7.1に移行する。 またiOSアプリは、2015年2月から、64bitサポートでかつiOS 8 SDKでビルドしたアプリでないと、 App Storeに登録できなくなったため、Xcode6が必須となっていた。

開発環境はOS X 10.10(Yosemite)に更新する。

任务单历史 (3/9 Histories)

2015-11-18 01:10 Updated by: yknk
  • New Ticket "OS X版の開発環境をXcode7に変更" created
2015-11-18 01:19 Updated by: yknk
评论

変更前の開発環境

Ver.1.2.1 for Mac OS X の開発環境

  • OS X 10.7.5 (Lion)
  • Xcode 4.4.1

Ver.1.0.1 for iOS の開発環境

  • OS X 10.8.5 (Mountain Lion)
  • Xcode 4.6.3

Mac OS X版では、サンドボックス対応のため、Xcode3からXcode4.4.1に移行した。(2013年12月)

  • 対応チケット:#32730 開発環境をXcode4に移行

iOS版では、iPhone5対応のため、Xcode4.4.1から4.6.3に移行した。(2014年1月)

  • 対応チケット:#32941 Base SDKをiOS6.1に変更
2015-11-18 01:20 Updated by: yknk
评论

変更後の開発環境

Ver.1.2.2 for Mac OS X の開発環境

  • OS X 10.10.5 (Yosemite)
  • Xcode 7.1
2015-11-19 01:20 Updated by: yknk
评论

修正

Xcode7移行時のプロジェクト設定修正

プロジェクトの設定については、Xcodeから推奨された設定変更を適用した。 ただしアーキテクチャの修正は除外し、32bitのままとした。

Xcode7移行時のコード修正

警告が発生したコードを修正した。

  • フォーマット文字列修正 %d→%lu
  • アラートパネル表示処理修正 NSRunAlertPanel→NSAlert
  • floatの絶対値取得関数を修正 abs→fabsf
  • 廃止された構造体の定義を修正 ComponentDescription→AudioComponentDescription
  • OGLTexture::LoadImageFileにてNSBitmapImageRepのインスタンス確認処理を追加
2015-11-25 01:04 Updated by: yknk
评论

プロジェクトの設定変更

コードサインとプロビジョニングプロファイルの設定

以下のページの記載に従って、Code Signing Identity と Provisiong Profile を設定する。

Technical Q&A QA1814
Setting up Xcode to automatically manage your provisioning profiles
https://developer.apple.com/library/ios/qa/qa1814/_index.html

インストール先ディレクトリの設定

$(HOME)/Applications を /Applications に変更

TARGETS > MIDITrail > Deployment > Installation Directory
これを設定しないとApp Storeアップロード時にエラーが発生する。
ERROR ITMS-90266: "Your application bundle must install to '/Applications'."

2015-11-25 01:04 Updated by: yknk
评论
(This comment has been deleted)
2015-11-29 00:13 Updated by: yknk
评论

OSDN登録版の対応

OSDNに登録する場合は、サンドボックスは無効とする。 本バージョンからDeveloper IDで署名済みとする。

OSDN公開版アプリの作成

  • App Store版プロジェクトに対して以下の変更を加える
    TARGETS > MIDITrail > Capabilities
    	App Sandbox -> OFF
    
    TARGETS > MIDTrail > General
    	Identity / Signing -> Developer ID
    	Team -> 開発者を選択
    
  • Xcodeのメニューから Product > Archive を実行
  • Orgnaizer でアーカイブしたアプリを選択して Export... をクリック
  • Export a Developer ID-signed Application を選択して Next をクリック
  • 開発者が選択されている状態で Choose をクリック
  • Export をクリック
  • デスクトップにファイルが出力される

こうして作成したものをOSDN公開用アプリとする。 Developer ID で署名されているか確認する方法は次の通り。

$ spctl -a -vv ./MIDItrail.app
./MIDItrail.app: accepted
source=Developer ID
origin=Developer ID Application: (開発者)

OSDN公開用のソース準備

* プロジェクト設定を変更する。 これを行わないとプロジェクトの設定ファイルに開発者固有の情報が含まれてしまう。

TARGETS > MIDTrail > General
	Team -> None
* MIDITrail.xcodeproj を右クリックしてパッケージの内容を表示 * project.pbxproj だけを残して他のファイルを削除する

2015-11-29 00:35 Updated by: yknk
评论

2015-11-25 01:04 のコメントは記載ミスのため削除した。記載しようとしたコメントは以下の通り。

ビルド設定とサポート対象OSの変更

Xcode7でビルドしたアプリをMac OS X 10.5(Leopard)で実行したところ、 「Option -> MIDI OUT...」と「Option -> MIDI IN...」のメニューが動作しなくなった。 メニューを選択しても、ダイアログが表示されない。

Xcode7のビルド設定は次の通り。

Base SDK : Latest OS X (OS X 10.11)
OS X Deployment Target : OS X 10.5
Xcode7に10.5のSDKを組み込み、Base SDKを10.5にしてからビルドしても、状況は変わらなかった。 このため10.5(Leopard)をサポート対象から外し、サポート対象を10.6(Snow Leopard)以降とする。 これに合わせてビルド設定を次のように変更する。
Base SDK : Latest OS X (OS X 10.11)
OS X Deployment Target : OS X 10.6

Base SDKを10.6にしたことにより、ビルド時に10.6から廃止となったAPIの利用が警告されたため、 他のAPIを利用するように修正する。修正対象のメソッドは次の通り。

  • MTFileOpenPanel::GetSelectedFilePath
  • MTWindowSizeCfgDlg createWindowSizeArray
2015-11-29 00:36 Updated by: yknk
  • 处理结果 Update from to Fixed
  • 状态 Update from 开启 to 关闭
  • Ticket Close date is changed to 2015-11-29 00:36

Attachment File List

No attachments

编辑

Please login to add comment to this ticket » 登录名