我们为同一个项目创建了两个目标(Target_One& Target_Two)。
创建两个目标的原因是:我们需要上传两个具有相同UI但不同SDK集成的应用程序。
众所周知,每个SDK都有自己的代理。因此,我们希望应用特定于目标的代理。
示例:Target_One有一个名为 MyClass
的类class MyClass: NSObject, Target1SDKHelperDelegate {
}
在上面的课程中,我们实现了Target1SDKHelperDelegate委托。 我们也为Target_Two使用相同的类,我们希望Target_Two使用Target2SDKHelperDelegate。
那么我们如何才能为两个不同的目标设置两个不同的代表?
我们也知道管理目标,我们应该使用下面的代码。
#if Target_One
#else
#endif
但有人告诉我们如何使用上面的方法来管理委托吗?
我们想做类似的事情:
class MyClass: NSObject
#if Target_One
, Target1SDKHelperDelegate
#else
, Target2SDKHelperDelegate
#endif
{
}
答案 0 :(得分:1)
可以尝试使用以下代码使用typealias:
#if FREE_VERSION
public typealias DELEGATES = UIViewController & AttributeUDBClientMainDelegate & AttributeSubscriptionHelperDelegate
#else
public typealias DELEGATES = UIViewController
#endif
public final class SettingsViewController: DELEGATES {
答案 1 :(得分:0)
实际上它非常简单直接。最近我遇到的问题是iPA的大小太大了20MB。我禁用了某些目标不需要的功能,并且当它引用了禁用的功能文件时,必须管理Appdelegate等共享文件。通过简单地复制Appdelegate文件并将其放在与特定目标相关的特定路径中解决了这个问题。然后在其目标下包含每个appDelegate文件。有效 。这个想法是相同的,就像你有firebase推送通知pLists多个目标或imageAssets文件夹的配置文件。希望这会有所帮助。