无法在 Today Extension 上使用 AFNetworking
Posted
技术标签:
【中文标题】无法在 Today Extension 上使用 AFNetworking【英文标题】:Can't use AFNetworking on Today Extension 【发布时间】:2016-01-08 10:08:51 【问题描述】:我正在努力让 AFNetworking 用于我的 Today Extension。
我的应用程序是一个带有 cocoapods (0.39.0) 的 Objective-c 项目,其中我开始将一些东西迁移到 Swift。我成功地让 Swift 与 Objective-c 一起工作,并且我在 Swift 和 Objective-c 代码中都使用了 AFNetworking。
我添加了一个 Today Extension(用 Swift 制作),当我尝试使用使用 AFNetworking 的 Swift 类时,它抱怨找不到“AFHTTPRequestOperationManager”和其他与 AFNetworking 相关的类。
我对 Podfile 尝试了不同的解决方案,目前配置如下:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
def testing_pods
pod 'Google/Analytics', '~> 1.0.0'
pod 'AFNetworking', '~> 2.6'
pod 'XCDYouTubeKit', '~> 2.4.0'
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'FBSDKLoginKit'
pod 'Parse'
pod 'ParseUI'
pod 'ParseFacebookUtilsV4'
pod 'ParseTwitterUtils'
end
target '***' do
testing_pods
end
target '***' do
testing_pods
end
target 'todayExtension' do
pod 'AFNetworking', '~> 2.6'
end
post_install do |installer_representation|
installer_representation.pods_project.targets.each do |target|
puts "=== #target.name"
if target.name == "AFNetworking"
puts "Setting AFNetworking Macro AF_APP_EXTENSIONS so that it doesn't use UIApplication in extension."
target.build_configurations.each do |config|
puts "Setting AF_APP_EXTENSIONS macro in config: #config"
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'AF_APP_EXTENSIONS']
end
end
target.build_configurations.each do |config|
puts "Setting only_active_arch in config: #config"
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
end
end
end
我已经删除了所有的 pod 和工作区并重新创建了它们,但问题还是一样。
有什么建议吗?
谢谢
【问题讨论】:
首先清理构建并尝试制作新的 bridging-header.h 文件 @imjaydeep 谢谢,但这与它有什么关系?我忘了说这个扩展是一个 Swift 扩展,不是 objetive-c,我会把它放在主帖中。 这个链接帮你创建头文件***.com/questions/34627082/… 如果您想通过 AFnetworking 获得 json 响应,此链接的最后一个答案将很有帮助***.com/questions/34669707/… 【参考方案1】:默认情况下cocoapods
正在为 pod 创建静态库,但 swift 不支持静态库。因此,要快速使用cocoapods
,您应该指定使用动态框架。为此包括以下行到您的Podfile
use_frameworks!
欲了解更多信息,请通过
https://blog.cocoapods.org/CocoaPods-0.36/
http://www.raywenderlich.com/97014/use-cocoapods-with-swift
更新
还要注意AFHTTPRequestOperationManager
和其他NSURLConnection
相关类在AFNetworking 3.x
中不可用。
【讨论】:
以上是关于无法在 Today Extension 上使用 AFNetworking的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8 Today Extension:是否可以添加可编辑的文本字段?
Today Widget Extension 中经常出现“无法加载”
Today Widget Extension 动画在 iOS 10 上不起作用