0

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

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

创建两个目标的原因:我们需要上传两个具有相同 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
   {

    }
4

2 回答 2

1

可以尝试使用 typealias 使用此代码:

#if FREE_VERSION
public typealias DELEGATES = UIViewController & AttributeUDBClientMainDelegate & AttributeSubscriptionHelperDelegate
#else
public typealias DELEGATES = UIViewController
#endif

public final class SettingsViewController: DELEGATES {
于 2018-07-30T13:42:58.123 回答
0

实际上它非常简单直接。最近我遇到了 iPA 大小太大的问题,比如 20MB。我禁用了某些目标不需要的功能,并且当它引用了禁用的功能文件时,必须管理像 Appdelegate 这样的共享文件。通过简单地复制 Appdelegate 文件并将其放在与特定目标相关的特定路径中解决了这个问题。然后将每个 appDelegate 文件包含在其目标下。有效 。如果您有多个目标或 imageAssets 文件夹的 firebase 推送通知 pLists 配置文件,这个想法是一样的。希望这可以帮助。

于 2017-04-05T09:34:52.157 回答