Swift 3如何pipe理不同目标的不同代表

我们为同一个项目创build了两个目标(Target_One&Target_Two)。

  • Target_One包含SDK1并委托Target1SDKHelperDelegate
  • Target_Two包含SDK2并委托Target2SDKHelperDelegate

创build两个目标的原因是:我们需要上传两个具有相同用户界面但不同SDK集成的应用程序。

我们知道,每个SDK都有自己的代表。 所以我们想要应用特定于目标的代表。

例如:Target_One有一个名为MyClass的类

class MyClass: NSObject, Target1SDKHelperDelegate { } 

在上面的类中,我们实现了Target1SDKHelperDelegate委托。 我们对Target_Two也使用相同的类,我们要为Target_Two使用Target2SDKHelperDelegate。

那么我们如何能够让两个不同的代表来实现两个不同的目标呢?

我们也知道要pipe理目标,我们应该使用下面的代码。

 #if Target_One #else #endif 

但是有谁告诉我们如何使用上面的代理pipe理?

我们想要做一些事情:

  class MyClass: NSObject #if Target_One , Target1SDKHelperDelegate #else , Target2SDKHelperDelegate #endif { } 

其实这很简单直接。 最近我遇到了iPA的大小问题导致像20MB那么大。 我禁用了某些目标中不需要的function,并且在引用禁用的function文件时,必须pipe理像Appdelegate这样的共享文件。 通过简单地复制Appdelegate文件解决这个问题,并将其放在与特定目标相关的特定path中。 然后在其目标下包含每个appDelegate文件。 有效 。 这个想法是一样的,如果你有firebase推送通知pList为多个目标或imageAssets文件夹的configuration文件。 希望这可以帮助。