我使用了與Azat不同的策略,它適用於iOS 7/8和Facebook iOS SDK v3.21。因爲我擁有超過特定環境的Facebook的多個設置,所以我創建了一個通用的Singleton來處理環境配置。以下是具體步驟:
1.應用
轉到您的項目設置,信息標籤創建的配置,併爲每個不同的環境中創建的配置。我個人使用了Development
,Staging
,Release
和Debug
(生產環境的最後兩個)。
2.暴露配置名稱在Info.plist中
在您的應用程序的Info.plist
文件,創建一個名爲Configuration
鍵和值設置爲${CONFIGURATION}
。
3.生成辛格爾頓以處理環境配置
完整的代碼可以在this gist找到,但這裏是它的要點(沒有雙關語意)。您將爲每個配置創建一個附加屬性列表Environments.plist
,其中每個配置的值都是包含所有環境特定設置的字典。接下來,您將構建一個Environment
類,該類將擁有一個單例實例,通過它可以公開這些設置。基本上,您可以從您的應用程序中的任何地方撥打[[Environment sharedInstance] facebookAppId]
,您已導入Environment.h
,我們將在下一步中執行此操作。
4.明確表示選擇Facebook的應用標識和顯示名在應用程序委託
在你AppDelegate.m
的application:didFinishLaunchingWithOptions
方法,第一個行應改爲:
[FBSettings setDefaultAppID:[[Environment sharedInstance] facebookAppId]];
[FBSettings setDefaultDisplayName:[[Environment sharedInstance] facebookDisplayName]];
5.添加Facebook網址方案Info.plist
在您的Info.plist
,您需要添加URL您爲所有環境使用的每個Facebook應用程序的方案。請參閱here說明,但不是URL Schemes
下的1項,而是針對每種環境都有1項。
6.選擇配置方案
要使用特定的配置中運行,修改您的方案(⌘+<
快捷鍵在Mac)並選擇配置。爲了讓每次運行時都無需編輯,我爲每個環境創建了一個方案,併爲運行,測試,配置文件和存檔選擇了適當的配置。
這是最後一次在iOS 8和Facebook的iOS SDK v3.21測試,但我希望這裏的一般策略可以應用到iOS 9和Facebook的iOS版SDK的更新版本。希望這可以幫助!
你解決了這個問題嗎? – Esqarrouth
@Esq我最近面臨同樣的問題,請檢查我的回答下面 – Azat
@Esq我剛剛發佈我的答案使用與Azat不同的策略。請檢查下面,對於延遲抱歉,希望它有幫助。 – hunteros