💡

[iOS]実機で使えるが、シミュレータでは使えない定義を探す

2024/05/19に公開

https://twitter.com/kntkymt/status/1792013146410156489?s=61&t=tuQDusY_rne1qqy6QLvaug

このポストを見て、他にどんな定義の差分があるか気になったので探すスクリプトを書いてみました。
ほとんどがヘッダーの差分ですが、ARKit関連ではしっかりシミュレータで除外しているものがあるようです。
結果はぜひ実行して確認してみてください。

#!/bin/bash

dir=$(xcode-select --print-path)
echo $dir

dir1="$dir/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/"
dir2="$dir/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/"

find $dir1 -type f -name "*.swiftinterface" | while read file; do
    file2=$(echo $file | sed "s|$dir1|$dir2|" | sed "s|arm64-apple-ios.swiftinterface|arm64-apple-ios-simulator.swiftinterface|")
    if [ -f $file2 ]; then
        echo $file
        diff --color=auto $file $file2
    fi
done

Discussion