Tôi đã thiết lập thông báo đẩy trong ứng dụng của mình. Tôi đang cố gắng xác định liệu mã thông báo thiết bị tôi đã nhận được từ APNS trong phương thức application:didRegisterForRemoteNotificationsWithDeviceToken:
có đến từ môi trường sandbox hoặc môi trường phát triển hay không. Nếu tôi có thể phân biệt môi trường nào đã khởi tạo mã thông báo, tôi sẽ có thể thông báo cho máy chủ của tôi biết môi trường nào sẽ gửi thông báo đẩy.Xác định xem ứng dụng có đang kết nối với hộp cát hoặc môi trường sản xuất APNS hay không
Tôi đã thử sử dụng macro DEBUG
để xác định điều này, nhưng tôi đã thấy một số hành vi lạ với điều này và không tin tưởng nó là chính xác 100%.
#ifdef DEBUG
BOOL isProd = YES;
#else
BOOL isProd = NO;
#endif
Lý tưởng nhất, tôi muốn có thể kiểm tra aps-environment
hưởng (giá trị là phát triển hoặc sản xuất) trong mã, nhưng tôi không chắc chắn nếu điều này thậm chí còn có thể.
Cách thích hợp để xác định xem ứng dụng của bạn có đang kết nối với hộp cát APNS hoặc môi trường sản xuất không? Tôi giả định rằng máy chủ cần biết điều này ngay từ đầu. Xin vui lòng sửa tôi nếu đây là giả định là không chính xác.
Đã chỉnh sửa: Tài liệu của Apple trên Provider Communication with APNS nêu chi tiết sự khác biệt giữa giao tiếp với hộp cát và sản xuất. Tuy nhiên, tài liệu không cung cấp thông tin về cách nhất quán với việc đăng ký mã thông báo (từ ứng dụng khách iOS) và liên lạc với máy chủ.
Thư viện hơi lỗi thời, nhưng nó hoạt động tốt để nắm bắt 'aps- môi trường' (thay thế '" get-task-allow "' với '" aps-environment "' trong ví dụ @tcurdt, và không so sánh nó như là một bool) –
@AlbertBori bạn có thể vui lòng gửi một vấn đề về cái gì lỗi thời? – tcurdt
Điều chắc chắn! Ở đây bạn đi: https://github.com/tcurdt/TCMobileProvision/issues/1 –