使用GCC_PREPROCESSOR

时间:2018-06-18 23:02:32

标签: ios xcode cocoapods c-preprocessor imessage-extension

我正在尝试将iMessage Extension添加到我的应用中。

添加我尝试从SDK的podspec文件创建 iMessage Extension subspec ,如下所示:

... Base ...

s.subspec 'App' do |app|
   app.dependency 'SDK/Base'
   ...
end

s.subspec 'Ext' do |ext|
   ext.dependency 'SDK/Base'
   ext.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'APP_EXTENSIONS=1' }
end

以下是我的应用 Podfile 的一部分

target 'App' do
   pod 'SDK/App', :path => '..path..'
   ... other pods ...
end

target 'iMessage' do
   pod 'SDK/Ext', :path => '..path..'
   ... other pods ...
end

我有一些代码部分(在SDK中),如下所示

#if APP_EXTENSIONS               (tried 'ifdef' & 'if defined()' also)
   ... code part 1 ...
#else
   ... code part 2 ...
#endif

我的期望是

我希望在选择并运行目标“iMessage”时执行代码第1部分(因为iMessage目标具有'SDK / Ext'作为依赖关系,并且该人应该定义'APP_EXTENSIONS = 1')

我希望在选择并运行目标'App'时执行代码第2部分。(因为App目标有'SDK / App'作为依赖,而且那个人没有定义'APP_EXTENSIONS = 1')

但是,无论我选择什么目标,'代码第1部分'总是在运行时执行

我不确定我的期望是否正确。

如果没有,请告诉我如何实现这一目标。

如果他们被期待,请帮助我为什么它不起作用。

非常感谢。

参考https://miqu.me/blog/2016/11/28/app-extensions-xcode-and-cocoapods-omg/

0 个答案:

没有答案