我已经构建了一个使用 Intercom(第三方扩展)的 Ionic 2 应用程序。对讲机是使用 cocoapods 安装的。
编译我的应用程序时出现错误:
diff: /Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
这是由 Build Phase 生成的[CP] Check Pods Manifest.lock
:
diff "${PODS_PODFILE_DIR_PATH}/Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
if [ $? != 0 ] ; then
# print error to STDERR
echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
exit 1
fi
# This output is used by Xcode 'outputs' to avoid re-running this script phase.
echo "SUCCESS" > "${SCRIPT_OUTPUT_FILE_0}"
我已经尝试在上面的脚本中输出环境变量PODS_PODFILE_DIR_PATH
,并且两者都是空白的。我可能可以通过自己修改这些路径来解决这个特定错误,但显然其他更基本的东西被破坏了,所以我需要自己解决实际问题。PODS_ROOT
STDERROR
echo
为什么这些变量是空白的?
我有额外的构建阶段[CP] Copy Pods Resources
,[CP] Embed Pods Frameworks
它们运行一些 shell 脚本。我试过改变这些的顺序,但没有运气。
我的 Podfile.lock 和 Podfile (无论如何都是自动生成的)看起来都不错:
播客文件:
# DO NOT MODIFY -- auto-generated by Apache Cordova
platform :ios, '8.0'
target 'niix' do
project 'niix.xcodeproj'
pod 'Intercom', '~> 3.2.2'
end
Podfile.lock:
PODS:
- Intercom (3.2.12)
DEPENDENCIES:
- Intercom (~> 3.2.2)
SPEC CHECKSUMS:
Intercom: 3119e8ebf76d3da425bab717a08067398fcabfe6
PODFILE CHECKSUM: f99283bb8a4e56cb037a02390d2fbc4e76c97db9
COCOAPODS: 1.3.1
运行时没有错误pod install
,并且我期望的所有文件都存在。
我已经尝试过的事情:
- 跑步
pod install
(当然) - Running
pod deintegrate
, running Product > Clean in XCode, 重新运行pod install
- 手动删除
Podfile.lock
andPods
目录,在 XCode 中运行 Clean 然后重新运行pod install
- 睡个好觉,第二天早上再试一次!
注意事项:
- 我从不
project.xcworkspace
跑project.xcodeproj
- 我正在运行 XCode 8.3.3 的最新稳定版本
- 我正在运行最新版本的 Cocoapods 1.3.1