我在我的應用程序中設置了推送通知。我正試圖確定我從方法中的APNS收到的設備令牌是否來自沙箱或開發環境。如果我可以區分哪個環境初始化令牌,我可以告訴服務器哪個環境發送推送通知。確定應用程序是否正在與APNS沙箱或生產環境進行通信
我試過使用DEBUG
宏來確定這一點,但我已經看到了一些奇怪的行爲,並且不相信它是100%正確的。
#ifdef DEBUG
BOOL isProd = YES;
#else
BOOL isProd = NO;
#endif
理想情況下,我可以檢查aps-environment
資格(價值開發或生產)的代碼,但我不知道這甚至有可能。
什麼是確定您的應用程序是否與APNS沙箱或生產環境進行通信的正確方法?我假設服務器首先需要知道這一點。如果這是假設是不正確的,請糾正我。
編輯:關於Provider Communication with APNS的Apple文檔詳細介紹了與沙箱和生產進行通信的區別。但是,文檔不提供有關如何與註冊令牌(從iOS客戶端應用程序)一致並與服務器通信的信息。如果你已經是匹配的構建配置,同時確定您的構建配置可能會工作,也可能是假的 -
該庫有點過時了,但它很好地抓住了'aps-環境'(在@tcurdt的例子中用''aps-environment''替換'get-task-allow''',並且不要把它比作bool) – 2015-02-19 22:25:41
@AlbertBori你能否提出一個關於什麼是過時? – tcurdt 2015-02-20 00:14:03
當然可以!在這裏你去:https://github.com/tcurdt/TCMobileProvision/issues/1 – 2015-02-20 17:03:41