将产品模块名称添加到 FinderSync plist 中的 NSExtensionPrincipalClass 会使其崩溃

2023-12-14

我的可可应用程序有一个查找器同步扩展。

正如苹果指南中建议的那样:https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html

我将 $(PRODUCT_MODULE_NAME) 添加到我的查找器的 info.plist 中。

这样做会导致取景器在到达初始点之前就崩溃了。

即使我的未捕获异常处理程序也无法捕获此异常。

我的扩展程序的 info.plist 文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleDisplayName</key>
    <string>My App Finder Integration</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>XPC!</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>LSMinimumSystemVersion</key>
    <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
    <key>LSUIElement</key>
    <true/>
    <key>NSExtension</key>
    <dict>
        <key>NSExtensionAttributes</key>
        <dict/>
        <key>NSExtensionPointIdentifier</key>
        <string>com.apple.FinderSync</string>
        <key>NSExtensionPrincipalClass</key>
        <string>$(PRODUCT_MODULE_NAME).FinderSync</string>
    </dict>
    <key>NSHumanReadableCopyright</key>
    <string>Copyright © 2017. All rights reserved.</string>
    <key>NSPrincipalClass</key>
    <string>NSApplication</string>
    <key>NSSupportsAutomaticGraphicsSwitching</key>
    <true/>
</dict>
</plist>

错误堆栈跟踪是:

2017-05-25 14:53:52.231849 My App Finder Integration[6258:60938] [General] *** setObjectForKey: object cannot be nil (key: F376D0DD-5E4B-4E4F-9BAF-D685C62BE59D)
2017-05-25 14:53:52.232218 My App Finder Integration[6258:60938] [General] (
    0   CoreFoundation                      0x00007fffa968d0db __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x00007fffbe314a2a objc_exception_throw + 48
    2   CoreFoundation                      0x00007fffa958d115 -[__NSDictionaryM setObject:forKey:] + 1061
    3   Foundation                          0x00007fffab19a5a4 -[_NSExtensionContextVendor _setPrincipalObject:forUUID:] + 106
    4   Foundation                          0x00007fffab199d70 __105-[_NSExtensionContextVendor _beginRequestWithExtensionItems:listenerEndpoint:withContextUUID:completion:]_block_invoke + 883
    5   libdispatch.dylib                   0x00007fffbebc8ef7 _dispatch_call_block_and_release + 12
    6   libdispatch.dylib                   0x00007fffbebc00b8 _dispatch_client_callout + 8
    7   libdispatch.dylib                   0x00007fffbebcdb4b _dispatch_main_queue_callback_4CF + 925
    8   CoreFoundation                      0x00007fffa9643669 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
    9   CoreFoundation                      0x00007fffa960465d __CFRunLoopRun + 2221
    10  CoreFoundation                      0x00007fffa9603b54 CFRunLoopRunSpecific + 420
    11  HIToolbox                           0x00007fffa8b8ea5c RunCurrentEventLoopInMode + 240
    12  HIToolbox                           0x00007fffa8b8e891 ReceiveNextEventCommon + 432
    13  HIToolbox                           0x00007fffa8b8e6c6 _BlockUntilNextEventMatchingListInModeWithFilter + 71
    14  AppKit                              0x00007fffa71345b4 _DPSNextEvent + 1120
    15  AppKit                              0x00007fffa78aed6b -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2789
    16  AppKit                              0x00007fffa7128f35 -[NSApplication run] + 926
    17  AppKit                              0x00007fffa70f3850 NSApplicationMain + 1237
    18  libxpc.dylib                        0x00007fffbee5a8c7 _xpc_objc_main + 775
    19  libxpc.dylib                        0x00007fffbee592e4 xpc_main + 494
    20  Foundation                          0x00007fffab09415b +[NSXPCListener serviceListener] + 0
    21  PlugInKit                           0x00007fffb9feb41c -[PKService run] + 865
    22  PlugInKit                           0x00007fffb9feaf89 +[PKService main] + 55
    23  PlugInKit                           0x00007fffb9feb440 +[PKService _defaultRun:arguments:] + 17
    24  Foundation                          0x00007fffab2362bc NSExtensionMain + 51
    25  libdyld.dylib                       0x00007fffbebf6255 start + 1
    26  ???                                 0x0000000000000001 0x0 + 1
)
2017-05-25 14:53:52.232447 My App Finder Integration[6258:60938] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: object cannot be nil (key: F376D0DD-5E4B-4E4F-9BAF-D685C62BE59D)'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fffa968d0db __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x00007fffbe314a2a objc_exception_throw + 48
    2   CoreFoundation                      0x00007fffa958d115 -[__NSDictionaryM setObject:forKey:] + 1061
    3   Foundation                          0x00007fffab19a5a4 -[_NSExtensionContextVendor _setPrincipalObject:forUUID:] + 106
    4   Foundation                          0x00007fffab199d70 __105-[_NSExtensionContextVendor _beginRequestWithExtensionItems:listenerEndpoint:withContextUUID:completion:]_block_invoke + 883
    5   libdispatch.dylib                   0x00007fffbebc8ef7 _dispatch_call_block_and_release + 12
    6   libdispatch.dylib                   0x00007fffbebc00b8 _dispatch_client_callout + 8
    7   libdispatch.dylib                   0x00007fffbebcdb4b _dispatch_main_queue_callback_4CF + 925
    8   CoreFoundation                      0x00007fffa9643669 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
    9   CoreFoundation                      0x00007fffa960465d __CFRunLoopRun + 2221
    10  CoreFoundation                      0x00007fffa9603b54 CFRunLoopRunSpecific + 420
    11  HIToolbox                           0x00007fffa8b8ea5c RunCurrentEventLoopInMode + 240
    12  HIToolbox                           0x00007fffa8b8e891 ReceiveNextEventCommon + 432
    13  HIToolbox                           0x00007fffa8b8e6c6 _BlockUntilNextEventMatchingListInModeWithFilter + 71
    14  AppKit                              0x00007fffa71345b4 _DPSNextEvent + 1120
    15  AppKit                              0x00007fffa78aed6b -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2789
    16  AppKit                              0x00007fffa7128f35 -[NSApplication run] + 926
    17  AppKit                              0x00007fffa70f3850 NSApplicationMain + 1237
    18  libxpc.dylib                        0x00007fffbee5a8c7 _xpc_objc_main + 775
    19  libxpc.dylib                        0x00007fffbee592e4 xpc_main + 494
    20  Foundation                          0x00007fffab09415b +[NSXPCListener serviceListener] + 0
    21  PlugInKit                           0x00007fffb9feb41c -[PKService run] + 865
    22  PlugInKit                           0x00007fffb9feaf89 +[PKService main] + 55
    23  PlugInKit                           0x00007fffb9feb440 +[PKService _defaultRun:arguments:] + 17
    24  Foundation                          0x00007fffab2362bc NSExtensionMain + 51
    25  libdyld.dylib                       0x00007fffbebf6255 start + 1
    26  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

当您使用没有这种格式的 Swift 类时,Xcode 15 会显示错误,这与您的情况相反......但错误显示:

__extensionPrincipalClass != nil - /Library/Caches/com.apple.xbs/Sources/ExtensionFoundation_Sim/ExtensionFoundation/Source/NSExtension/NSExtensionSupport/EXConcreteExtensionContextVendor.m:109:无法在扩展包中找到 NSExtensionPrincipalClass (MessagesViewController)!请验证扩展是否链接所需的框架,并且 NSExtensionPrincipalClass 的值是否以“$(PRODUCT_MODULE_NAME)”为前缀。如果该类是用 Swift 实现的。类型: 故障 |时间戳: 2023-09-19 18:05:10.722854-07:00 |图书馆:ExtensionFoundation |子系统:com.apple.extensionkit |类别: 默认 | TID:0x4f172

(强调我的)

所以我认为对于 O-C 来说,你可能只需要输入类名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将产品模块名称添加到 FinderSync plist 中的 NSExtensionPrincipalClass 会使其崩溃 的相关文章

  • 如何向选项卡栏控制器添加“入口点箭头”?

    In Xcode 6 2 beta I am able to make some view controllers such as View Controller or Navigation view controller the entr
  • 从 iPhone 上传图像/音频到服务器无法发送大图像

    我不知道这是我的iPhone代码还是服务器的问题 我正在使用 NSURLConnection 将图像 音频从 iPhone 上传到服务器 如果图像和音频的大小小于 60KB 则可以正常上传 如果超过 60KB 我会从服务器收到 400 Ba
  • 线程1:EXC_BAD_ACCESS(代码=1,地址=0xf1759018)

    所以我收到了这个错误 如下图 当我收到此错误时 正在检查我的核心数据库 并根据我收集的电池统计数据对结果进行平均 这一切工作正常 直到我休息了一下然后回来 将其插入并开始出现此错误 我有一个异常断点 但除了图像中的崩溃之外 它仍然没有向我显
  • Xcode 9.2 UIDocumentBrowserViewController:无法从 bookmarkableString 创建 url

    Update Xcode 9 3 已修复它 在创建 UIDocument 文件时UIDocumentBrowserViewController 默认 错误 无法解析书签 错误 错误域 NSFileProviderInternalErrorD
  • xcode 9 中的 Facebook 登录按钮终止

    我正在使用 Xcode 9 并将编译器设置为 Swift 3 2 我使用 Cocoapods 安装了 Facebook Login 一切都编译没有任何错误 但每当我在模拟器中运行它时 我单击登录按钮 它就会崩溃 控制台中仅打印以下内容 li
  • UITextView自定义自动完成

    有没有办法为 UITextView 实现自定义自动完成 例如给它一个NSDictionary or NSArray需要注意的字符串 你必须自己编程 如果您实现 UITextViewDelegate 协议 则该函数 BOOL textView
  • 模拟 Push Segue 的自定义 Segue 将 VC 变成僵尸

    使事情简短明了 我写了一个自定义的segue void perform UIView preV UIViewController self sourceViewController view UIView newV UIViewContro
  • UIFont Woes(一些自定义字体加载,但其他字体不加载)

    我在加载某些自定义字体时遇到问题 我遵循了这个问题的 400 多个赞同的传统答案中的建议 并且它非常适合一个项目 然而 在我正在从事的另一个项目中 我遇到了加载 UIFont 的问题 这些问题与帖子中发现的问题有些相似向 UIAppFont
  • 如何在 flutter 插件的 Swift 编写的 iOS 部分中使用 Objective-C 框架

    In a 颤振插件 我想用一个Objective C我的框架iOS部分用swift编写 然后将其用于使用 Swift 的 Flutter 项目作为 iOS 语言 经过一些研究 我不是 iOS 开发人员 后 我发现我想要做的事情可以通过导入文
  • 如何在 iPhone 中以编程方式访问保存的图像中的图像而不使用 UIimagePickerController?

    我知道如何让用户从 UIImagePickerController 选择图像 但我不想要那样 我只想将 NSArray 图像存储在手机中 但我不想让用户参与 选择一个然后拥有该图像 相反 我创建了自己的自定义图像选择器控制器并希望有画廊作为
  • 所有 UI 前面的透明 UIImageView

    首次启动我的应用程序后 我想向用户展示一些教程 以解释我的应用程序的功能 所以我需要设置一个带有一些箭头和标签的透明 UIImageView 其中主 UI 更具体地说 tabbarcontroler 中的 navigationviewcon
  • 使用 NSPredicate 来检测 NOT CONTAINS

    我放弃 我已经尝试了我能想象到的所有组合来检查一个字符串是否包含另一个字符串 这是描述我想要做的事情的直观语法示例 NSPredicate pPredicate NSPredicate predicateWithFormat NOT K C
  • iOS 应用程序在被杀死之前平均在后台运行多长时间?

    我需要通过 API 检查后端的应用程序设置更新 因此我不确定在启动时执行此类检查是否足够 或者我需要在应用程序进入前台后立即执行此类检查 当然 这取决于打开的应用程序数量 设备功能 但是关于应用程序可以在后台存活多长时间直到被杀死 有什么一
  • 如何像键盘一样呈现选择器视图?

    我希望当我按下按钮 就像键盘一样 时显示 UIPickerView 然后在用户点击屏幕上的任意位置时消失 我怎样才能做到这一点 谢谢 更多背景信息 我在 UITableViewCell 中有一个名为 Months 的 UITextField
  • 在 Interface Builder 中启用/禁用 NSLayoutConstraints

    NSLayoutConstraint in iOS 8 0 has a BOOL属性称为active这使得动态禁用 启用所述布局约束变得容易 要为视图控制器创建第二个布局集 然后我可以以编程方式启用 禁用它 通过IBOutletCollec
  • 语言混合:模型和视图

    考虑开发一个应用程序 其中模型将使用 C 使用 Boost 编写 视图将使用 Objective C 使用 Cocoa Touch 编写 哪里有一些示例展示了如何集成 C 和 Objective C 来开发 iPhone 应用程序 直接从源
  • 如何在 xcode 中从 nib 文件创建视图?

    我有以下代码来创建视图并将其放入滚动视图中以允许分页代码工作正常 但是我不能做的是从 nib 文件加载视图 换句话说 我想使用 initWithNibName 而不是 initWithFrame void createPageWithCol
  • 如何在 Mac OS X 10.9 上安装和使用最新的 Git?

    我从 sourceforge 下载了 Git 2 4 3http git scm com download mac http git scm com download mac对于我的 Macbook Pro OS X 10 9 5 然后安装
  • 停止 xcode 建立索引

    我一直在使用 xCode 4 5 2 并且注意到 如果您正在建立索引 则需要停止一切并让它完成它的工作 否则您会陷入困境 这已经成为一个问题 因为项目很大 索引需要很长时间才能完成 而且会不断地完成 一个例子是它对整个项目建立了索引 在我对
  • Swift 中的 id 相当于什么?

    我有两个这样的代表 protocol MyFirstDelegate func change value int protocol MySecondDelegate weak var delegate MyFirstDelegate 这些协

随机推荐

  • 在 Eclipse 中安装 ADT 时出现问题

    我已经安装了 SDK 现在需要 Eclipse 插件 但是 这是行不通的 它达到大约 25 29 并挂起几分钟 然后失败 我收到以下错误消息 收集要安装的项目会话时发生错误 上下文是 profile SDKProfile 阶段 org ec
  • 如何在其他地方绘制不可见的 JFrame?

    我想将 JFrame 的内容绘制到另一个框架上 目前 我只有在 JFrame 可见时才能使其工作 有没有办法绘制隐藏的 JFrame 附加信息 在我的项目中 我需要能够旋转和缩放窗口 我不想编写自己的 window api 所以我想我也许能
  • 即使应用程序被卸载后也能保留设备标识符

    在我的 iPhone iPad 应用程序的用例中 有一个投票系统 一台设备可以将其投票发送到服务器一次 因此我的服务器需要识别用户的设备 我不希望用户注册帐户 因为这会使应用程序变得复杂 但是 我找不到有效的解决方案 UDID 已弃用 我认
  • SUMIF 排除隐藏行。小计?求和?

    我有 2 个巨大的事件表 第一个表是数据表 tblData 包含日期 持续时间和代码 用于识别事件 第二个表是汇总表 tblSummary 每个事件花费的总时间 我该如何过滤tblData并更新tblSummary 下面是一小部分tblDa
  • android中按钮点击的表单验证

    我正在开发一个 Android 应用程序 其中登录活动有 editText RadioButton Spinner 和一个按钮 因此 当按下按钮时 我必须通过检查是否填写了所有字段来验证我的表单 否则会向谁能帮我写一下java代码吗 提前致
  • 使用 Android Gallery 作为自动幻灯片放映

    您好 我想为应用程序创建一个启动屏幕 并让图库在计时器上旋转多个图像 谁能告诉我如何使用计时器为图库中的图像设置动画 一个简单的解决方案是 private int PicPosition private Handler handler ne
  • 将社交分享链接添加到phonegap应用程序

    我有一个使用 jquery mobile 的应用程序 它输出和图像 现在我已经在预览页面中显示了图像 并且我在下面添加了链接以在 Facebook 和 Twitter 以及其他平台上分享它们 我该如何编码 当用户单击共享按钮时 默认共享面板
  • 表的奇数行和偶数行

    我有一个从 MYSQL 数据库获取其行的表 table table
  • 多个 SELECT 语句合并到一个 JSON 中

    我确信这个问题必须在某个地方得到回答 但在我的一生中 无论我如何改变我的搜索短语 我似乎都找不到任何东西 我需要从两个完全独立的表中选择数据并将信息导出到 JSON 在这种情况下 它们在每个表中都是 1 条记录 如果我一次只选择 1 条并导
  • Python FTPS上传错误:425无法建立数据连接:不允许操作

    我正在尝试使用 ftps 将文件发送到 FTP 服务器 登录和更改目录工作 import ftplib ftps ftplib FTP TLS host user pwd ftps set pasv True ftps prot p ftp
  • 使用 MPMoviePlayerController 播放多个视频

    在我的应用程序中 我有多个视频 我希望当用户按下 MPMoviePlayerController 中的下一个或上一个按钮时 MPMoviePlayerController 应该播放特定的歌曲 但问题是 MPMoviePlayerContro
  • 如何在 App Store 中提交同一项目的两个二进制(iPhone 和 iPad)文件?

    我已经为 iPhone 创建了地图应用程序 并且根据客户要求 我也在 iPad 上开发了相同的地图应用程序 现在我有相同的地图应用程序项目 但有两个 ipa 文件 一个用于 iPhone 另一个用于 iPad 我已经将 iPhone 版本放
  • 使用指针在C++中显示char变量的地址?

    如何显示char变量的地址 我找到了一个使用类型转换的解决方案 首先将其转换为 int 或 float 或 void 等 然后使用指针显示地址 但是 除了没有类型转换的特定解决方案之外 还有其他替代方案吗 使用像这样的指针 char var
  • 使用 php yii2 在 Chrome 中下载 Excel 文件失败

    a href Files file xxxx class btn btn success Download File a 我有一个页面 其中有一个下载按钮 可以下载该文件 但下载失败 我已经检查过这个问题 但没有找到任何解决方案 上图显示没
  • 在Android中录音期间暂停或停止对讲语音

    我在手机 galaxy S6 中启用了辅助功能 然后尝试在单击按钮后进行录音 该按钮有一个包含长消息的 contentDescription 属性 问题是 Talkback 在语音留言录制过程中继续给出指示 我试图在录音时通过清空 cont
  • 在 Google Sheets 或 Excel 中计算当前月份和年份的行数

    我有一行填充了 MM dd yyyy 格式的日期 带有标题行 例如 DATES 5 12 2015 4 12 2012 5 7 2015 5 7 2014 我想计算与当前月份和年份匹配的行数 在上面的示例中 结果显然是两个 当时是 2015
  • Angular.js 动态表单输入类型

    我正在尝试制作一个 Angular js 应用程序 它从 JSON 对象创建动态表单输入 首先 我有一个 JSON 对象 称为字段 field id 209 form id 1 name firstname label First Name
  • MATLAB 中的高效多类加权多数投票实现

    这几天我想知道如何在matlab中有效地实现m位专家的加权多数投票 这是我想要的一个例子 假设我们有 3 位专家 其权重向量 w 7 2 6 假设他们对选项 A B C D 进行了 n 次投票 因此我们得到以下 n x m 投票矩阵 其中列
  • 从 ASP.NET 中的 Gridview 获取当前行

    我有一个带有删除和编辑按钮的 Gridview 看起来像
  • 将产品模块名称添加到 FinderSync plist 中的 NSExtensionPrincipalClass 会使其崩溃

    我的可可应用程序有一个查找器同步扩展 正如苹果指南中建议的那样 https developer apple com library content documentation General Conceptual Extensibility