不确定是什么问题..发现91个符号为armv7重复
我是一个针对iOS 7.1的Swift项目.
这两个框架都是最新版本.
尝试清理项目并删除派生数据.但无济于事.
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._URL in:
/Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
/Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._appStoreId in:
/Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
/Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._appName in:
/Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
/Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
Run Code Online (Sandbox Code Playgroud) 我下载了新的iOS Parse API(1.6.4)并尝试构建我的项目.当我这样做时,我收到此错误:
Undefined symbols for architecture arm64" "_BFTaskMultipleExceptionsException", referenced from:
___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o)
___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
截图:

我知道之前已经多次报告过多个dex问题,但是在我的情况下似乎没有一个解决方案可行.
安慰:
Unable to execute dex: Multiple dex files define Lbolts/AggregateException;
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lbolts/AggregateException;
Run Code Online (Sandbox Code Playgroud)
其中一个流行的解决方案是从buildpath中取消标记"Android私有库"容器.我不能这样做,因为我需要的容器中还有一些库.
另一个解决方案是取消标记以.jar形式显式添加的任何重复库.我没有这样的图书馆.
我的重复库是:android-support-v7-appcompat.jar
我在这两个容器中有它(直接从sdk文件夹引用):
1.)Android私人图书馆
2.)Android依赖项
问题是我不能完全解开这两个容器中的任何一个,因为它们都包含其他必要的库.但我也无法从任何容器中删除这个重复的.jar文件.
编辑: NB当我将android-support-v7-appcompat library_project添加到我的项目时,它进入两个容器.必须有某种方式,只进入一个.
任何人都可以帮助我如何做到这一点?

java android android-appcompat android-support-library bolts-framework
我正在使用Parse 1.7.1(最新版本),Swift运行xcode 6.3项目.我在我的构建中提出了这个问题.我的自动完成和打字很慢,我觉得它可能有关系.我正在测试项目,它只在Bolts模块在项目中时才会发生(这是Parse所需的).
嗨有一个使用cocoapods的projets(包括app扩展).(使用Parse,Bolts等库).
所有工作都很好(使用螺栓1.1.5库),但是,当我运行pod更新(螺栓1.2.0)时,我现在得到一些错误:
"/ Volumes/project 2/Pods/Bolts/Bolts/iOS/BFAppLinkNavigation.m:100:29:'sharedApplication'不可用:iOS上不可用(App Extension) - 在适当情况下使用基于视图控制器的解决方案."
任何想法如何解决这个问题?
我一直收到这个错误,不知道如何修复.我已经被困了好几天了.我正在使用Parse来构建这个应用程序并尝试添加它与pod.这是我得到的错误:
Ld /Users/gerbonilla/Library/Developer/Xcode/DerivedData/PixelFrontEnd-fuxewjczxiwihfairfbnkgdzbktq/Build/Intermediates/PixelFrontEnd.build/Debug-iphonesimulator/PixelFrontEnd.build/Objects-normal/x86_64/PixelFrontEnd normal x86_64
cd /Users/gerbonilla/Xcode/FrontEnd/PixelFrontEnd/PixelFrontEnd
export IPHONEOS_DEPLOYMENT_TARGET=8.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.3.sdk -L/Users/gerbonilla/Library/Developer/Xcode/DerivedData/PixelFrontEnd-fuxewjczxiwihfairfbnkgdzbktq/Build/Products/Debug-iphonesimulator -L/Users/gerbonilla/Xcode/FrontEnd/PixelFrontEnd/PixelFrontEnd/Pods/Parse -F/Users/gerbonilla/Library/Developer/Xcode/DerivedData/PixelFrontEnd-fuxewjczxiwihfairfbnkgdzbktq/Build/Products/Debug-iphonesimulator -F/Users/gerbonilla/Xcode/FrontEnd/PixelFrontEnd/PixelFrontEnd -filelist /Users/gerbonilla/Library/Developer/Xcode/DerivedData/PixelFrontEnd-fuxewjczxiwihfairfbnkgdzbktq/Build/Intermediates/PixelFrontEnd.build/Debug-iphonesimulator/PixelFrontEnd.build/Objects-normal/x86_64/PixelFrontEnd.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -ObjC -undefined dynamic_lookup -lBolts -lParse -lParseLib -lParseUI -lsqlite3 -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -framework UIKit -weak_framework Accounts -weak_framework Social -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -Xlinker -add_ast_path -Xlinker /Users/gerbonilla/Library/Developer/Xcode/DerivedData/PixelFrontEnd-fuxewjczxiwihfairfbnkgdzbktq/Build/Intermediates/PixelFrontEnd.build/Debug-iphonesimulator/PixelFrontEnd.build/Objects-normal/x86_64/PixelFrontEnd.swiftmodule -mios-simulator-version-min=8.1 -lsqlite3 -lz -framework SystemConfiguration -framework StoreKit -framework Security -framework QuartzCore -framework …Run Code Online (Sandbox Code Playgroud) 刚才我看到Facebook发布关于IOS 螺栓框架的这一消息.
我可以将其视为主要概念:
Bolts中的第一个组件是"任务",它使复杂异步代码的组织更易于管理
但我没有得到这个.我很困惑Bolts framework.如何使用它(whether its related to web service or to JSON response parsing).
他们提供ParseObject了解析SDK的示例但我不知道它们并没有提供Xcode项目的任何示例.
Facebook 就此提供了解释.但我无法弄清楚如何与我的项目集成.
他们提供的代码非常令人困惑:
[[object saveAsync:obj] continueWithBlock:^id(BFTask *task) {
if (task.isCancelled) {
// the save was cancelled.
} else if (task.error) {
// the save failed.
} else {
// the object was saved successfully.
SaveResult *saveResult = task.result;
}
return nil;
}];
Run Code Online (Sandbox Code Playgroud)
我们可以在这里下载bolt-framework .有人可以解释一下这个吗?
更新: 在这里我收到了一些关于螺栓新问题的答案.
示例: 假设您要加载AssertLibrary中的所有图像,并在加载时将所有图像的大小调整为标准大小,因此如果使用主线程,则会触发.在这个地方,如果你采用异步操作方式,如何使用BFTask呢?另一个例子.有一段时间,你试图用异步操作并行调用10个webservice,你怎么能在BFTask上使用GCD?
我Parse.com用作我的应用程序的后端.他们还提供了一个本地数据库来存储信息,作为替代SQLite.
我想通过解析将电话号码添加到我的数据库中.在添加数字之前,我需要检查数据中是否已存在该数字,因此我findInBackground()用来获取与我想要添加的数字相匹配的数字列表.如果列表为空,则我想要添加的数字在数据库中不存在.
执行此操作的方法是:
public void putPerson(final String name, final String phoneNumber, final boolean isFav) {
// Verify if there is any person with the same phone number
ParseQuery<ParseObject> query = ParseQuery.getQuery(ParseClass.PERSON_CLASS);
query.whereEqualTo(ParseKey.PERSON_PHONE_NUMBER_KEY, phoneNumber);
query.fromLocalDatastore();
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> personList,
ParseException e) {
if (e == null) {
if (personList.isEmpty()) {
// If there is not any person with the same phone number add person
ParseObject person = new ParseObject(ParseClass.PERSON_CLASS);
person.put(ParseKey.PERSON_NAME_KEY, name);
person.put(ParseKey.PERSON_PHONE_NUMBER_KEY, …Run Code Online (Sandbox Code Playgroud) BFTask我一直很好,但我有一个抱怨:我还没有看到一个关于你应该如何cancel完成任务的实例.关于这个主题的整个文档可以在他们的GitHub页面上找到,其中包含一个简短的部分,其中包括我关心的部分:如何取消任务.
// Somewhere else.
MYCancellationToken *cancellationToken = [[MYCancellationToken alloc] init];
[obj doSomethingComplicatedAsync:cancellationToken];
// When you get bored...
[cancellationToken cancel];
Run Code Online (Sandbox Code Playgroud)
他们的代码片段后跟:
注意:取消令牌实现应该是线程安全的.
我想知道以下内容:
cancel在BFTask界面本身提供方法?他们有一个属性,表示任务是否被取消,但没有办法取消它.cancellationToken(s)在BFTask自己身上加入财产?cancel任务本身强烈耦合?或者是一般的实现成为可能作为的情况cancelAllOperations的NSOperationQueue?我已经对此进行了研究,我知道RXJava正在使用可观察模式,而Bolts依赖于执行程序.什么框架对处理需要按顺序完成的任务有好处?
我听说过使用singleExecutors,队列,链接asynctasks和这两个框架.我见过更多人使用螺栓和rxjava,但我很想知道两者之间的人们经历.
谢谢!