【GitHub Actions,Xcode】DerivedDataとSwiftPMをキャッシュしてCIのビルドを速くする (irgaly/xcode-cache)irgaly/xcode-cache は、XcodeのDerivedDataとSwiftPMのパッケージをGitHub Actionsのキャッシュに保存するアクションである。コミットごとにキャッシュを保存し、次のビルドでは直前のキャッシュを復元して、変更のあったファイルだけをコンパイルする。MAC 2026-10-11 2026-10-11
【swift package】Package.swiftの依存関係の解決だけを先に実行する (resolve)swift package resolveは、Package.swiftに書いたパッケージの依存関係を解決する。パッケージの取得とPackage.resolvedの更新だけを実行し、ビルドはしない。MAC 2026-10-11 2026-10-11
【xcodebuild】SwiftPMの依存関係の解決だけを先に実行する (-resolvePackageDependencies)xcodebuild -resolvePackageDependenciesは、プロジェクトが参照するSwiftパッケージの依存関係を解決する。パッケージの取得とPackage.resolvedの更新だけを実行し、ビルドはしない。MAC 2026-10-11 2026-10-11
【xcodebuild】テストの実行先を指定する (-destination)xcodebuild testでは、-destinationでテストを実行する場所を指定する。値は、キー=値をカンマで区切った指定子である。 $ xcodebuild test -project [プロジェクト名].xcodeproj -scheme [スキーム名] -destination 'platform=macOS,arch=arm64' $ xcodebuild test -project [プロジェクト名].xcodeproj -scheme [スキーム名] -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.1' 指定できる実行先は、-showdestinationsで調べる。MAC 2026-10-11 2026-10-11
【Xcode】Shared schemeをGit管理してCIのxcodebuildで使う (xcscheme)Xcodeのスキームは、.xcschemeのファイルに保存される。xcodebuild -schemeでビルドやテストをするCIでは、スキームを共有して、.xcschemeのファイルをGitで管理しておくと確実である。MAC 2026-10-11 2026-10-11
【xcrun】Xcodeに含まれるツールのパスを調べる (--find)xcrun --find(-f)は、選択中のXcodeに含まれるコマンドラインツールの絶対パスを表示する。ツールは実行されない。 $ xcrun --find clang /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang /usr/bin/clangや/usr/bin/gitは、選択中のXcodeにある同名のツールを呼び出すシムである。実体のパスを調べたいときや、スクリプトで使うツールを固定したいときは、xcrun --findを使う。MAC 2026-10-11 2026-10-11
【GitHub Actions,Xcode】CIで使うXcodeのバージョンを固定する (xcode-select)GitHub ActionsのmacOSランナーには、複数のバージョンのXcodeがインストールされている。ワークフローで使うXcodeのバージョンを固定するには、sudo xcode-select -sでXcodeを切り替える。MAC 2026-10-10 2026-10-11
【Xcode】ENABLE_USER_SCRIPT_SANDBOXINGでRun Scriptの入出力を宣言させるXcodeで新規に作成したプロジェクトのビルド設定には、ENABLE_USER_SCRIPT_SANDBOXING = YESが設定されている。YESのときは、Run Scriptのビルドフェーズが、サンドボックスの中で実行される。サンドボックスは、ソースのフォルダやビルドの出力先にある、フェーズに宣言していないファイルの読み書きを拒否する。MAC 2026-10-09 2026-10-09
【macOS,Xcode】Dockに表示しないアプリを開発する (INFOPLIST_KEY_LSUIElement)メニューバーに常駐するアプリを開発するときは、Dockにアイコンを表示したくない場合が多い。Info.plistのLSUIElementがtrueのアプリは、Dockから隠れるエージェントアプリとして扱われる。MAC 2026-10-08 2026-10-08
【PlistBuddy】Info.plistの値をコマンドで読み書きするPlistBuddyを使うと、Info.plistなどのplistの値をコマンドで読み書きできる。-cでコマンドを渡す。 $ /usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" Info.plist 1.2.3 $ /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString 1.2.4" Info.plist PlistBuddyは/usr/libexec/にあり、PATHに含まれない。フルパスで実行する。MAC 2026-10-08 2026-10-08