2013-03-19 34 views
2

如果我將它編譯到設備或模擬器,它會很好地工作。但是,當我做產品 - >存檔,它的錯誤:只有在產品 - >存檔語義問題時纔會出現錯誤

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

回答

0

確保您的構建設置預處理器宏包括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

相關問題