使用 NSURL sendSynchronousRequest 并且在 iOS 上使用 Adhoc 构建没有来自服务器的响应
Posted
技术标签:
【中文标题】使用 NSURL sendSynchronousRequest 并且在 iOS 上使用 Adhoc 构建没有来自服务器的响应【英文标题】:Using NSURL sendSynchronousRequest and having no response from the server using Adhoc build on iOS 【发布时间】:2014-11-10 15:03:06 【问题描述】:所以我有一个应用程序可以向我的远程服务器发送一个同步请求,并且从 xcode 运行它一切正常。问题是当我归档应用程序并将其发送到 TestFlight 时,测试人员没有收到任何响应,发出相同的请求。我正在使用 xcode 的“设备”窗口来查看具有 Adhoc 构建的设备内的日志,它给了我一个来自服务器的空对象。我还从浏览器的 Web 客户端发出请求,以证明服务器上没有错误。代码如下:
-(NSDictionary *)postData:(NSString *)data toUrl:(NSString *)url
if( nil == url || nil == data ) return nil;
NSString *fullUrl = [NSString stringWithFormat:@"%@%@", [self baseUrl], url];
NSURL * serviceUrl = [NSURL URLWithString:fullUrl];
NSMutableData *dados = [NSMutableData data];
[dados appendData: [data dataUsingEncoding: NSUTF8StringEncoding]];
NSMutableURLRequest * serviceRequest = [NSMutableURLRequest requestWithURL:serviceUrl];
[serviceRequest setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-type"];
[serviceRequest setHTTPMethod:@"POST"];
[serviceRequest setHTTPBody:dados];
NSHTTPURLResponse * serviceResponse;
NSError * serviceError;
NSData *dataResponse = [NSURLConnection sendSynchronousRequest:serviceRequest
returningResponse:&serviceResponse
error:&serviceError];
NSString *status = [self statusFamily:serviceResponse.statusCode];
NSDictionary *dataFromResponse = [[QMParser sharedParser] dataToDictionary:dataResponse];
return [NSDictionary dictionaryWithObjectsAndKeys:serviceResponse, @"response",
status, @"status",
dataFromResponse, @"data", nil];
【问题讨论】:
你在哪里使用返回的字典?? 在另一种方法中,即发出请求的方法。 【参考方案1】:由于配置文件,我遇到了类似的问题。我通过在 Xcode 中自动设置配置文件解决了这个问题(转到项目设置 -> 构建设置 -> 代码签名)。
我认为 TestFlight 需要新的 AdHoc 配置文件。在此修复之前,当应用发出通用 http 请求时,未包含在 AdHoc 配置文件中的每个设备中的应用都会崩溃。
如果这不起作用,请尝试删除所有 prov 配置文件并让 xcode 重新创建它们。
【讨论】:
以上是关于使用 NSURL sendSynchronousRequest 并且在 iOS 上使用 Adhoc 构建没有来自服务器的响应的主要内容,如果未能解决你的问题,请参考以下文章
出现错误 - (BOOL)copyItemAtURL:(NSURL *)srcURL toURL:(NSURL *)dstURL 错误:(NSError **)error