我需要在我的應用程序中實現自定義日誌記錄。檢測AppStore安裝iOS應用程序
爲此,我需要檢測應用程序的當前版本是否已從應用商店安裝,或者正在從xcode運行還是TestFlight版本。
根據安裝源,應用中有不同的東西嗎?
我不想在開發環境中有不同的東西。
我需要在我的應用程序中實現自定義日誌記錄。檢測AppStore安裝iOS應用程序
爲此,我需要檢測應用程序的當前版本是否已從應用商店安裝,或者正在從xcode運行還是TestFlight版本。
根據安裝源,應用中有不同的東西嗎?
我不想在開發環境中有不同的東西。
您可以通過有從應用程序包的embedded.mobileprovision文件讀取獲得一部分的方式:
NSString *provisionPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"];
如果不存在,你是在應用商店中構建。
如果它存在,你需要弄清楚你的調試和臨時調配譜之間存在一些差異,並尋找到確定建立你英寸
因爲XCode的自動建立與應用調試配置中的「DEBUG」標誌,在Release中沒有設置(默認用於AdHoc構建),最好禁用應用商店構建中的日誌記錄,並根據DEBUG宏標誌確定日誌級別。
您可以使用構建配置來定義一個宏,讓您知道您已經爲testflight構建過。
例如,我們有調試版本設置的一個宏USE_TESTFLIGHT,並在我們的代碼,我們做到:
#ifdef USE_TESTFLIGHT
//do something test-flight specific
[TestFlight takeOff:kTestFlightAppToken];
#endif
您可以創建取決於你如何在編譯設置不同的宏新建CONFIGS /分發應用程序,並使用ifdef來執行基於這些任務的不同任務。
雖然有效,但不同的構建配置不符合「我不想在開發環境中有不同的東西」。 –
同意。這個建議雖然對某些發展需求有用,但並不能回答問題。 –
這看起來不錯,你認爲我可以找到一種方法來測試它,然後我釋放應用程序?例如使用_Release Scheme_構建和運行,以確保它在發佈時可用。 – bago
所有您編譯,發佈或特設的應用程序將始終包含embedded.mobileprovision。這只是最後一個缺少這個文件的App Store版本。您可以通過從您的設備下載任何應用商店應用程序,並探索應用程序包來驗證它不存在。請注意,我沒有提出這種技術,HockeyApp得到充分的信任,因爲找到了這個(或至少這是我從中瞭解到)。 –
不錯的提示:) +1 Tks – TonyMkenu