只有在产品 - >存档语义问题时才会出现错误

问题描述:

如果我将它编译到设备或模拟器,它会很好地工作。但是,当我做产品 - >存档,它的错误:只有在产品 - >存档语义问题时才会出现错误

Login.m 
! Semantic Issue 
    Use of undeclared identifier 'kLogin_URL' 

但这个工作在模拟器和设备

我使用的Xcode版本4.6版(4H127)。这是常量文件。

#ifndef MyMobileApp_AllUrls_h 
    #define MyMobileApp_AllUrls_h 

    #ifdef QA 
     #define kLogin_URL    @"https://b2bgateway.qa.mycompany.com/authenticate" 
     #define ktran_URL    @"https://b2bgateway.qa.mycompany.com/.../lookup" 

     #define LOGIN_REQUEST_TIMEOUT 15.0f 
     #define TRAN_REQ_TIMEOUT  60.0f 
    #endif 

    #ifdef PROD 
     #define kLogin_URL    @"https://b2bgateway.mycompany.com/authenticate" 
     #define ktran_URL    @"https://b2bgateway.mycompany.com/.../lookup" 

     #define LOGIN_REQUEST_TIMEOUT 15.0f 
     #define TRAN_REQ_TIMEOUT  30.0f 
    #endif 
#endif 

-prefix.pch的内容是

#import <Availability.h> 

#ifndef __IPHONE_5_0 
#warning "This project uses features only available in iOS SDK 5.0 and later." 
#endif 

#ifdef __OBJC__ 
    #import <UIKit/UIKit.h> 
    #import <Foundation/Foundation.h> 
    #import "AllUrls.h" 
#endif 

感谢您的输入。

感谢

+0

我假设你已经检查过你的构建配置,以确保PROD被正确定义? – 2013-03-19 19:57:18

+0

我的编译设置预处理器宏当前设置为QA = 1 DEBUG = 1。 – user1509593 2013-03-19 19:59:31

+0

这就是问题所在。 – 2013-03-19 20:03:28

确保您的构建设置预处理器宏包括PROD下您的版本配置。

根据您的评论,只是想确保这是你做的。

#ifdef QA 
    #define kLogin_URL    @"https://b2bgateway.qa.mycompany.com/authenticate" 
    #define ktran_URL    @"https://b2bgateway.qa.mycompany.com/.../lookup" 

    #define LOGIN_REQUEST_TIMEOUT 15.0f 
    #define TRAN_REQ_TIMEOUT  60.0f 
#else 
    #define kLogin_URL    @"https://b2bgateway.mycompany.com/authenticate" 
    #define ktran_URL    @"https://b2bgateway.mycompany.com/.../lookup" 

    #define LOGIN_REQUEST_TIMEOUT 15.0f 
    #define TRAN_REQ_TIMEOUT  30.0f 
#endif 
+0

好的,我是否应该同时拥有QA和产品 – user1509593 2013-03-19 20:06:26

+0

是的,'QA'与释放部分中的'DEBUG'和'PROD'位置相同。 – 2013-03-19 20:07:52

+0

或者你可以不用'PROD'并将你的'#ifdef'改成'#else' – 2013-03-19 20:08:21