本身 macOS/iOS App 可以携带编译的 executable 文件,比如带个静态编译的 ffmpeg 之类的。

但今天提交的时候突然提示我

Couldn't find platform family in Info.plist CFBundleSupportedPlatforms or Mach-O LC_VERSION_MIN for xxxx

找来找去,看到一个线索

好吧,用 otool -l xxxxxx

查看了编译出来的二进制文件,还真没有 LC_VERSION_MIN_MACOSX 这个值。

解决方案

man clang 后可以看到这样一段说明

MACOSX_DEPLOYMENT_TARGET
If  -mmacosx-version-min  is unspecified, the default deployment 
target is read from this environment variable. 
This option  only affects Darwin targets.

找到原因后,解决的方法很直接……在 bash 里加入这个环境变量就好了。

export MACOSX_DEPLOYMENT_TARGET=10.11

重新编译后使用 otool -l 查看

cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.9
  sdk 10.13

嗯,赞,just works