gpt4 book ai didi

xcode - 无法识别的选择器 +[AFAnalytics sharedAnalytics]?

转载 作者:行者123 更新时间:2023-12-03 22:30:18 30 4
gpt4 key购买 nike

我目前正在为 准备我的应用程序iOS 12 但是每当我点击任何UITextFieldUITextView应用程序崩溃,我得到这个无法识别的选择器错误。

我试过的

  • 他们的代表与文件所有者相关联(是的,我知道 - 旧术语),但不喜欢所有内容并停止在 UIViewController 中引用它但是仍然会收到相同的崩溃和错误消息。
  • 添加了一个全新的UITextView/UITextField但是 - 同样的崩溃错误。
  • 在网上到处搜索,但没有任何有用的东西。
  • 仅在 上崩溃iOS 12 . iOS 11 及更低版本完美运行,没有问题。
  • 应用使用 火力基地 , Crashlytics/织物 以及其他一些使用最新 SDK/API 版本的第三方库。

  • 我发现的最接近的是 AFAnalytics.hAssistantServices.framework 的一部分我在 Xcode 10 Beta 6 和公共(public) Xcode 9 中都找不到?

    老实说,我开始没有想法了,所以任何尝试解决这个问题的帮助都将是一个巨大的帮助。

    我用Objective-C编写。

    完整的堆栈跟踪: http://crashes.to/s/dd22fb06f7b

    更新 - 2018 年 2 月 9 日
    - 奇怪的是,设置 Keyboard TypeE-mail Address在界面生成器中,该字段工作得非常好。将其设置为其他任何内容会使应用程序崩溃。

    更新 - 2018 年 14 月 9 日
    另一个崩溃日志似乎表明错误围绕 [UIDictationConnection analytics] ?

    这对任何人都有意义吗? - 这是来自 Apple 的崩溃报告。
    enter image description here

    更新 - 2018 年 2 月 10 日
    我发现了这个错误信息:
    Class AFAnalytics is implemented in both /Users/ashleyrichards/Library/Developer/CoreSimulator/Devices/C155EF28-3C0B-4AFF-9EF6-0235295A26DC/data/Containers/Bundle/Application/562B100D-F657-424E-8B77-99D0325F6035/Social Dummy.app/Social Dummy (0x10a33d610) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AssistantServices.framework/AssistantServices (0x13654d178). One of the two will be used. Which one is undefined.
    我搜索了我的整个项目,但没有找到任何与 AFAnalytics 相关的类(class).
    作为记录,我不想使用 AFAnalytics .我什至不知道它有什么作用..我该如何摆脱它?

    最佳答案

    我找到了一种防止崩溃的解决方法。我们可以使用 iOS 运行时来调配类方法。主要思想是从 +[AFAnalytics sharedAnalytics] 重定向消息至+[iOS12AFAnalyticsBug newSharedAnalytics] .类方法“newSharedAnalytics”有意返回和 nil 的消息不会导致崩溃。但请谨慎使用此解决方法,因为您的应用程序中的某些代码出于某些目的使用了 AFAnalytics。

    AppDelegate.m

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    [iOS12AFAnalyticsBug fix];
    //your code
    }

    iOS12AFAnalyticsBug.h
    @interface iOS12AFAnalyticsBug : NSObject

    + (void)fix;

    @end

    iOS12AFAnalyticsBug.m
    #import "iOS12AFAnalyticsBug.h"
    #include <objc/message.h>

    void SwizzleClassMethod(Class originClass, SEL originSelector, Class destClass, SEL newSelector) {

    Method originMethod = class_getClassMethod(originClass, originSelector);
    Method newMethod = class_getClassMethod(destClass, newSelector);

    originClass = object_getClass((id)originClass);

    if (class_addMethod(originClass, originSelector, method_getImplementation(newMethod), method_getTypeEncoding(newMethod))) {
    class_replaceMethod(originClass, newSelector, method_getImplementation(originMethod), method_getTypeEncoding(originMethod));
    } else {
    method_exchangeImplementations(originMethod, newMethod);
    }
    }

    @implementation iOS12AFAnalyticsBug

    + (instancetype)newSharedAnalytics {

    return nil; //All messages to nil won't cause a crash

    }

    + (void)fix {

    Class originClass = NSClassFromString(@"AFAnalytics");
    SEL originSelector = NSSelectorFromString(@"sharedAnalytics");

    SwizzleClassMethod(originClass, originSelector, self.class, @selector(newSharedAnalytics));
    }

    @end

    关于xcode - 无法识别的选择器 +[AFAnalytics sharedAnalytics]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52104091/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com