AFNetworking 2.0请求挂起在iOS 9/WatchOS 2中的Today Extension和Watch应用程序中

AFNetworking 2.0请求挂起在iOS 9/WatchOS 2中的Today Extension和Watch应用程序中,ios,objective-c,xcode,afnetworking,afnetworking-2,Ios,Objective C,Xcode,Afnetworking,Afnetworking 2,在使用Xcode 7(GM)和Xcode 7.1(beta 1)构建WatchKit和今天的扩展时,我遇到了一个非常奇怪和令人沮丧的问题。使用AFNetworking 2.0(截至本文发布之日),我从这些扩展中调用以下代码: AFHTTPRequestOperation *op = [manager GET:endpoint parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject)

在使用Xcode 7(GM)和Xcode 7.1(beta 1)构建WatchKit和今天的扩展时,我遇到了一个非常奇怪和令人沮丧的问题。使用AFNetworking 2.0(截至本文发布之日),我从这些扩展中调用以下代码:

AFHTTPRequestOperation *op = [manager GET:endpoint parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

    NSLog(@"Response: %@", responseObject);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    NSLog(@"ERROR: %@", error);
}];
NSLog(@"Called!");
这里的期望是在调用
之后调用两个块中的一个已记录。然而,两人都没有被处决

然而,奇怪的是,如果我拨打以下电话:

[op cancel];
我得到了预期的
失败
块的日志输出。我尝试过的其他方法(关闭计算机上的Internet连接、创建一个无意义的URL等)都无法执行
失败


在这一点上,我不确定我是否一直试图调试到深夜,这是一个错误与Xcode 7.x,或者如果我在某处犯了一个错误。感谢您的帮助

看起来这个问题源于两个不同的原因

问题的根源在于iOS 9新的应用程序传输安全规则。这些规则可以在应用程序的
info.plist
文件中。然而,我在扩展中使用Xcode 7.0(GM)很难正确保存覆盖键,因为它在尝试运行项目时会抛出

步骤1: 在Xcode 7.1 beta 1中,Xcode实际上支持上述键(甚至自动完成),因此我能够将这些键添加到我的WatchKit和今天的扩展名
info.plist
文件中:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict> 

希望这里的一些东西对将来的人有所帮助。这完全是一场噩梦,需要一天半的时间才能明白

看起来这个问题源于两个不同的原因

问题的根源在于iOS 9新的应用程序传输安全规则。这些规则可以在应用程序的
info.plist
文件中。然而,我在扩展中使用Xcode 7.0(GM)很难正确保存覆盖键,因为它在尝试运行项目时会抛出

步骤1: 在Xcode 7.1 beta 1中,Xcode实际上支持上述键(甚至自动完成),因此我能够将这些键添加到我的WatchKit和今天的扩展名
info.plist
文件中:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict> 
希望这里的一些东西对将来的人有所帮助。这完全是一场噩梦,需要一天半的时间才能明白