使用Xcode 9的多个发行版环境 - Swift

问题描述:

我已完成编写项目并发布到AppStore。现在我想复制项目并更改Bundle ID,Signing certificates,Splash Screen,Storyboard中使用的项目特定链接和图像。使用Xcode 9的多个发行版环境 - Swift

由于Model类和业务模型根本不会改变。而不是复制粘贴项目,改变类,当错误出现在两个项目上时,修改将只在接口上签名和在同一项目上签名。

这可能吗?

无论如何,这可以做到吗?

您应该创建您的目标副本,这将允许您创建一个具有相同项目业务(代码)逻辑和不同Bundle ID,签名证书,启动画面和项目特定链接的单独应用程序。

下面是步骤来创建重复的目标:

  1. 选择你的项目目标(项目>>通用>>选择目标)
  2. 右击项目目标
  3. 选择Duplicate(菜单酥料饼将提供你的选项来创建一个重复的目标)

enter image description here

  1. 这是您的目标的重复副本,您可以将其作为具有相同业务逻辑的新应用分发。

enter image description here

你未来的更新/代码的变化都将目标上的效果,如果你的源代码文件已分配两个目标。

注意:只要确保在创建新文件时(创建重复/多个目标后),分配两个目标即可使其同时生效。

enter image description here

在这里看看,我的新文件TestFile.swift有(链接)多个目标。

enter image description here

现在以编程方式确定项目目标,并区分你的链接:

var API_LINK = "" 

if let targetName = NSBundle.mainBundle().infoDictionary?["CFBundleName"] as? String { 

    if (targetName == "Test") { 

     API_LINK = "http://webservice.Test" 

    } else if (targetName == "Test copy") { 

     API_LINK = "http://webservice.TestCopy" 

    } else { 

     print("Something wrong - targetName not found") 

    } 
} 
+1

谢谢:)看起来很容易!但我仍然有疑问,这样,如何指定链接和Storyboard图像? – MBH

+1

很好的解释,我没有得到的是,我有'Constants.swift'文件,它包含'API_LINK =“http://webservice.link”;',在'Constants.swift'文件中,我们如何识别它的目标是什么?哪个api链接是需要的? – MBH

+1

使用目标名称常量,您需要设置if-else条件。创建一个目标名称常量(字符串或枚举),并在运行时检查它 – Krunal