Cocoapods installation problems - swift

I am trying to install Cocoapods on a mac running MacOS Sierra. After writing "sudo gem install cocoapods" (getting no error), I entered "pod setup". However, my terminal just gets stuck on the line "Setting up CocoaPods master repo".
Can anyone help me identify my mistake? Thanks in advance!

Sometimes it can take long.
You could try running in verbose mode:
pod install --verbose
This'll show you what cocoapods is up to.
pod install or pod setup fetches whole repo with history when you first time run it.
If You don't need that commit history then.
pod setup
Ctrl +C
cd ~/.cocoapods/repos
git clone --depth 1 https://github.com/CocoaPods/Specs.git master

This is a general problem because how heavy cocoapod is. It's a popular library and have high amount of load to their sever.
So these are what I did to solve it:
1. pod setup
It will do "setting up master" again, DONT' WAIT, continue these steps below
2. Ctrl +C
3. pod repo remove master
4. cd ~/.cocoapods/repos
5. git clone --depth 1 https://github.com/CocoaPods/Specs.git master
It takes around 5 minutes for me (I think it depends on internet connection), then I can do "pod install".
https://stackoverflow.com/a/40541430/3258003

Related

Updating the stack on Heroku

I have a small application running there using the heroku-buildpack-perl buildpack. It's just a small Plack application and it had been running fine for about two years.
But then, Heroku informed me that the stack it was running on was getting too old and I needed to upgrade it. "Just run a new deploy and the application will be installed to a new stack!" said they or something like that.
I inniciated a new deploy by creating an empty commit in the git repository, the deployment ran... but the application was crashing. From the logs I realised they updated the Perl version, but the deployment didn't update my XS libraries (I use local::lib, not sure if that's part of the buildpack or I set it up manually when creating the application back then).
In the end, I deleted the application and recreated it on the new stack, which worked OK. I don't keep any data anywhere so it was not a problem. What's the correct way to update the stack, though? There should be an option somewhere that tells Heroku to rebuild the dependencies, right?
Crossposted to PerlMonks.
Setting Heroku stack. In this case to heroku-20 equivalent with Ubuntu 20.04
$ heroku stack:set heroku-20
Since you are using a different stack, the old cache may not be compatible. Clearing cache:
$ heroku plugins:install heroku-builds
$ heroku builds:cache:purge -a appname
Triggering a rebuild:
$ git commit --allow-empty -m "Purge cache"
$ git push heroku master
Note:
You have to make sure that the buildpack you are using is compatible with heroku-20. If it is not it will not work. You will have to wait for the maintainer to update, use a different buildpack or fix the buildpack yourself and use that.
If you follow this step by step it is similar to deploying an entirely fresh app.

How to develop custom cocoa-pod of your existing Xcode project?

If you want to create you own cocoapods with storyboards, XIBs, resources and with other frameworks such as Alamofire, MBProgressHUD etc.
Easy steps to create Cocoapod from existing xcode project
Create a repository on your git account (Repo name, check README,
choose MIT under license).
Copy the url of your repository.Open terminal and run following command.
git clone copied your repository url
Now copy your Xcode project inside the cloned repository folder on
your Mac. Now run following commands
git add -u to add all files (if not added use: git add filepath/folder)
git commit -m "your custom message"
git push origin master
Create a new release to go to your git repository or run following commands
git tag 1.0.0
git push --tags
First, we need to make sure that you have CocoaPods installed and
ready to use in your Terminal. run the following command:
sudo gem install cocoapods --pre
Creating a Podspec 
All Pods have a podspec file. A podspec, as its name suggests,
defines the specifications of the Pod! Now let’s make one, run
following command on terminal
touch PodName.podspec
After adding and modifying your .podspec file. Validate your .podspec
file by hitting following command on terminal
pod lib lint
Once you validate it successfully without errors run following
command to register you and build cocoapod respectively
pod trunk register  
pod trunk push PodName.podspec
If all goes well, you will get this on terminal
🚀 PodName (1.0.0) successfully published
📅 February 5th, 02:32
🌎 https://cocoapods.org/pods/PodName
👍 Tell your friends!
Yeah!!!!! congrats you have got your pod link. Use wherever you want to use it.
Here is some useful links . You can follow the same.
https://www.appcoda.com/cocoapods-making-guide/
https://www.raywenderlich.com/5823-how-to-create-a-cocoapod-in-swift

Where to place custom packages that are being developed in github?

I want to get started developing my own packages. I am also adding version control via Github. I mainly develop on my Mac and a Windows laptop, but there is potential for me to develop on other machines down the line. My IDE of choice is PyCharm. I need to figure out where to place my packages both on Github and on my local machines so that my packages are always in sync regardless of where I am developing. Help??
First, let's clarify that git is the version control system, and Github is a platform for hosting git repositories (there are many other platforms aside from Github). You use git commands to manage your codes, and Github is where you store a copy of your codes.
By adding version control and putting a copy on Github, you've already taken the first step in managing your codes on different machines. All you need to do is to make sure the codes on Github is always the latest updated or maintained version.
Here's a sample workflow:
On machine 1 (Mac), clone a copy of the Github repo
Develop on machine 1
When you are satisfied with your changes, push your codes from machine 1 to Github
On machine 2 (Windows), clone a copy of the Github repo
Develop on machine 2
When you are satisfied with your changes, push your codes from machine 2 to Github
On machine 1, do a fetch to check for updates to the code
If there are updates, pull those changes to machine 1
Again, when done making changes, push them from machine 1 to Github
On machine 2 again, fetch and pull changes
Repeat this fetch-pull-push- cycle for all machines
Basically, you'll need to make sure that on wherever machine you are, when you are done, you should always push those changes to the remote (Github). So that other machines, can fetch and pull those changes and continue where you left off.
UPDATE (based on comment):
Once you've got the workflow for your package source codes, next is to package them like any other regular Python package and install them to your site-packages (either directly for your system or preferably in a virtual environment).
I recommend taking a look at the Python docs on Packaging Python Projects which uses setuptools to make your package compatible with pip.
Here's a sample workflow:
git clone <mypackage#github.com> # or git pull if you already cloned it before
cd mypackage
pip install -r requirements.txt
pip install -e . or pip install --user -e .
That last step will install your package to your site-packages folder, like any other pip-compatible package (assuming you've setup your setup.py file properly). If you are using virtual environments, you'll have to activate the virtual env first, then install your package there.
If you are not going to do any modification on the source code, and you just want to install the package on a specific machine, then you can also specify the Github URL to pip:
$ pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject # from git
Lastly, if you are planning to upload this package to PyPi, check out the docs on Uploading the distribution archives. This just adds an extra step to your workflow of uploading your package to PyPi and then doing pip install from there next time.

Do Cocoa Pods Re-Install When Uploading To App Store?

So I'm using a library that's been abandoned but I've made quite a few changes within its files under Pods. If the pods are reinstalled, the library won't work. What's the best practice for this sort of thing?
I have forked the project over and updated it with my changes.
Instead of having the line:
pod "PodToIntall"
I have
pod "PodToInstall", git: => "the url to my fork", branch: => "master"
If I try to pod install I get the error
[!] Unable to find a specification for 'PodToInstall'
The project is dead so if I can't get the owner to merge my changes is there any way to pull it off my github?
Check that all steps are done from the following list:
Change the source files from your forked pod project.
Commit it & push to GitHub (if pod is hosted here).
Update the Podfile within your main project to use forked pod.
Run in terminal pod update PodToInstall.
Also CocoaPods and GitHub forks might be useful.

Eclipse (GGTS) "Computing Git status for repository [username]"

Each time I save an edit in Eclipse (GGTS/STS v3.4) it automatically runs the task: Computing Git status for repository [username].
The CPU usage rockets but it never seems to make any progress. I've left the process running for up to 15 minutes before giving up and stopping it manually. It then restarts the next time I save a change.
Presumably EGit is trying to synchronise but it isn't really clear what or why. Does anyone know why this might be happening and how to stop it?
Older versions of EGit used to automatically connect a project to its Git repository in case it finds a .git in any of the project's parent directories.
In your case, it seems you have a Git repository in your home directory. Depending on the size of your home directory, this can take a long time.
Since EGit 3.0.2, the home directory is no longer automatically indexed. So, make sure you are using EGit 3.0.2 or higher. In case you are using Eclipse 4.3.0, upgrade to 4.3.1. Otherwise upgrade to the newest version from the EGit download page.
After upgrading, open the Git Repositories view (using Ctrl+3 or Cmd+3 and typing its name). Then find the repository named [username] and remove it from the view.
In order to stop this thread from running, try:
rm -r .metadata/.plugins/org.eclipse.core.resources/.projects/*/org.eclipse.egit.core
and
rm -r .metadata/.plugins/org.eclipse.core.resources/.projects/*/.indexes/properties.index
seems to be working! credit to http://willtipton.com/coding/2014/09/21/Eclipse-building-git-something.html
Amir Dahan and Ryan Poolos's answer does work. Thanks a lot.
In Windows OS, you can open a "git bash" window if a git client was installed, then input the command.
If you just delete the "properties.index",they can be created again when you start the Eclipse next time.
cleaning up org.eclipse.egit.core and properties.index was useful. It works for me to get rid of computing Git status issue.
But now I cannot sync my project.