2014-01-28 1 views
0

Я должен был создать и архивировать мое приложение с Prod_URL и Stage_URL для нашей тестовой команды. теперь я использую файл Constant.h и есть код, похожий;Назначить статическую константу во время сборки ios xcode

//for stage 
#define SERVICE_URL @"myStageUrl.com" 
/* 
//for prod 
#define SERVICE_URL @"myProdUrl.com" 
*/ 

И я всегда меняю строки комментариев, чтобы иметь возможность создавать две разные версии моего приложения.

Итак, теперь я хочу сделать это автоматически.

Я создаю две цели, такие как MyAppStage и MyAppProd. И я думаю, что я должен написать Run Script для этого, чтобы переключаться между этими двумя линиями #define. Но я не знаю, как писать сценарий.

Или есть ли лучший способ для этой ситуации?

Thx,

ответ

4

Если у вас есть две отдельные цели, вы можете поместить эти определяет в свойствах проекта его себе. Для этого перейдите к свойствам вашего проекта. Нажмите на цель, которую вы хотите отредактировать, перейдите на вкладку «Настройки сборки» и выполните поиск макросов препроцессора. Определите все, что вы хотите там, и оно будет видимым для каждого класса в этой цели.

Другой вариант - использовать те же настройки сборки макросов препроцессора и установить макрос для STAGE. то в вашем Constant.h вы можете иметь что-то вроде:

//for stage 
#ifdef STAGE 
#define SERVICE_URL @"myStageUrl.com" 
#else 
//for prod 
#define SERVICE_URL @"myProdUrl.com" 
#endif 
+0

большое спасибо – serhats

2

В вашей цели для постановки, добавить макрос препроцессора, что-то вроде STAGING_BUILD будет делать. Не изменяйте производственную цель.

Теперь в вашем коде:

#ifdef STAGING_BUILD 

//for stage 
#define SERVICE_URL @"myStageUrl.com" 

#else 

//for prod 
#define SERVICE_URL @"myProdUrl.com" 

#endif 

только тогда требуемая строка будет составлена ​​в основе на цели, выбранной будет построен.