我想在App Store上提供我的iPhone应用程序的两个不同版本 - 一个免费,受到通过应用程序显示的项目数量的限制,另一个完全无限制.
两个应用程序的源代码完全相同,唯一的区别是将项目存储在应用程序中的SQLite数据库.
据我所知,该应用程序的两个版本都需要具有不同的包名称和不同的图标.我试图找到一种方法来避免完全复制源代码目录,以便能够自定义其中的一些东西:数据库,图标,笔尖字符串等.
有没有一个很好的方法来做到这一点而不重复一切?
只需在项目中创建第二个目标.一个可以是功能齐全的应用程序,其中包括完整的数据库,新的目标将是您的演示版本,以及演示数据库.我们使用Crosswords来做这件事,它运行正常.然后,您可以将所有来源保存在一个位置,而不用担心事情不同步.
明智地使用条件编译.我不知道你在使用什么语言,但在C/C++条件下,编译是使用宏预处理器和ifdefs完成的.你会写代码如下:
#ifdef FULL_APP // unlimited size #define SIZE -1 #else #define SIZE 100 #endif
构建程序时,在编译器命令行上提供适当的宏定义.
gcc program.cc -o program.o -DFULL_APP
您可以通过各种方式使用条件编译和宏预处理器来打开或关闭可执行文件中的各种功能,或者修改程序的其他方面.