Ionic项目,Xcode中的iOS模拟器,错误:Podfile.lock:没有这样的文件,PODS_ROOT为空

时间:2018-03-18 22:17:54

标签: xcode cordova cocoapods

这个问题,从一年前开始,从来没有得到答案:

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上搜索时,有几十个页面解决了这个问题。例如:

https://support.layer.com/hc/en-us/articles/204301594-I-m-getting-a-The-sandbox-is-not-in-sync-with-the-Podfile-lock-error-How-do-I-fix-it-

这表明:

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?

1 个答案:

答案 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。