Implementing ObjCMongoDB into a project - xcode

I am having trouble implementing the "Getting Started" portion of using the ObjCMongoDB driver for MongoDB. Please simplify some of the instructions. I am new to Github and some of the terms do not quite click for me. Any sort of simplification or a step by step process of doing this would be helpful.

CocoaPods is a command line tool for managing Objective-C dependencies. If you're having trouble following the ObjCMongoDB Getting Started guide (or will be building a number of projects) CocoaPods should be an easier install process. As an added bonus, there are thousands of other dependencies that can be installed via CocoaPods once you're set up.
With the exception of creating your XCode project, the following steps need to be done from a command-line prompt (i.e. Terminal or iTerm).
First, install CocoaPods
$ gem install cocoapods
(You may need to sudo gem install cocoapods if you are using a default Ruby install)
Setup the CocoaPods master repo, which includes definitions of Objective C dependencies that can be installed:
$ pod setup
Create a new Xcode project (or use an existing one)
Create a new iOS or OS X project in Xcode. If you have an existing project, you can skip to the next step.
Change to the project directory
$ cd ~/src/myproject
Create a new Podfile
You can run pod init and then edit the default Podfile created, but for simplicity this will work:
$ echo "pod 'ObjCMongoDB', '~> 0.11.0'" >> Podfile
Run pod install
$ pod install
Analyzing dependencies
Downloading dependencies
Installing ObjCMongoDB (0.11.0)
Installing mongo-c-driver (0.8.1)
Generating Pods project
Integrating client project
[!] From now on use `MyProject.xcworkspace`.
Open the workspace file in XCode
$ open MyProject.xcworkspace
#import "ObjCMongoDB.h" and get started coding your app
You should now be set to start coding with The Basics of using ObjCMongoDB.

Related

Cocoa pod v0.39.0 not working with Xcode 8

My current project using cocoa pods of version 0.39.1, and my current pod version in my system is 1.1.1, so when i try to install the cocoa pods in my project path, it gave me warning saying
[!] Invalid Podfile file: [!] Unsupported options {:exclusive=>true} for target Xxx Xxx XxxxTests..
so i have uninstalled pod v1.1.1 and installed 0.39.1. Now when i run install command i get another warning
[!] The master repo requires CocoaPods 1.0.0 - (currently using 0.39.0) Update Cocoapods, or checkout the appropriate tag in the repo.
i'm aware that Xcode 8: Only works with CocoaPods 1.1.0
Should i update my project pod file to latest pod version or should i work with lower version of xcode so it supports v0.39.0
I recently completed a project where I had to migrate a dozen or so (private) Cocoapods from 0.39 up to 1.1.X.
It's actually not that hard, once you get the hang of it (and, at least in my case, the Podfile I put together for 1.1.X continued to work the occasional times I had to drop back down to Pods 0.39)
As you've discovered, you do need to remove ":exclusive => true" and "link_with" (which gets replaced with abstract_target). More information can be found in this Pods migration guide. Here is another "mini" example.
And other people have asked related questions here before. My recommendation is to go up to Xcode 8, otherwise you'll won't be able to do pod update and keep up to date with the latest changes in the Pods you're trying to leverage in your code.

CocoaPods 'pod lib create' not generating Podfile

I've previously (and successfully) been able to create a Pod before running:
"pod lib create os-nsthreading"
But since updated to 1.0.1 the script seems to fail in creating Podfile, thus not creating the required .workspace file:
What language do you want to use?? [ Swift / ObjC ]> ObjC
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> No
What is your class prefix?
> OS
Running pod install on your new library.
[!] No `Podfile' found in the project directory.
I've attempted to update CocoaPods again - but still to no avail - my first thought was permissions, but it seems to create the project files okay...
Any point in the right direction would be much appreciated.
Workaround, (it does appear to create the Podfile infact) just re-run the 'pod install' and it completes the job....
Authors suggest to use last available build of cocoapods prerelease version if you are using Xcode 8 and Swift 3 project. Currently it's a 1.1.0.rc.2 version.
For downloading prerelease version run gem install cocoapods --pre in terminal.
Hope it helps!
Artem

Creating a pod with cocoapods fails

I've just tried to create a pod using pod lib create Test and went with all the defaults. However, when it is done asking me questions I get:
Running pod install on your new library.
[!] No `Podfile' found in the project directory.
Ace! you're ready to go!
We will start you off by opening your project in Xcode
open 'Test/Example/Test'
The file /Users/macattack/Documents/Xcode/Test/Example/Test.xcworkspace does not exist.
I don't understand what I've done wrong.
I'm using XCode 8, cocoapods 1.1.0.rc.2.
Following is working on Cocoapods 1.1.0.rc.2 version.
You haven't done anything wrong. It's a pre-release version, just a few more steps required.
Podfile is already there, but in the Example folder. Open terminal, proceed to Example folder:
cd [path]
You can just drag&drop the folder after 'cd' letters to paste the path.
Then just run pod install.
Open workspace, Xcode will prompt you to update to last Swift syntax version and update version property.
If you are using Swift 3 there is another option, suggested by authors (Issue 5841).
Create a .swift-version file in pod parent folder. Run echo "3.0" >> .swift-version
Create pod with pod lib create [pod name].
Proceed to pod Example folder and run pod install
Hope it helps!
Artem

I'm stuck with CocoaPods

I'm seriously stuck with CocoaPods. Please help!
Can someone please tell me where i'm going wrong? I'm doing an online Objective-C course. I've been stuck on CocoaPods for far too long. I completed the CocoaPods course and seem to have installed everything correctly.
I have followed these steps in line with this tutorial:
1) I created a podfile within the PhotoBombers Xcode project.
2) Within Xcode I clicked on the podfile, then entered: pod 'SimpleAuth/Instagram'
3) I then searched for the Terminal using Spotlight. Within the terminal I then entered 'pod' and pressed enter (as shown in the tutorial), however the following code appeared and looked nothing like the code in the tutorial:
Usage:
$ pod COMMAND
CocoaPods, the Cocoa library package manager.
Commands:
cache Manipulate the CocoaPods cache
init Generate a Podfile for the current directory.
install Install project dependencies to Podfile.lock versions
ipc Inter-process communication
lib Develop pods
list List pods
outdated Show outdated project dependencies
plugins Show available CocoaPods plugins
repo Manage spec-repositories
search Search for pods.
setup Setup the CocoaPods environment
spec Manage pod specs
trunk Interact with the CocoaPods API (e.g. publishing new specs)
try Try a Pod!
update Update outdated project dependencies and create new
Podfile.lock
Options:
--silent Show nothing
--version Show the version of the tool
--verbose Show more debugging information
--no-ansi Show output without ANSI codes
--help Show help banner of specified command

Incorrect path for Pods.debug.xcconfig in Xcode?

so I used Venmo/Synx on my Xcode project with CocoaPods, and it completely screwed everything up.
I was able to fix the Manifest.lock and Podfile.lock errors, but now I am getting this error:
The file “Pods.debug.xcconfig” couldn’t be opened because there is no such file. (/Users/user/GitHub/xxxxxx/Pods/Pods/Target Support Files/Pods/Pods.debug.xcconfig)
As you can see, the path is incorrect, as there is no Pods/Pods directory (there is one extra pod).
How can I fix this? I have only added PODS_ROOT to the user-defined variable, as that fixed my Podfile and Manifest.lock files.
Any help would be much appreciated!
Edit:
After adding PODS_ROOT, I get this when running pod install.
[!] The `Project [Debug]` target overrides the `PODS_ROOT` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
I had the same problem in Xcode 6.1.1. I did the following to solve it:
Set the configuration file setting* "None" for the Pods related target.
Close the .xcworkspace.
run pod install again
now open and build your .xcworkspace
*The configuration file setting is found by selecting the project (not the target) and then the Info tab.
If your path to pods in error is wrong try this:
use pod deintegrate
delete all pod remains files - Podfile.lock, Pods, <Project>.xcworkspace
open <Project>.xcodeproj
remove Pods project on left side
try pod install
I had the same problem with Xcode 11 but I just updated CocoaPods and it worked.
Update CocoaPods to latest version with sudo gem install cocoapods
Run pod install again
I had the same error while trying to build my project for the first time. This is how I resolved it:
pod deintegrate
sudo gem install cocoapods-clean
pod clean
Open the project and delete the “Pods” folder that should be red.
pod setup
pod install
Reopen and build the project, I think it's good to go!
I faced this issue when I upgraded/downgraded cocoapods between 1.6.x and 1.5.x.
The following step fixed this error
1, go to project info tab
2, just under Deployment target, there is configurations field. change your configuration. In my case, there are 2 options
/Users/user/GitHub/xxxxxx/Pods/Pods/Target Support Files/Pods/Pods.debug.xcconfig
/Users/user/GitHub/xxxxxx/Pods/Target Support Files/Pods/Pods.debug.xcconfig
3, clean and build again.
1- Remove your Pods folder Podfile.lock and xcworkspace files root in your project.
2- Open .xcodeproj
3- Go to Build Settings and under Build Options search Always Embed Swift Standard Libraries
4- Update its value with $(inherited)
5- Close project and pod install again
There has been an update to cocoa pods that is causing this problem. Please refer to the cocoa pods release notes :
Change shell script relative paths to use ${PODS_ROOT} instead of ${SRCROOT}/Pods.
Whirlwind #7878
This was done in version 1.6.0.beta.1 (2018-08-16)
Release notes are here: cocoapods release notes
I had the same error and I fixed in following way
1 - Goto your projected setting by blue icon of your project from left pan
2 - Select your project under the project
3 - Select Info window
4 - Check IOS deployement target. This target should be same as you set in general settings of your project (Pic 2).
I got the same situation in Xcode 10.1. This is what works for me.
Open <Project>.xcworkspace
Go into your <project_name> folder(by default it's blue), delete the Pods folder (by default it's yellow)
In Terminal.app, run pod install again
Then I'm able to CMD + R to run the simulator
A few things worth trying:
As Keith mentioned above, you definitely want to exclude Pods from synx.
You almost certainly do not want to override the PODS_ROOT build setting.
I've seen similar errors to yours in a project with multiple targets. Make sure that your Podfile includes a link_with setting that specifies all your app targets.
If you have at least one test target, consider using your Podfile to explicitly import all your app pods to both your application and test targets.
I've not too much experience using a custom xcconfig with CocoaPods, but you might first try removing your xcconfig and allowing CocoaPods to generate its own first.
Close project
Do pod deintegrate
Delete - Podfile.lock, Pods,.xcworkspace in project directory
Do sudo gem install cocoapods
Do pod install
Go to project directory right click on
project.xcodeproj -> show package contents -> open project.pbxproj
Find
"Pods/Target Support Files/
and replace with
"Target Support Files/
This solution will work at any cost!
Try deleting the debug.xcconfig file and run pod install again. It solved my issue
In my case, I deleted my Podfile, Podfile.lock.
Run pod init, then copy all pods to new Podfile, then run pod install again and it's worked.
I think it's happened for the differences from folder paths in the old project (for me, I cloned another project from Git repo).
For me, changing Build system to Legacy in File -> workspace settings did the trick
For me, this caused after I updated cocoapods. So, I downgraded and the build worked again.
To downgrade, first list of all your versions:
sudo gem list cocoapods
Then specify the you want to delete (for me was 1.8.4):
sudo gem uninstall cocoapods -v 1.8.4
Then, with 1.5.3 worked!
This is what worked for me !
I use always Bundler to manage ruby dependencies, then in all my iOS projects i have Gemfile that look like this !
source "https://rubygems.org"
gem "cocoapods"
gem "fastlane"
gem "jazzy"
gem 'xcodeproj', :git => 'https://github.com/CocoaPods/Xcodeproj.git'
gem 'fastlane-plugin-teams', :git => "https://github.com/mbogh/fastlane-plugin-teams"
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
i just run the following, i advice you using alias for this :
## Alias to add in zshrc or bashrc
# bundle install
bdli() {
bundle install $#;
}
piu() {
kill $(ps aux | grep 'Xcode' | awk '{print $2}');
pod deintegrate;
pod repo update;
pod install;
pod update;
open -a Xcode *.xcworkspace;
}
then simply run :
bdli && piu
It will do everything for you :)
PS : To install Bundler go here -> Bundler
pod reintegrate
pod install
edit the .xcodeproj/project.pbxproj file and change the PBXGroup "path = Pods" to "name = Pods"

Resources