Ios PLCrashReporter源代码迁移错误“大小写值不是常量表达式”

Ios PLCrashReporter源代码迁移错误“大小写值不是常量表达式”,ios,xcode,build-process,plcrashreporter,Ios,Xcode,Build Process,Plcrashreporter,我想将PLCrashReporter集成到我的静态库项目中,并生成一个嵌入它的.framework 到目前为止,我遵循相同的层次结构,从他们的源代码XCode项目导入代码。将文件拖放到我的XCode项目中。很多文件需要链接器标志,因为它们不使用ARC,但我使用 不,我遇到了一个我不太理解的问题,可能是因为我的低水平有限的经验与Objective-C混合在一起 因此,在PLCrashSignalHandler.mm文件中有一个带有两个Case的开关,两个都停止编译,并出现错误“Case value

我想将PLCrashReporter集成到我的静态库项目中,并生成一个嵌入它的.framework

到目前为止,我遵循相同的层次结构,从他们的源代码XCode项目导入代码。将文件拖放到我的XCode项目中。很多文件需要链接器标志,因为它们不使用ARC,但我使用

不,我遇到了一个我不太理解的问题,可能是因为我的低水平有限的经验与Objective-C混合在一起

因此,在PLCrashSignalHandler.mm文件中有一个带有两个Case的开关,两个都停止编译,并出现错误“Case value不是常量表达式”

switch ((uintptr_t) (next->value().action.sa_handler)) {
                case ((uintptr_t) SIG_IGN):
                    /* Ignored */
                    handled = true;
                    break;

                case ((uintptr_t) SIG_DFL):
                    /* Default handler should be run, be we have no mechanism to pass through to
                     * the default handler; mark the signal as unhandled. */
                    handled = false;
                    break;

                default:
                    /* Handler registered, execute it */
                    next->value().action.sa_handler(signo);
                    handled = true;
                    break;
            }
案例uintpttr_t SIG_IGN:和案例uintpttr_t SIG_DFL:使用上述错误停止构建

他们的源代码正确地构建了这个项目,所以我很好奇我错过了什么


谢谢。

我昨天刚遇到这个问题。为了解决这个问题,我仔细比较了PLCrashReporter项目中的所有构建设置与我的项目中的设置。我更改了许多选项,以匹配排除ARC之类的选项,因此我不确定哪种特定选项更正了错误。我停止使用这种方法,因为它带来了太多的痛苦,在接下来的几周内可能会回到这个问题,并可能会发布我的结果。谢谢。不,对不起,我已经放弃了这个场景,我将.framework嵌入到了我的.framework中。@GeorgeTaskos您是如何在您的框架中导入PLCrashReporter框架的?我尝试了类似的方法,但是我的框架的用户仍然需要将PLCrashReporter框架与我的框架一起导入。。。