1. 程式人生 > >iOS區分不同版本URL schema

iOS區分不同版本URL schema

        iOS專案開發中,同一個APP,在打包時,通常有三種版本:mobile版本,inhouse版本,App Store版本。前者用於程式設計師debug,inhouse用於測試同學、產品同學和公司其他同學的安裝,最後的App Store則是釋出版本。三個APP只是bundleID不同,證書不同。功能是完全一致。同一個裝置上可安裝三個APP,有些情況會給開發除錯造成困擾,比如:APP帶有第三方登入功能,用mobile版本APP登入,調起微信,授權後返回。由於mobile,inhouse,App Store三個APP都可相應URL schema。調起那個就要看系統的心情了。很可能不是你想要的mobile版。
        為了解決上述問題。可以針對不同的版本響應不同的URL schema(微信可以申請多個APPkey,正好一種版本,分配一個


        在APP的info.plist中可以設定URL schema(在工程檔案視覺化配置中,同樣可以設定)。URL schema不再寫死,而是寫成變數(XCCONFIG_URL_SCHEMA)如下圖。


(注意看Item1的值,是個變數,不再寫死)

        在xcconfig中修改這個變數,如下程式碼:

// MOBILE || INHOUSE || APPSTORE 
//在配置好自動打包指令碼,該處會自動修改。
XCCONFIG_ACCOUNT = MOBILE
//防止安裝多個app,url schema亂跳問題。僅僅對微信方式有效。微信可申請多個APP key
XCCONFIG_URL_SCHEMA_MOBILE = wxaaaf9a3
XCCONFIG_URL_SCHEMA_INHOUSE = wxe922e194
XCCONFIG_URL_SCHEMA_APPSTORE = wx3f994a5
//拼接起來
XCCONFIG_URL_SCHEMA =$(XCCONFIG_URL_SCHEMA_$(XCCONFIG_ACCOUNT))
        隨著XCCONFIG_ACCOUNT的改變,URL schema也會變。最終就是