Mar*_*utz 7 ios afnetworking afnetworking-2 swift
我们的iOS应用程序最近被Apple拒绝,因为它无法建立与我们的服务器API的有效连接.我们使用特殊格式的用户代理来注册设备令牌等.如果用户代理不适合我们的sheme,则api会阻止请求.
这一切都很好地在模拟器和真实设备上测试应用程序.用户代理设置正确,api调用有效.
当Apple测试应用程序时,他们拒绝了它,因为应用程序无法连接到api.当我们检查服务器日志文件时,我们注意到,Apple测试人员发出的每个请求都有一个完全不同的用户代理,而不是我们在代码中设置的用户代理.
我们测试应用程序时设置的(正确的)用户代理:
AppName-App/010002 iOS/8.1.2 on Apple iPhone/DeviceToken
(不正确的)用户代理,如我们的日志中所示:
AppName/1.0.0.2 (iPad; iOS 8.1.3; Scale/2.00)
该应用程序使用AFNetworking并将其用户代理设置如下:
ConnectionManager.requestSerializer.setValue(IOSREQUESTHEADER, forHTTPHeaderField: "user-agent")
你有任何想法为什么这不适用于Apple测试应用程序,而它完全没问题吗?
最好的祝福
我尝试使用下面的代码更改我的用户代理
[self.requestSerializer setValue:@"VAL" forHTTPHeaderField:@"user-agent"];
但直到重命名@"user-agent"才有效@"User-Agent"
尝试下一步:
NSString *userAgent = [self.manager.requestSerializer valueForHTTPHeaderField:@"User-Agent"];
userAgent = [userAgent stringByAppendingPathComponent:@"CUSTOM_PART"];
[self.manager.requestSerializer setValue:userAgent forHTTPHeaderField:@"User-Agent"];
Run Code Online (Sandbox Code Playgroud)
这将保存由AFNetworking数据生成的数据,并由您自己附加
日志中显示的用户代理是 AFNetworking 的默认用户代理。这意味着您设置标头的代码未被调用。
也许您的代码是在发布版本中编译出来的?如果您有类似的东西#ifdef DEBUG或NSAssert()在相关的逻辑路径中,则可能会发生这种情况。
如果这还不够,请发布额外的代码。
| 归档时间: |
|
| 查看次数: |
6834 次 |
| 最近记录: |