我有一个功能,它取决于一个静态库。实际上,Apple没有允许这个静态库,原因很少。所以,现在我们已经决定添加一个预处理器宏,并且基于该功能应该打开/关闭。
我已将代码切换为基于预处理器宏的行为。但我找不到任何基于预处理器宏链接或取消链接库。我不能允许随时链接库,因为我已经告诉苹果不允许它。
我已经知道的一个解决方案:我可以创建多个目标。但问题是我的应用程序已经有很多目标。所以,再次管理这个,我必须为已经创建的每个目标再创建一个目标。
任何帮助将不胜感激。
修改:
我已经创建了像Francesco建议的配置。但是我要说的一个简单的问题如果我将从“库搜索路径”中删除库的路径,那么该库将不会链接到应用程序?因为该库仍然是App的目标。
答案 0 :(得分:3)
您可以创建多个配置,而不是目标。您可以在那里更改链接器标志。 我这样做是为了思考Sparkle框架(在App Store上不允许)
编辑:
要创建/管理配置,请单击侧栏中的项目。然后在主窗口中再次选择项目,而不是目标,并选择“信息”选项卡。
与部署目标选择和语言一起,您将找到“配置”部分。
您可以从那里添加或删除配置。
然后启动它你必须转到产品 - >方案 - >编辑方案 - >构建配置。 您可以复制现有方案并从那里选择正确的配置。
答案 1 :(得分:1)
您可以通过设置(有些未记录的)Xcode构建设置从链接项列表中删除静态库:
EXCLUDED_SOURCE_FILE_NAMES = libUnwanted.a
您可以在.xcconfig文件或普通目标构建设置UI中执行此操作(通过添加自定义构建设置)。例如,如果你在"发布"中设置它。配置Xcode将包含在" Debug"如果发布版本,则编译但省略。
EXCLUDED_SOURCE_FILE_NAMES
适用于可添加到目标的各种文件:源文件,资源,库......
以下是如何逐步完成此操作:
答案 2 :(得分:1)
这个答案归功于Nikolai Ruhe&弗朗西斯
我结合了两者的答案,我得到了解决方案。
以下是我遵循的步骤。
创建新配置。 (要知道如何创建配置,请参阅 Francesco的答案)
在构建设置的用户定义设置中添加了标记EXCLUDED_SOURCE_FILE_NAMES
。 (有关步骤,请参阅Nikolai Ruhe的答案)。在这个标志中,我在我的自定义配置下添加了静态库的名称。
这是一个很好的教程,肯定会帮助你:Remove tesflight from Distriubtion