使用Xcode 9的多个发行版环境 - Swift
问题描述:
我已完成编写项目并发布到AppStore。现在我想复制项目并更改Bundle ID,Signing certificates,Splash Screen,Storyboard中使用的项目特定链接和图像。使用Xcode 9的多个发行版环境 - Swift
由于Model类和业务模型根本不会改变。而不是复制粘贴项目,改变类,当错误出现在两个项目上时,修改将只在接口上签名和在同一项目上签名。
这可能吗?
无论如何,这可以做到吗?
答
您应该创建您的目标副本,这将允许您创建一个具有相同项目业务(代码)逻辑和不同Bundle ID,签名证书,启动画面和项目特定链接的单独应用程序。
下面是步骤来创建重复的目标:
- 选择你的项目目标(项目>>通用>>选择目标)
- 右击项目目标
- 选择
Duplicate
(菜单酥料饼将提供你的选项来创建一个重复的目标)
- 这是您的目标的重复副本,您可以将其作为具有相同业务逻辑的新应用分发。
你未来的更新/代码的变化都将目标上的效果,如果你的源代码文件已分配两个目标。
注意:只要确保在创建新文件时(创建重复/多个目标后),分配两个目标即可使其同时生效。
在这里看看,我的新文件TestFile.swift
有(链接)多个目标。
现在以编程方式确定项目目标,并区分你的链接:
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")
}
}
谢谢:)看起来很容易!但我仍然有疑问,这样,如何指定链接和Storyboard图像? – MBH
很好的解释,我没有得到的是,我有'Constants.swift'文件,它包含'API_LINK =“http://webservice.link”;',在'Constants.swift'文件中,我们如何识别它的目标是什么?哪个api链接是需要的? – MBH
使用目标名称常量,您需要设置if-else条件。创建一个目标名称常量(字符串或枚举),并在运行时检查它 – Krunal