Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

roeik

macrumors member
Original poster
Dec 25, 2008
80
0
Hi All,

I have an iPhone application which is an inventory app for diamonds (click here for details).
Other companies approached me to buy the app, and I was wondering what would it takes in terms of time and resources to create a white label of the app.

Most importantly, what is the best way of doing it?

First way to come to mind is just to copy the entire project folder and change some settings. Would it cause problems when submitting the "new" app to the app store?

Second way is to just start a new project and copy paste the files. Which one you recommend the most?

Also, any easy way to introduce updates across the apps?

Thank you,

Roei Kashi
 
Last edited:
I have never used forking or branching (although I am using a repository).
Can you explain a bit about the process?
I understand that if I create a fork it just clones the project on the server side? But I am curious about the following.
1. How would I switch between developing on one project to the other?
2. How can I remove/add features on one project without affecting the other?
3. Or I can I remove/add features on all projects?
4. Can I manage everything with Xcode without using the command line?
Thank you!
 
I've used forked repos with github.com, but you can do it on other git-hosts like bitbucket. A fork is kind of like a branch in that it remembers where it came from but it's really a duplicate of the repo.

1. How would I switch between developing on one project to the other?

The project in your fork is a different project. You will have a separate workspace for the forked repo. Just open the project from the forked repo when you want to work on it.

2. How can I remove/add features on one project without affecting the other?

The fork will be downstream so adding features there won't go back to your base repo. If you add features or fix bugs in the base repo then you will pull them into the forked repo.

3. Or I can I remove/add features on all projects?

If you pull from upstream then your downstream will get the new code.

4. Can I manage everything with Xcode without using the command line?

You can do most of this from the github or bitbucket UI. That's where you make the forks. You commit, make branches, etc in the appropriate workspace just like you normally do in Xcode. There may be a few manipulations you need to do on the command line.
 
  • Like
Reactions: roeik
Thanks for your help. I am using my own git repository using the Server app on a mac server. Is it possible to create a "fork" using this mechanism (as opposed to gitHub and bitBucket). How would I go about creating a fork?
In xCode Source Control menu, I can create a "new branch" but not an option for a "fork". I tried to research it online for the last two days but couldn't find anything useful.
 
I recommend that you push your repo to one of the git-hosts like bitbucket. You can still do all of your development on your local system but you get an offsite backup and other benefits.

So you would create a repo on bitbucket and push your local repo there. You wouldn't lose any history. Then fork on the remote. Then pull your new repo to your local machine. You then work in your local workspaces like normal, and push your commits to the remote.

The whole design of git is aimed at a distributed remote/local style of work.
 
I ended up simulating my own "fork", since I wanted my flies and repositories to stay on my own servers.
This is how I simulated a "fork", for other people who might need it:

1. I used this command to create a new folder project: git clone url_to_git new_folder/Project_name
2. Changed the name of the remote: git remote rename origin external_name_for_original_app_repository (this can be whatever name you want).
3. Disable git push so that you can't push back by mistake: git remote set-url --push external_name_for_original_app_repository no_push
4. I created a new git repository on my server to serve as a repository for the new app (let's call it new_app_repo)
5. I added this new repository as the "origin" remote: git remote add origin new_app_repo_url
6. git push origin (this will update the new_app_repo)
7. Changed the default "git push" to new_app_repo by editing your .git/config:

[branch "master"]
remote = origin
merge = refs/heads/master

this mean you can just type "git push" and it will push to new_app_repo

8. In xcode, pushing changes will automatically push the new_app_repo. If I want to pull code like bug fixes new features from my first original prototype app you can select that repository, press CTRL pull, and then I can select which changes I want to add and which one to reject.

Other useful commands: type git remote -v to see all remotes and verify everything in order
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.