OSDN Ticket Archive


Ticket #35750

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

登録: 2015-11-18 01:10 最終更新: 2015-11-29 00:36

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

詳細

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)に更新する。

チケットの履歴

2015-11-18 01:10 更新者: yknk
  • 新しいチケット "OS X版の開発環境をXcode7に変更" が作成されました
2015-11-18 01:19 更新者: 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 更新者: yknk
コメント

変更後の開発環境

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

  • OS X 10.10.5 (Yosemite)
  • Xcode 7.1
2015-11-19 01:20 更新者: yknk
コメント

修正

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

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

Xcode7移行時のコード修正

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

  • フォーマット文字列修正 %d→%lu
  • アラートパネル表示処理修正 NSRunAlertPanel→NSAlert
  • floatの絶対値取得関数を修正 abs→fabsf
  • 廃止された構造体の定義を修正 ComponentDescription→AudioComponentDescription
  • OGLTexture::LoadImageFileにてNSBitmapImageRepのインスタンス確認処理を追加
2015-11-25 01:04 更新者: 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 更新者: yknk
コメント
(このコメントは削除されました)
2015-11-29 00:13 更新者: 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 更新者: 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 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2015-11-29 00:36 に更新されました

添付ファイルリスト

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