Xcode project syncing over cloud service - xcode

I'm developing an iOS app on two different Macs. I have a local git repo setup in xcode. Every time I switch Macs, I download the most recent xcode project folder from my backup cloud service, SugarSync. SugarSync automatically uploads any changes I make to the project to the cloud.
Is this unstable, or just simply a bad practice? Is there a better way to build a project on multiple computers for only one developer?

I would suggest using github for something like this. You could push from one machine and pull from the other would would accomplish the same thing you are doing now.
BUT doing what you are doing now should still work, I've done the same with Dropbox in the past.

Related

How to really work in team on React Native project?

How do you work in team on react native projects?
I'm working in Team of 2 people and having a lot of issues with working on the same project.
I don't understand how to properly create an environment so we can sync our code between each other while working on the same project. Now, we create a git repo with /ios and /android folders, but the thing is: the /ios folder always needs to be changed, because it links to the computer that was last building the project.
For example: we are working at the same time on different .js files and add a new npm dependency and we wish to sync our changes, so we commit changes to the Git repo and try to sync, this is where our pains begin.
The one need downloading the changed has to go to Xcode and manually update all the Framework Search Paths, Header Search Paths, delete libraries that Xcode doesn't see and then add them again.
I know it's moreof an Xcode problem, but I didn't see any detailed guide about team syncing in projects. I know that at Facebook people are doing a lot of cooperative work and I'd appreciate some input over our issues!
If you are using git, you can configure your .gitignore-file to prevent committing xcode-specific stuff and other configuration files.
I can highly recommend gitignore.io, which is a "web service designed to help you create .gitignore files for your Git repositories" [Source].
You can for example type in XCode (or AndroidStudio, ReactNative, Gradle, etc.) and it will automagically generate a .gitignore file for you.

How to Add Xcode project to Github repository from windows environment

After seeing title of my question you might think like this kind of question is already been asked before. However this is not duplicate, read below to know.
I am developing IOS application. Whenever I get time I work on that every time I use either library's PC or friend's MacBook to developing or making changes in my existing project and then I compress the project and upload it to my Google drive.
I would like to add my Xcode project to Github. I know how to do it from MacBook though. I am looking for way to push my Xcode project from windows environment. As I am poor fellow and can not afford MacBook at the moment.
or
If is there any way I can push my project to same repo on Github from different MacBook every time. As I mentioned before I am using public library to work on my IOS app it is not possible that I can be able to use same Apple PC every time.
Make in windows console -
cd /path/to/my/repo
git remote add origin https://github.com/UserExample/ExampleProject
git push -u origin --all
There is a variety of ways to use GIT within Windows. Github is just a GIT repository cloud service. You can fetch, push, pull command line, after installing GIT on your Windows machine and then CD changing directory to your repository (where the source code is) on your Windows hard drive.
Since you are new to GIT and Github, use the very user friendly Github tool:
Github Desktop
You will be able to use use the existing repository on your Windows hard drive, or if it gets confusing via the Github Desktop to "connect" an existing local repository to the Github repository (https:www.github/myrep). Then just backup your working project to a backup folder and clone the Github repo you are using.

Xcode 7 How to Configure a Git Network Repository

I am about to start developing an application in Xcode 7 and will be working on the code from different locations on different Macs. I want to configure a Git repository on my fileserver (Snow Leopard Server) where my code will reside, and will be regularly backed up from, so that I can 'check out' code to whichever Mac I am working on, work with it and 'check in' afterwards. Is this possible?
I am used to working in IntelliJ IDEA where I simply create a bare repository on my fileserver, create my new IntelliJ project on my local Mac and then 'push' my local code to my network repository when needed.
Many thanks.
Chris
You can have your own git server installed locally but its much better to use a service like bitbucket (private repo) or any other free git hosting service.
If you still decide to have it locally on your mac here are the instruction on ow to do it.
http://www.tomdalling.com/blog/software-processes/how-to-set-up-a-secure-git-server-at-home-osx/

How to set Xcode Bot to run "on commit" for all branches of remote repository?

When creating an Xcode Bot in Xcode 6, it is linked to the current active branch in Xcode source control. There seems to be no supported way to change branches after creating the bot.
Xcode Service: Select Git Branch
I have set my bot to run "on commit". I find when I commit to that branch the bot immediately integrates the project. But when I commit to a different branch, the bot takes no action.
Ideally I would like a single Xcode Bot to look at all branches of the remote repository. When there is a new commit to any branch the bot and its tests should be run.
I do not want to create a new bot for each branch. Is there a solution?
Bug Report:
rdar://20154198
Developer Forum:
https://devforums.apple.com/thread/263490
There is also https://github.com/modcloth-labs/XBotBuilder developed by the same creators of the tool #jeremy-fox. It will create a bot per Pull Request, and re-run the bot for every addition in the PR.
It seems to be in early stages and without documentation but the code seems to be well organized so wouldn't be hard to get it to work or change it's behavior to do what you want.
For the moment we use a tool called Buildasaur (https://github.com/czechboy0/Buildasaur) to improve our CI-workflow. It's written in swift and helps to build/run/ delete bots automatically for one github repository, for example whenever a pullrequest was created or newer commits were pushed to the pullrequest. Actually it works fine on our Xcode Server 6.3. Unfortunately it works for just one repository at the same time. :-(
We also hope, that Apple will implement such features soon.
Apple response from the dev forum:
This isn't something Xcode Server supports. You might be able to craft a pre-integration trigger to switch branches in the working copy and invoke seperate xcodebuild invocations, but the results reported in the UI will only be for the Xcode Server builds (the build that XCS runs after your trigger executes).
https://devforums.apple.com/thread/263490
rdar://20154198
This is not currently possible with Xcode Bots (current versions are Xcode Server 4.0.3 & Xcode 6.2). A Bot will only track the specific branch form which it was created.
This was possible in the past on Xcode Server 3 and Xcode 5 using https://github.com/modcloth-labs/github-xcode-bot-builder but this project hasn't been updated to work with the latest version of Xcode Server and Xcode.
I'm also really hoping Apple introduces this feature soon, it would be great to be able to have a single bot monitoring a repo for new Pull Requests and when found run an integration against that PR. For now though, it's just not possible.
Update 3/19/2015:
As #Gus reports in another answer, there is a new Mac OS X based project that can help with ad hoc bot creation for feature branches/PR's called XBotBuilder - https://github.com/modcloth-labs/XBotBuilder. It should be worth noting that currently, this project only works with one github repo. So, if you have more than one repo you'd like to monitor for PR's, this is still not currently possible unless you have multiple machines each running a different instance of XBotBuilder and targeting a different repo.

How do you set up github version control for a team of two?

We're trying to set up github version control for a Jsp-project in NetBeans 7.0.1. The problem is we don't have a clue what to do. I Have set up a public account on github and done all the steps in the install guide on github, ssh keys and everything. So if I wanted to work on my own in this project I wouldn't have a problem.
The problem is how to get my collaborator started. He has an account on github. he set it up with ssh keys and such. In the admin view on github I added him as a collaborator, but we don't know the next step.
So the question is how to connect the collaborator to the project? something like this I suppose?
git remote add origin git#github.com:username/Hello-World.git
git pull
(another question: Do I git only the source files or the whole project folder?)
Regarding your second question... That's a tough one.
A few months ago I was working with a colleague on a JavaEE project and we initially decided to share the whole Eclipse project. Since I was working on Windows and he was working on Linux, we had much trouble maintaining everything. Also we had to make sure that we don't accidentally push up our .project dir, because that would overwrite the settings on the other persons machine, messing up the whole project. So we ended up removing all the project files from the repository and just keeping the source folders (src and WebContent).
Both of us set up an empty project, made our settings and than imported the source code from the repository. Was some trouble setting it up until everybody had the same project settings, but afterwards it worked like a charm.
For just two developers that is fine, I guess for a bigger team, there might be better solutions.
So, I guess Netbeans handles the project settings in a similar way. So in my opinion you should just share the code.
For the first access, what your collaborator should be able to do is a git clone of your repository.
That will set for him the remote address.
If he is declared as a collaborator, he then should be able to push/pull to that remote repo.
Note that your collaborator should have received a push notification access.

Resources