one project, two versions? (sandboxed and nonsandboxed version)? any easy way to maintain the code?

倖福魔咒の 提交于 2019-12-23 02:35:13

问题


I have developed a cocoa project and right now it has two versions, both sandboxed and non-sandboxed version.

there are some differences between the sandboxed and non-sandboxed version, but the majority is the same. ie. for sandboxed version I will have limited access to certain directories, and in order to access some directories like desktop I'll have to add the entitlement. for the non-sandboxed version, I'll have no limitation on the directories, also I am allowed to add the "check for update" aka sparkle framework etc.

both are still in testing mode (ie. not yet submitted to the mac app store) and right now, how I separate them was, I have the master branch for the non-sandboxed version, and a new branch for the sandboxed version.

however updating code is a pain in the butt. Once I have implemented some features for the non-sandboxed version, I had to commit the changes, then merge the changes back to the sandboxed branch. The thing is, I can't just merge all the changes to the sandboxed version, I have to be careful, only merge the feature changes I made.

So for those of you who developed app for both sandboxed and non-sandboxed, how do you deal with such situation. Is there any easy way to maintain the code?


回答1:


I think a good approach is to use a define (SANDBOX for example) and to create two targets one for the sandbox version which include the entitlements file and the SANDBOX define, and one which has no entitlements file and no SANDBOX define.

In the classes, functions in which the program must behaves different, you can easily separate the code for the sandboxed and non-sandboxed versions using this define (SANDBOX).



来源:https://stackoverflow.com/questions/15682384/one-project-two-versions-sandboxed-and-nonsandboxed-version-any-easy-way-to

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!