这个问题,从一年前开始,从来没有得到答案:
Xcode /Podfile.lock: No such file
我有完全相同的问题。我想重新打开这个问题。
我有一个Cordova / Ionic应用程序,它也通过CocoaPods使用Firebase。
我之前从未使用过这种技术,我只是接管了这个项目,因为原来的开发人员离开了。我对Cordova或Ionic或Mac iOS一无所知。
我跑了:
pod install
并且没有错误地运行。如果我这样做:
ls -alhrt platforms/ios/
我明白了:
pods-release.xcconfig
pods-debug.xcconfig
..
cordova
www
platform_www
CordovaLib
.gitignore
Cher
frameworks.json
pods.json
Cher.xcworkspace
ios.json
build
.DS_Store
Podfile
Cher.xcodeproj
.
Pods
Podfile.lock
因此文件“Pods”存在,还有“Podfile.lock”。
但是,如果我在Xcode中打开这个项目并尝试构建,我会收到错误:
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.
此错误很常见,当我在Google上搜索时,有几十个页面解决了这个问题。例如:
这表明:
Deleting the Podfile.lock file in your project folder
Deleting the Pods folder in your project folder
Execute 'pod install' in your project folder
Do a "Clean" in Xcode
Rebuild your project
我已经反复这样做了,但我仍然得到同样的错误。
同样,如果我使用ls
命令,我可以看到文件Podfile.lock
,但Xcode继续抱怨该文件不存在。
我认为解决方案类似于他们在此尝试的内容:
PODS_PODFILE_DIR_PATH and PODS_ROOT not defined
https://discuss.multi-os-engine.org/t/pods-podfile-dir-path-and-pods-root-not-defined/823
如果我这样做:
grep -iR PODS_ROOT *
我明白了:
Cher.xcodeproj/project.pbxproj: "${PODS_ROOT}/FirebaseInvites/Resources/GINInviteResources.bundle",
Cher.xcodeproj/project.pbxproj: "${PODS_ROOT}/FirebaseInvites/Resources/GPPACLPickerResources.bundle",
Cher.xcodeproj/project.pbxproj: "${PODS_ROOT}/GTMOAuth2/Source/Touch/GTMOAuth2ViewTouch.xib",
Cher.xcodeproj/project.pbxproj: "${PODS_ROOT}/GoogleSignIn/Resources/GoogleSignIn.bundle",
Cher.xcodeproj/project.pbxproj: "${PODS_ROOT}/Manifest.lock",
所以如果PODS_ROOT为空,那就解释了为什么Xcode找不到Manifest.lock。
但是我在哪里以及如何设置PODS_ROOT?
答案 0 :(得分:1)
解决方案在这里:
PODS_ROOT and other pods env variables not set when compiling Ionic app
因此,简而言之,这是通过删除iOS项目来解决的:
ionic cordova platform rm ios
重新加入:
ionic cordova platform add ios
然后建立:
ionic cordova run ios --device
但请确保您已在系统上安装了Cocoapods。