使用的Xcode 7.2(7C68),OS X 10.11.2(15C50)Xcode的構建配置在工作區多個項目
TL;博士有了相同的Xcode工作區多個項目,爲什麼我的用戶定義的構建構建配置的設置似乎不起作用?我在方案中正確設置了它們,但是在模擬器上運行時,值是正確的;當在設備上運行時,這些值是錯誤的。
你好。我正在嘗試利用Xcode構建配置(.xcconfig文件)根據環境自定義我們的應用程序的行爲。這樣我們就可以根據方案的構建配置自動在集成和生產URL之間切換。但是,我很難讓它正常工作。我認爲我的工作區佈局可能會受到責難。這裏是佈局/結構:
- 的Xcode工作區
- iOS應用項目(2個目標:應用程序,測試)
- 可可觸摸框架項目(2個目標:框架,測試)
現在
,我有以下.xcconfig文件這些項目的每一個:
Debug.xcconfig
Testing.xcconfig
Release.xcconfig
此外,下面的方案(映射一到一個爲每個項目及其各自的配置):
- 調試
- 測試
- 發佈
對於框架,這些文件包含的信息,我們想自定義基於調試或測試或釋放(例如URL,API令牌/密鑰等)。現在,應用程序和框架都有自己的這些文件的副本。這是因爲Xcode在處理依賴關係或多個項目時,會隱式地嘗試在此場景中使用同名的配置。我想這個問題的一部分是我不知道如何明確地告訴Xcode使用X配置的依賴關係,不是正在設置的配置。
換句話說,我該如何告訴這兩個應用程序使用X配置和框架來使用Y配置?
現在,當我運行模擬器中的應用程序時,我知道該方案使用了正確的info.plist值,因爲URL和日誌設置顯示正確。但是,當我在設備上歸檔或運行時,會使用錯誤的構建配置。我不知道爲什麼會發生這種情況。
的屏幕截圖和代碼說明是如何工作的,現在:
圖3(一些方法的分體):
if let infoDict = NSBundle(identifier: Constants.uniformTypeIdentifier)?.infoDictionary,
let apiKey = infoDict[Configuration.SerializationKeys.pusherAPIKey] as? String {
return apiKey
}
在框架內部,用戶定義的構建設置包含需要爲調試vs發佈而更改的設置與vs無論如何(圖。 1)。 Info.plist文件理想地提取給定方案的變量值(圖2)。然後在代碼中,我從信息plist中檢索值(圖3)。
任何設備在被告知時都會拒絕使用生產值,包括當我在我的方案的運行操作以及存檔操作中手動切換時 - 存檔使用會返回設備上的錯誤生成設置。
對不起,這是漫長的,感謝您的閱讀。