在Swift项目中包含基于方案的某些Objective-C文件

时间:2015-09-29 19:18:44

标签: ios objective-c xcode swift

我在SimulatorStatusMagic时使用automating my screenshots更改模拟器中的状态栏。由于代码无法在设备上运行并使用私有API,因此限制提交到应用商店,因此我无法在非屏幕截图构建中包含此内容。由于应用程序针对iOS 7,项目文件直接包含在项目中,而不使用框架。

在Objective-C Bridging Header中,我有:

#ifdef SNAPSHOT
#import "SDStatusBarManager.h"
#endif

然后我有一个单独的版本名称" snapshot",它具有以下值:

Preprocessor Macros: SNAPSHOT=1
Other Swift Flags: -D SNAPSHOT

在我的app委托中,我有:

#if SNAPSHOT
SDStatusBarManager.sharedInstance().enableOverrides()
#endif

我(错误地)认为这将允许我提交到应用程序商店,因为代码不会编译但我错了。有没有办法只在快照构建中包含此代码?

1 个答案:

答案 0 :(得分:0)

我的猜测是,即使您在使用' SNAPSHOT'进行构建时只是在调用库。标志,库二进制文件仍然与应用程序链接,因此被Apple拒绝。

SimulatorStatusMagic的自述文件说你应该只在调试模式下将它添加到项目中以避免这种情况,你的Podfile设置也应该反映出来。

pod 'SimulatorStatusMagic', :configurations => ['Debug']

参考:https://github.com/shinydevelopment/SimulatorStatusMagic#i-have-a-script-to-take-my-screenshots-can-i-automate-this