Xcode, Objective-C (2)

引き続き試行錯誤しているのでその記録.

開発環境見直し

要件:MacOS 10.6 Snow Leopard 以降をサポートするべし

  • 使用中のOSは,2021年12月時点でバージョンmacOS 12.1 Monterey.
  • この時点で配布されているXcodeはバージョン13.2.1.
  • Xcode 13.2.1は,macOS 10.9〜12.2向けにしかビルド出来ない.(Deployment Targetという)
  • MacOS 10.6をDeployment Targetに含むXcodeの最新のものは,Xcode 12.0.1だった.(Apple公式)

というわけで,Xcode 12.0.1を入手して使用することになった.

Xcode 12.0.1を入手

  • Apple Developper Downloadサイトを開き,ページ右上のmoreをクリック(直リンク).
  • 絞り込み検索テキストボックスにXcode 12.0と入力すると,目的のXcode 12.0.1が上がってくる.
    Xcode 12.0 というのもあるはずだが,検索結果からは除外される模様.わずか3日で12.0.1がリリースされているので,そういうこと?
  • Xcode_12.0.1.xipというファイルがダウンロードされる.

Xcode 12.0.1のインストール

  • ダウンロードしたXcode_12.0.1.xipをダブルクリックする.
  • Xcode.appが展開される.
    アイコンが「利用不可」な感じになっているはずだが気にしない.
  • 他のバージョン(最新版とか)と同居させる場合は,変名する.
    Xcode-12.0.1.app あたりが良さそう.ファイル名にスペースは含めないほうが良いらしい.
  • Xcode-12.0.1.appをFinderでアプリケーションフォルダーに移動(ドラッグ&ドロップ)
利用不可な感じのアイコン

Xcode 12.0.1の起動

  • そのままアイコンをダブルクリックすると起動できない.
  • ターミナルを開き,そこにアプリケーションフォルダーのXcode-12.0.1.appをドラッグ&ドロップ.
    /Applications/Xcode-12.0.1.app と表示される
  • その表示の右端のスペースを削除して/Contents/MacOS/Xcodeと続けて入力して[Enter].
    /Applications/Xcode-12.0.1.app/Contents/MacOS/Xcode
  • 「検証中」ダイアログが出るので暫く(結構長く)待つと,無事起動する.
  • YouTubeを参考にさせていただきました

Xcode 12.0.1の起動(やりかた2)

  1. ⌘+[Space]Spotlight検索呼び出し
  2. terminal.app“と入力 ←”ターミナル”が見つかるので起動
  3. cd /Applications/X と入力して[tabキー]を押す ←Applicationsフォルダー内でXから始まる候補が表示される
  4. Xcode-12.0.1.app と表示されるまで[tab]を繰り返して押す
  5. 同じ要領で cd /Applications/Xcode-12.0.1.app/Contents/MacOS/ となるよう入力する
  6. ./Xcode と入力して[enter]を押す ←Xcode 12.0.1 が起動する
  7. Xcodeのウィンドウが出てこないときはDockのアイコンをクリックする

新規プロジェクト作成時のヒント

10.6 Snow Leopard向けに設定する

Development Targetを変更して,macOS 10.6 用にビルドするための設定.ターゲットを変えただけだとビルドエラーが出る.

  • Project Navigator(左ペインのアイコン列のフォルダーアイコン)を選択
  • ツリーのルート(プロジェクト)を選択

Deployment Targetの設定

  • [Info] [Build Settings] [Swift Packages]のタブから[Info]を選択
  • [Development Target]
    └ [macOS Development Target] で [10.6] を選択

対策:clang: error: -fobjc-weak is not supported on the current deployment target

  • [Info] [Build Settings] [Swift Packages]のタブから[Build Settings]を選択
  • [Apple clang – Language – Objective-C]
    └ [Weak References in Manual Retain Release] を [No] に設定