使用Parse的iOS SDK pod子目录

问题描述 投票:0回答:1

我正在尝试将新的(?)CocoaPods子规用于Parse的FacebookUtils框架。

pod的自述文件说:

如果您想使用Facebook或Twitter工具或ParseUI,您现在可以利用Cocoapods的子规格'

ruby pod 'Parse/FacebookUtils' pod 'Parse/TwitterUtils' pod 'Parse/UI'

请注意,在这种情况下,Parse框架将包含所有标头和类,因此您只需使用:

swift import Parse

objc @import Parse;

导入主要的Parse类就是这样的。但是,Xcode编译器无法识别子指定的FacebookUtils和UI!

它只是说“PFFacebookUtils”是一个未声明的标识符。

注意:我在podfile的顶部使用use_frameworks!,这导致我的“Link Binary With Libraries”列表中的Pods_PROJECT.framework。

我有点迷失在这里,真的很感激一些帮助。

更新:

我发现问题似乎是iMessage扩展的podfile部分:

target 'MyApp' do
  pod 'Parse/UI'
  pod 'Parse/FacebookUtils'
end

target 'iMessage App' do
    pod 'Parse/Core'
end

不知何故,这会导致编译成功,但启动时崩溃并出现错误:

dyld:未找到符号:_OBJC_CLASS _ $ _ PFFacebookUtils 参考自:... / myapp.app/myapp 预期在:... / MyApp / Frameworks / Parse.framework / Parse

将FacebookUtils subspec添加到iMessage扩展时,崩溃消失了,一切都很好......除了FacebookUtils包含扩展中不允许的引用(UIApplication)。 >:U

ios cocoapods parse-server
1个回答
1
投票

崩溃是由CocoaPods脚本Pods-YourProject-frameworks.sh安装Parse-Core-FacebookUtils-TwitterUtils/Parse.frameworkParse-Core/Parse.framework到完全相同的位置引起的,有效地覆盖了前者

install_framework "${BUILT_PRODUCTS_DIR}/Parse-Core-FacebookUtils-TwitterUtils/Parse.framework"
install_framework "${BUILT_PRODUCTS_DIR}/Parse-Core/Parse.framework"

我通过在CocoaPods运行脚本之前添加以下运行脚本来解决它

/usr/bin/sed -i '' '/Parse-Core\/Parse.framework/d' "${PODS_ROOT}/Target Support Files/Pods-YourProjectName/Pods-YourProjectName-frameworks.sh"

这将从CocoaPods脚本中删除违规行并解决崩溃问题。

注意:删除-Core部分,如果您使用pod 'Parse'而不是pod 'Parse/Core'

© www.soinside.com 2019 - 2024. All rights reserved.