目前,我正在将我的iOS应用程序从api.parse.com迁移到我自己的服务器。在我关注的指南中,我需要使用本地解析服务器测试应用程序的功能。虽然,设置自定义Parse Server需要使用最新的Parse-SDK,但我运行的是旧版本。我试图通过CocoaPods更新我的框架。我的Podfile如下:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'MYAPP' do
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for MYAPP
pod 'ParseFacebookUtilsV4'
pod 'Parse'
#pod 'ParseTwitterUtils'
pod 'ParseCrashReporting'
pod 'ParseUI'
target 'MYAPPTests' do
inherit! :search_paths
# Pods for testing
end
end
当我尝试运行该应用时,出现以下错误:
duplicate symbol _PFConfigParametersRESTKey in:
/Users/ME/Library/Developer/Xcode/DerivedData/MYAPP/Build/Products/Debug-iphoneos/Parse/libParse.a(PFConfig.o)
/Users/ME/Library/Developer/Xcode/DerivedData/MYAPP/Build/Products/Debug-iphoneos/Parse/libParse.a(PFConfigController.o)
duplicate symbol _PFConfigParametersRESTKey in:
/Users/ME/Library/Developer/Xcode/DerivedData/MYAPP/Build/Products/Debug-iphoneos/Parse/libParse.a(PFConfig.o)
/Users/ME/Library/Developer/Xcode/DerivedData/MYAPP/Build/Products/Debug-iphoneos/Parse/libParse.a(PFCurrentConfigController.o)
ld: 2 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我一直在网上寻找帮助,但似乎没有人遇到这个问题。我认为我的情况是独一无二的,因为我还没有看到有人在同一个符号上有两个重复错误,指向同一个存档(libParse.a),一个共享文件(PFConfig.o)和两个不同的文件(PFConfigController.o)和PFCurrentConfigController.o)。我已经实施了各种解决方案,这些解决方案通常可以解决这个问题,并且重复符号"错误,但我没有取得任何成功。
我做过的事情:
确保已从项目中删除所有这些框架的手动添加版本。
通过Finder / Command Line / grep / find多次上下扫描项目目录,找不到任何重复的框架。
确保我没有添加任何" import * .m"文件不小心。
检查Frameworks文件夹中的红色文件/重复项以及"链接库和库#34; "构建阶段。"
检查了我的框架,标题和其他链接器路径,它们似乎没问题。我的"其他链接标志"包含" $(继承)"和-force_load呼叫第三方" .a"用于分析的文件。
清除〜/ Library / Developer / Xcode / DerivedData以及删除的Pods /并运行" pod install"多次。
我接着调查了Parse文件中的问题。定义PFConfigParametersRESTKey的唯一位置是here和here。这似乎没问题,因为其中一个前面有extern关键字(reference here)。我试着通过使这个变量不是静态的,并尝试重命名其中一个来尝试搞乱源文件。没有任何效果。我无法弄清楚从哪里来解决这个问题..如果有人能在这里解决一些问题,我将非常感激!谢谢。
答案 0 :(得分:0)
我的问题的解决方案是从链接器配置中删除-ObjC
标志。出于某种原因,-ObjC
不是构建设置的链接部分中的条目之一。我找到它的方法是转到Pods/Pods-MYAPP.debug.xcconfig
,然后从-ObjC
变量中手动删除OTHER_LDFLAGS
标记。