Ошибки ТОЛЬКО при выполнении Продукта --› Архив с семантической ошибкой

Если я скомпилирую его на устройство или симулятор, он будет работать хорошо. Но когда я делаю «Продукт» -> «Архив», возникают ошибки:

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

Цените ваш вклад.

Спасибо


person user1509593    schedule 19.03.2013    source источник
comment
Я предполагаю, что вы дважды проверили конфигурацию сборки, чтобы убедиться, что PROD правильно определен?   -  person Ryan Poolos    schedule 19.03.2013
comment
Мои макросы препроцессора настроек сборки в настоящее время установлены как QA=1 DEBUG=1.   -  person user1509593    schedule 19.03.2013


Ответы (1)


Убедитесь, что макросы препроцессора настроек сборки включают 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
person Ryan Poolos    schedule 19.03.2013
comment
Хорошо, я должен иметь как QA, так и prod - person user1509593; 20.03.2013
comment
Ага, QA там же, где DEBUG и PROD в разделе релиза. - person Ryan Poolos; 20.03.2013
comment
Или вы можете покончить с PROD и заменить #ifdef на #else. - person Ryan Poolos; 20.03.2013
comment
Ты прав. Я добрался до #else, и ошибка исчезла. Еще один вопрос, прежде чем я приму ответ. Если я оставлю все как есть, где раздел релиза? - person user1509593; 20.03.2013
comment
Потрясающий. Я добавил немного кода в свой ответ, чтобы убедиться, что мы на одной странице. - person Ryan Poolos; 20.03.2013