我們有一個應用程序,我們希望上傳到具有不同應用程序標識的網站,這取決於它所在的環境。在項目中,我們有一個發佈預處理器宏集到MY_CONFIGURATION = $(MY_CONFIGURATION),我們在用戶定義的設置中將默認值設置爲3。在我們的定義中,我們根據宏定義分配了應用程序id字符串值,如果值未定義,我們也有回退值,使用值1.問題是當我們構建Jenkins時,腳本賦值(2 )被用戶定義設置(3)中的默認值覆蓋。從iOS中的shell腳本中定義預處理器宏值
下面是我們使用的build.sh文件
xcodebuild -scheme ${SCHEME} -sdk ${SDK} -destination generic/platform=iOS CODE_SIGN_IDENTITY="${PROFILE}" MY_CONFIGURATION="${BUILD_ENV}" build
我知道正確的值被放置的行,從詹金斯的控制檯輸出顯示以下
10:58:46 + xcodebuild -scheme MGO -sdk iphoneos9.0 -destination generic/platform=iOS 'CODE_SIGN_IDENTITY=X' MY_CONFIGURATION=2 build
10:58:47 Build settings from command line:
10:58:47 CODE_SIGN_IDENTITY = X
10:58:47 MY_CONFIGURATION = 2
10:58:47 SDKROOT = iphoneos9.0
構建上傳到正確的環境,在基於值集設置應用程序ID的代碼中構建#define將顯示默認值set(3)而不是腳本值set(2)。任何提示或幫助將不勝感激。
注:我也試過
xcodebuild -scheme ${SCHEME} -sdk ${SDK} -destination generic/platform=iOS CODE_SIGN_IDENTITY="${PROFILE}" OTHER_CFLAGS="-DMY_CONFIGURATION="${BUILD_ENV}"" build