当我启动应用程序时,它会注册推送通知,并根据配置文件生成一个不同的推送令牌。
由于AdHoc和AppStore配置文件都连接到同一台服务器,因此我必须以某种方式区分它是什么类型的令牌,以便服务器可以连接到正确的苹果服务器。 (沙箱/生产)
如何实现?
答案 0 :(得分:1)
我认为实现这一目标的最佳方法是在将令牌发送到服务器时进行开发/生产区分,并让服务器在数据库中注释令牌类型。
肯定你有一些API调用你的服务器传入令牌。在该调用中,也传入令牌类型。例如:
{ "token" : "abcd....", "type" : "development" }
要在构建时实际区分,您可以使用预处理程序指令来检测它是否是调试版本,发布版本或App Store版本。
检查是否启用调试很容易,但为了区分它的AdHoc或App Store,请考虑创建用户定义的变量。为此,请克隆Release
方案并创建一个名为App Store
的方案。然后在Build Settings
中,转到用户定义的变量并创建一个名为APP_STORE
的变量,但仅适用于App Store
方案。当您发布到商店时,请确保在存档时使用该方案而不是Release
进行构建。
然后,检查传入API的类型就像这样简单:
NSString *type = nil;
#ifdef DEBUG
type = @"debug";
#elseif APP_STORE
type = @"app_store";
#else
type = @"release";
#endif