Error: "The sandbox is not in sync with the Podfile.lock..." after installing RestKit with cocoapods

IosCocoapodsRestkit 0.20Podfile Lock

Ios Problem Overview


I've encountered an strange issue after installing RestKit with cocoapods. after resolving RestKit dependency for my project with cocoapods and trying to build it, I face this error:

>The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

I tried running pod install, but no change.

Here are some shots: enter image description here

enter image description here

  PODS:
  - AFNetworking (1.3.3)
  - RestKit (0.20.3):
    - RestKit/Core
  - RestKit/Core (0.20.3):
    - RestKit/CoreData
    - RestKit/Network
    - RestKit/ObjectMapping
  - RestKit/CoreData (0.20.3)
  - RestKit/Network (0.20.3):
    - AFNetworking (~> 1.3.0)
    - RestKit/ObjectMapping
    - RestKit/Support
    - SOCKit
  - RestKit/ObjectMapping (0.20.3)
  - RestKit/Search (0.20.3):
    - RestKit/CoreData
  - RestKit/Support (0.20.3):
    - TransitionKit (= 1.1.1)
  - RestKit/Testing (0.20.3)
  - SOCKit (1.1)
  - TransitionKit (1.1.1)

DEPENDENCIES:
  - RestKit (~> 0.20.0)
  - RestKit/Search (~> 0.20.0)
  - RestKit/Testing (~> 0.20.0)

SPEC CHECKSUMS:
  AFNetworking: 61fdd49e2ffe6380378df37b3b6e70630bb9dd66
  RestKit: 1f181c180105a92f11ec4f6cd7de37625e516d83
  SOCKit: 2f3bc4d07910de12dcc202815e07db68a3802581
  TransitionKit: d0e3344aac92991395d4c2e72d9c5a8ceeb12910

COCOAPODS: 0.29.0

Ios Solutions


Solution 1 - Ios

I was able to fix that by updating CocoaPods.

I. Project Cleanup
  1. In the project navigator, select your project
  2. Select your target
  3. Remove all libPods*.a in Build Phases > Link Binary With Libraries
II. Update CocoaPods
  1. Launch Terminal and go to your project directory.
  2. Update CocoaPods using the command pod install

Solution 2 - Ios

After many attemps I managed to fix this problem. Variable ${PODS_ROOT} was not set and I do below trick. Go to Build Phases -> Check Pods Manifest.lock and replace

diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null

to

diff "${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock" > /dev/null

It helps me.

Solution 3 - Ios

I had been searching for hours and I found solutions as follow:

In my case, method 1 works.

Method 1:

  1. choose the target > go to Build Phases > click Link Binary With Libraries > remove all libPods.a files

  2. open Terminal > direct to your project > run:

      pod install
    
  3. clean and build project

ref.1

Method 2:

  1. open Terminal > direct to your project > run:

     pod deintegrate --verbose    
     pod install --verbose
    

ref.2

Method 3:

  1. choose the target > go to Build Settings > click "+" sign

  2. add 2 User-Defined Settings: [to the left = to the right]

     PODS_ROOT = ${SRCROOT}/Pods
    

and

    PODS_PODFILE_DIR_PATH = ${SRCROOT}/

ref.3

Solution 4 - Ios

If you remove all pods from your target in the Podfile, e.g.

target 'myTarget' do
pod 'great-stuff', '~> 4.0'  // you deleted this last pod
end

you'll need to manually delete these builds steps from your Xcode target Build Phases:

  • Check Pods Manifest.lock
  • Copy Pod resources

Cocoapods (current stable version 0.37.2) does not perform this cleanup when you run pod install.

Solution 5 - Ios

Removing pods from the project and re-installing worked for me.

There is nice GitHub repository that can completely remove the pods from the project.

Just keep the backup of your PodFile and run below commands.

  • gem install cocoapods-deintegrate
  • gem install cocoapods-clean
  • Go to the project directory and run pod deintegrate
  • Again run pod clean
  • Run pod install

Clean and run.

Solution 6 - Ios

If you are seeing an error like the following:

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.

Then there's a problem with Cocoapods in your project. Sometimes cocoapods can get out of sync and you need to re-initiate cocoapods. You should be able to resolve this error by:

  1. Deleting the Podfile.lock file in your project folder
  2. Deleting the Pods folder in your project folder
  3. Execute 'pod install' in your project folder
  4. Do a "Clean" in Xcode
  5. Rebuild your project

Solution 7 - Ios

After changing target name

My problem was xcconfig with old target names.

  • Went to project file -> info -> configuration
  • Removed old xcconfig (both Debug & Release)
  • pod install

It would update to new ones.

Also if you had missing .h files that's the reason (pods header search path is in these xcconfig)

Solution 8 - Ios

I found my solution: Run:pod update instead of pod install. The error was fixed!

Solution 9 - Ios

  • Go to Build Phases -> Check Pods Manifest.lock
  • Replace
${PODS_ROOT}/Manifest.lock

with:

${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock

Check in image :

enter image description here

Solution 10 - Ios

In my case, I got same error after integrating WatchKit app. To solve problem I needed to add both targets of WatchKit in Podfile:

target 'MyProject WatchKit App' do
    platform :watchos, '2.0'
    shared_pods
end

target 'MyProject WatchKit App Extension' do
    platform :watchos, '2.0'
    shared_pods
end

PS: Maybe this happened for me because I mistakenly installed pods for MyProject WatchKit App target initially.

Solution 11 - Ios

First you have to understand what the Podfile.lock is then understand what the Manifest.lock is and where it's used.

The Podfile holds either the (optimistic or exact) versions of every dependency you have. The lock file holds only exact versions.

Once you do pod install all the pods get downloaded/installed into the /pods directory. You may want to commit them Or maybe not. That's up to your team. What's NOT up to your team is decide if they should commit the the Podfile.lock or not. That needs to be committed so every dev in the team can be sure they've got the exact same version.

  • So let's say you downloaded your team’s code. In your project's root directory you only have Podfile and Podfile.lock and the Pods directory wasn’t committed.
  • Then you do pod install to creat the Pods directory. Your snapshot of every pods’ version should match with the versions of all pods from the Podfile.lock.
  • CocoaPods has a safety check in place, to ensure matching versions

This is where the Manifest.lock comes into play. Manifest.lock is your local machine's lock created. It has to match with Podfile.lock that is generated by the last commit (that caused changes in for your pods) in your repo. If it doesn't match then something is messed up.

Docs on what the Manifest.lock file is:

  #     Manifest.lock: A file contained in the Pods folder that keeps track of
  #     the pods installed in the local machine. This files is used once the
  #     exact versions of the Pods has been computed to detect if that version
  #     is already installed. This file is not intended to be kept under source
  #     control and is a copy of the Podfile.lock.

I honestly can only think of one scenario in which the Manifest.lock and Podfile.lock would be out of sync:

I mean if you pull from main branch, then you get main's Podfile and lock file. If you then make a change to the Podfile and then run pod install, then you would be updating the Podfile.lock and Manifest.lock and will keep them in sync. No issues with this

Is this just so that if:

  1. You and your team don’t commit the /Pods directory
  2. You have merge conflicts in your Podfile or Podfile.lock but don’t realize it. Or you haven't committed both Podfile and Podfile.lock
  3. Then given that Xcode doesn’t process the Podfile and Podfile.lock, then naturally your project can build successfully.
  4. However if you go in an inspect your Build Phases of your targets you'd see the following

enter image description here

That script is documented here

#     Adds a shell script build phase responsible for checking if the Pods
#     locked in the Pods/Manifest.lock file are in sync with the Pods defined
#     in the Podfile.lock.
#     
#     @note   The build phase is appended to the front because to fail fast.
#     
#     @return [void]

What those lines do are: perform a diff and ensure that sure your Manifest.lock i.e. your local snapshot of all installed pod versions are equal to Podfile.lock i.e. your repo's current snapshot of all installed pod versions.

The fix is likely super simple, just make sure you Podfile is what you want. Then just run pod install. You have also somehow accidentally made changes to your Manifest.lock inside your /Pods directory (or as mentioned earlier maybe only committed the lock file but not the Podfile or vice versa). Deleting /Pods directory causes no harm. Just do a pod install after. Do not do pod update unless that's what you want.

Just make sure you never delete the Podfile.lock otherwise if you do pod install then it would update all dependencies to the latest version it can.


Also helpful to see and this video on lock files, CocoaPods docs on how the lock file is put to use differently for pod install vs. pod update and last see how all that logic is used in more detail this artsy blog on checksums. It's worth noting that a single space will create a new checksum and can make things out of sync.

Solution 12 - Ios

Run this, and your errors will vanish

rm -rf Pods && gem install cocoapods && pod install

Solution 13 - Ios

Try to set up the correct target in Podfile and then run pod update or pod install

ios platform target

Solution 14 - Ios

I encountered this issue with a misconfigured xcconfig file.

The Pods-generated xcconfig was not correctly #included in the customise xcconfig that I was using. This caused $PODS_ROOT to not be set resulting in the failure of diff "/../Podfile.lock" "/Manifest.lock", for obvious reasons, which Pods misinterprets as a sync issue.

Solution 15 - Ios

For me the problem was that I made a new target in my app by duplicating an existing one, but forgot to add the target to the Podfile. For some reason, the cloned target did work for days without problems, but after a while it failed to build by this error. I had to create a new target entry for my cloned project target in the Podfile then run pod install.

Solution 16 - Ios

If you download the project from github or copy from other place, then the dependencies library do not exists, there will be this issue.

You just need to cd to the project/project_name directory in terminal , use ls to check whether there is a Podfile file.

if there exists the Podfile, you just need to install the dependencyies:

pod install

Solution 17 - Ios

The steps that worked for me (XCode 8.3.3/XCode 9 beta with a Swift 3.1 project)

 - Navigate to your project directory
 - pod install //which then asks you to do the next step
 - pod repo update //takes a while to update the repo
 - pod update
 - pod install
 - Close Xcode session
 - Open and Clean the project
 - Build/Run

Also make sure you open the .xcworkspace file rather than the project file (.xcodeproj) when working with pods. That should solve any errors with linking such as "Apple Mach -O Linker command failed"

Solution 18 - Ios

Please do the following steps:

1: Deleting the Podfile.lock file in your project folder

2: Deleting the Pods folder in your project folder

3: Execute 'pod install' in your project folder

4: Do a "Clean" in Xcode

5: Rebuild your project

Solution 19 - Ios

I tried everything, but the problem persisted. After that I did this and it worked ASAP (As Smooth As Possible).

  1. Open the .xcworkspace file.
  2. Change to legacy build system if using Cordova on Xcode 10.
  3. Go to target/project of Podfile. Select Deployment traget as 11+
  4. Then Change the debug and release to Pods-.build/release. It was App.debug/release in my case.Pic attached. Hope it helps. CHange the Debug Release in Pod

Solution 20 - Ios

My working answer is:

  1. Install update your cocoapods by this command: pod update
  2. Install your new pods by this command. pod install
  3. Last one command: sudo gem install cocoapods.

Solution 21 - Ios

Completely nothing worked out for me from these answers. Had to create the project again by running cordova platform add ios. What I've noticed, even freshly generated project with (in my case) Firebase pods caused the error message over and over again. In my opinion looks like a bug for some (Firebase, RestKit) pods in Xcode or CocoaPods. To have the pods included I could simply edit my config.xml and run cordova platform add iOS, which did everything for me automatically. Not sure if it will work in all scenarios though.

Edit: I had a Podfile from previous iOS/Xcode, but the newest as of today have # DO NOT MODIFY -- auto-generated by Apache Cordova in the Podfile. This turned on a light in my head to try the approach. Looks a bit trivial, but works and my Firebase features worked out.

Solution 22 - Ios

Can you try this:

  1. Delete the Pods folder
  2. Delete Podfile.lock
  3. Run pod install
  4. Clean + Build

Solution 23 - Ios

This made my day!

  1. Deleting the Podfile.lock file in your project folder
  2. Deleting the Pods folder in your project folder
  3. Execute pod install in your project folder
  4. Do a "Clean" in Xcode
  5. Rebuild your project

Solution 24 - Ios

When you do

pod install --verbose

make sure:

1- you are in the correct directory. Most times, when a github project is downloaded, there will be a master folder. You need to be inside the actual project name folder(masterfolder/project folder) in the terminal before you invoke pod install --verbose

2- Delete the old pod lock folder then clean the project using xcode clean & do pod install.

3- Keep your rvm updated.

Solution 25 - Ios

My problem was the cocoa pods version so I installed the latest with: sudo gem install cocoapods --pre Then pod update

That worked for me

Solution 26 - Ios

If you are applying to the way Project Cleanup and your project still error.

You can go to tab Build Phases and then Find Check Pods Manifest.lock and remove the script.

Then type command to remove folder Pods like that rm -rf Pods

and then you need to remove Podfile.lock by command rm Podfile.lock

Probably, base on a situation you can remove file your_project_name.xcworkspace

Finally, you need the command to install Pod pod install --repo-update.

Hopefully, this solution comes up with you. Happy coding :)

Solution 27 - Ios

I had same error. First I update cocoapods using

sudo gem install cocoapods

then install pods using Pod install command worked for me.

Solution 28 - Ios

For me, working in flutter, the configuration was not automatically added due the existing configuration.

Adding #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig" to Flutter/Release.xcconfig and Flutter/Debug.xcconfig

solved the issue.

Solution 29 - Ios

I faced this problem in a Flutter project. I just opened iOS Module in xCode and Build Clean Folder worked for me.

Solution 30 - Ios

I had the same issue with Ionic-3, I did some above mention steps but none of them worked for me.

For Ionic Remove the ios platform

$ ionic cordova platform remove ios
$ ionic cordova platform add ios

Open xcode then try to build. this worked for me :-)

Solution 31 - Ios

Fixed my issue with ionic app by installing cordova version 9, tried all above solution mostly linked with xcode neither worked for my ionic app

If anyone facing same issue with their cordova app kindly update to cordova 9 to fix this

Solution 32 - Ios

This can also happen if you use Windows for the Git checkout, and the Podfile.lock is created with windows (CRLF) line endings.

Solution 33 - Ios

Check Pods target and Runner target thats have to be same

1- Runner

enter image description here

2- Pods

enter image description here

Solution 34 - Ios

if your pods are empty

  1. remove copy pods resources and check pods manifest.
  2. lock from build phases settings of your project

Solution 35 - Ios

My problem was when my fellow developer added a pod in the project and then i pull the project using github then the error occurred. I ran pod install and it updated the pods with new library which was added by my fellow developer. hope it helps.

Solution 36 - Ios

I have the same problem with latest ComponentKit 0.14. The reason is PODS_ROOT was not set and i have found the solution is add a line to ComponentKit.xcconfig :

#include "../Pods/Target Support Files/Pods-ComponentKit/Pods-ComponentKit.debug.xcconfig"

Solution 37 - Ios

Check in your project that Pods are maybe not being pushed to Git. So it's obvious that compile will break since it cannot find the Pods directory

 diff "${PODS_ROOT}/../../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null

I solved this by issuing pod install in the Terminal after navigating to my project's directory.

Indeed, I had an error cannot find pod command which meant that cocoapods were not installed. This is fixed via gem install cocoapods. If you get any dependency error, just install each command that is reported missing. In my case I had to update Ruby and after that cocoapods were installed properly and I was able to use the command pod install.

PS. If you have Pods directory, try pod update. Maybe your library needs updating.

Solution 38 - Ios

i had this issue when i was trying to remove previously installed library

@Michal's answer helped me

https://stackoverflow.com/questions/13751147/remove-or-uninstall-library-previously-added-cocoapods

Solution 39 - Ios

I accidentally removed and then unpack back folder from where I tried to install pod.
It was like this:

  1. cd in your project folder
  2. zip your project
  3. remove project folder
  4. unzip folder back
  5. from now even you have this folder you should go to this folder again from the terminal

Solution 40 - Ios

I had error:

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.

I pulled request from bitbucket for first time. I cleaned my project and tried everything(pod install, pod update etc.) but none of the above answer worked for me. Then I just check the path where I was installing the pod and corrected it and installed again,It just worked. Make sure give the path just before where .xcodeproj or .xcworkspace(if it is already there)exist. May be someone get benefitted from this.

Solution 41 - Ios

I use the cocoa pods installation from the bundle.

  • Install bundler
  • Add Gemfile in root of project
  • Add required gems in Gemfile
  • bundle install
  • and then always use bundle exec pod install

If you don't know how-tos of one of these steps, searching on google will help :)

Solution 42 - Ios

pod deintegrate <PROJECT>.XCODEPROJ // will deintegrate cocoapods
pod install // installs the pods

Solution 43 - Ios

I had the same issue I update everything to the latest from: npm -v 6.4.1 node -v v10.2.1 pod --version 1.5.3

to: npm -v 6.5.0 node -v v11.8.0 pod --version 1.6.0

and fix it

Solution 44 - Ios

I got this error when I added a new developer account. I changed the Team under project name but I missed to update it under the Pods folder.

I solved it once I updated the new developer ID under the Teams option available under Pods-> Signing -> Team, the error was gone and the build succeeded.

Solution 45 - Ios

I mixed up some comments above and that resolved my problem

I. Project Cleanup

  1. In the project navigator, select your project
  2. Select your target
  3. Remove all libPods*.a in Build Phases > Link Binary With Libraries

II. Clean build folder

In XCode: Menu Bar → Product → Product -> Clean build Folder

III. Update cocapods

Run pod update

Solution 46 - Ios

For me it was an issue with the Ruby version number.

I was getting the error:

The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

After trying a million things, including much of what is included in this thread I wound up hacking the pod file located at: usr/local/bin/pod

I corrected the first line to point to the ruby version that actually existed on my machine. I changed:

#!/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby

to

#!/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby

After days of struggling, changing a 3 to a 6 fixed everything.

Solution 47 - Ios

I tried all sorts of combinations of pod install, deleting node_modules & reinstalling, cleaning & rebuilding the xcode project, and even restarting my computer. None of these worked for me...

The fix for me was running pod --version in my project's root directory. I don't know how or why, but this successfully installed a missing dependency, so I thought I'd share it here in case it helps someone else :)

Solution 48 - Ios

Be sure the pod configuration files are set.

enter image description here

Solution 49 - Ios

I was able to fix this by clicking Product->Clean Build Folder.

enter image description here

Solution 50 - Ios

These simple steps work for me:

  1. close your workspace
  2. run pod install --repo-update
  3. open your workspace, rebuild (It will be more reasonable, if you clean up your build folder).

Solution 51 - Ios

In my case, this problem was due to a corrupt *.xcworkspace file. It was showing two different versions of my project in the Project Navigator menu on the left.

To verify, I removed the output redirection ( > /dev/null) from the bash script located in Build Phases > Check Pods Manifest.lock, so that it would print the diff to STDOUT. Sure enough, reading the build log, I had wildly different Podfile.lock and Manifest.lock output.

To fix it I deleted my *.xcworkspace, then ran pod install again from my ios folder. That autoregenerates the workspace file. Open that new file in XCode and voila, no more build errors.

Solution 52 - Ios

I solved by running pod install and copying the content of file Pods/Manifest.lock to the file Podfile.lock

Solution 53 - Ios

We had the same issue, someone in our team had opened the Podfile.lock in Visual Studio Code, saved it, and the editor had removed the CR (carriage return) at the end of the file. Reintroducing the 'CR' solved the problem. So definitely run that command to figure out why those files are different.

diff "${PODS_ROOT}/../../Podfile.lock" "${PODS_ROOT}/Manifest.lock"

Solution 54 - Ios

You need to include Pods-generated xcconfig path in your customized xcconfig. For me this was due to that misconfigured xcconfig file.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHashem AboonajmiView Question on Stackoverflow
Solution 1 - IosMr. FahrenheitView Answer on Stackoverflow
Solution 2 - IosPavel ShorokhovView Answer on Stackoverflow
Solution 3 - IosEddieView Answer on Stackoverflow
Solution 4 - Ios100gramsView Answer on Stackoverflow
Solution 5 - IosTeena nath PaulView Answer on Stackoverflow
Solution 6 - IosDavidView Answer on Stackoverflow
Solution 7 - IosAvishay CohenView Answer on Stackoverflow
Solution 8 - IosgiapnhView Answer on Stackoverflow
Solution 9 - IosThe_PratikshaKView Answer on Stackoverflow
Solution 10 - IosShyngys KassymovView Answer on Stackoverflow
Solution 11 - IosmfaaniView Answer on Stackoverflow
Solution 12 - IosSiraj AlamView Answer on Stackoverflow
Solution 13 - Iostyoc213View Answer on Stackoverflow
Solution 14 - IosMenslyView Answer on Stackoverflow
Solution 15 - IosgklkaView Answer on Stackoverflow
Solution 16 - IosaircraftView Answer on Stackoverflow
Solution 17 - IosNaishtaView Answer on Stackoverflow
Solution 18 - IosIKKAView Answer on Stackoverflow
Solution 19 - IosjollyView Answer on Stackoverflow
Solution 20 - IosGurpreet SinghView Answer on Stackoverflow
Solution 21 - IosDaniel DanieleckiView Answer on Stackoverflow
Solution 22 - IosAndres CastañedaView Answer on Stackoverflow
Solution 23 - IosalitosunerView Answer on Stackoverflow
Solution 24 - IosGokhan DilekView Answer on Stackoverflow
Solution 25 - IosDariusVView Answer on Stackoverflow
Solution 26 - IosCuong NguyenView Answer on Stackoverflow
Solution 27 - IosGurjinder SinghView Answer on Stackoverflow
Solution 28 - IosMoritz MorgenrothView Answer on Stackoverflow
Solution 29 - IosDevelopineView Answer on Stackoverflow
Solution 30 - IosRajat.r2View Answer on Stackoverflow
Solution 31 - IosVikrant SatputeView Answer on Stackoverflow
Solution 32 - IoskeccsView Answer on Stackoverflow
Solution 33 - IosEray HamurluView Answer on Stackoverflow
Solution 34 - Iosdewanshu sharmaView Answer on Stackoverflow
Solution 35 - IosMuhammad Zohaib EhsanView Answer on Stackoverflow
Solution 36 - IosBang NguyenView Answer on Stackoverflow
Solution 37 - IossandaloneView Answer on Stackoverflow
Solution 38 - IosZain Ullah MuhammadView Answer on Stackoverflow
Solution 39 - IosNikolay ShubenkovView Answer on Stackoverflow
Solution 40 - IosSimple MauryaView Answer on Stackoverflow
Solution 41 - IosJasveer SinghView Answer on Stackoverflow
Solution 42 - IosSravanView Answer on Stackoverflow
Solution 43 - Iosuser1628938View Answer on Stackoverflow
Solution 44 - IossbanerjeeView Answer on Stackoverflow
Solution 45 - IosphuongtmView Answer on Stackoverflow
Solution 46 - IosRaseoneView Answer on Stackoverflow
Solution 47 - IosBlundering PhilosopherView Answer on Stackoverflow
Solution 48 - IosMuhammed TanriverdiView Answer on Stackoverflow
Solution 49 - IosfarazaView Answer on Stackoverflow
Solution 50 - IosNeal.MarlinView Answer on Stackoverflow
Solution 51 - IosJP LewView Answer on Stackoverflow
Solution 52 - Iosahmed SView Answer on Stackoverflow
Solution 53 - IosYohann RichardView Answer on Stackoverflow
Solution 54 - IosDeepanshu SinghaniaView Answer on Stackoverflow