1、A copy的名称是不是显得不够专业?现在来修改一下: 1)首先修改Xcode左上角的target名称: 点击xcode左上角Run、Stop右边的工程名称,下拉框中选择Manage Schemes,在弹出框中,点击A copy那行,点击一次、再点击一次,就可以修改A copy为你想要的名字了,比如ALite; 2)修改xcode左下方Products下的A copy.app名称: 点击Targets下你刚才改名后的ALite,点击Bulid Setting,搜索Packaging下的Private Headers Folder Path,修改A copy.app/PrivateHeaders为:ALite.app/PrivateHeaders; 2、修改Bundle Identifier和选择不同的证书,让app区分开来 1)新target需要的.plist文件 新建一个文件夹X,添加X到项目中,添加时选择target为ALite,不要选target A了,因为不是共用的;复制原来target的A-Info.plist到X,修改其名称为ALite-Info.plist,xcode中右键Add File To ...,选择添加到target ALite中; 2)点击target: ALite ->Summary:提示你需要选择plist文件,选择1)中添加的ALite-Info.plist; 3)点击target: ALite ->Summary:设置Bundle Idenfitier; 4)点击target: ALite->Build Settings->Code Signing:选择另外的证书; 3、修改程序名称 一般说来,多个target的程序名称不同,复制zh-Hans.lproj和en.lproj下的InfoPlist.strings文件到X,xcode中右键Add File To ...,选择添加到target ALite中;然后修改InfoPlist.strings的内容:CFBundleDisplayName="程序名称Lite"; 4、2个target到现在就创建好了,你添加资源文件的时候,通过选择添加的target来控制不同版本的内容;再说一下预编译宏的事情:target->Build Setting,搜索:Preprocessor Macros,设置Debug和Release里的预编译宏内容,比如TARGET_VERSION_LITE=1表示lite版本(注意=前后不能右空格,有空格会编译不过),程序中对不同版本这样判断: #if TARGET_VERSION_LITE ==1 ... #elif TARGET_VERSION_LITE ==2 ... #endif