突然想到一个问题。当我更改分支并且它有一些pod更改时,Xcode失败了,构建会显示一条错误消息,告诉你安装pod(我们都知道这一点(。
问题是Xcode是如何知道这一点的?我不认为Xcode在查看Podfile.lock的散列,Xcode有其他方法可以知道pod的变化吗?
这不是纯粹的Xcode。
显示的错误是error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
,对吗?这是一条硬编码到Shell脚本中的消息,CocoaPods将其添加到Xcode工作空间的构建阶段:
diff "${PODS_PODFILE_DIR_PATH}/Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
if [ $? != 0 ] ; then
echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
exit 1
# ...
脚本通常在"编译源代码"步骤之前添加。