小编Wil*_*eke的帖子

37
推荐指数
4
解决办法
4万
查看次数

在Cocoa Touch Framework中包装静态库

我有一个带有2个架构片的胖静态库(armv7,arm64).我正在尝试使用swift并将其包装到Cocoa Touch Framework中.

我所做的:

  1. 创建Cocoa Touch Framework项目
  2. 使用标题拖动.a静态库
  3. 设置OTHER_LDFLAGS-all_load
  4. 设置ONLY_ACTIVE_ARCHNO
  5. 设置VALID_ARCHSARCHSarmv7arm64
  6. 使用Release构建配置构建
  7. 从DerivedData获取.framework文件/../../产品/

当我把这个.framework放到我的swift项目中时,在我的目标常规设置中添加嵌入式二进制文件部分,导入框架并使用其中一个类,我得到undefined symbols for architecture arm64或者undefined symbols for architecture armv7.

编辑:
不确定它是否有帮助,但我注意到静态库的大小约为34MB,但生成的.framework的大小约为12MB.

编辑2:
nm -arch arm64 -g myLibraryName在静态库和生成的动态库上运行.动态库不包含静态库具有的所有符号.看起来像XCode构建过程剥离了很多.

xcode cocoa-touch objective-c ios swift

12
推荐指数
1
解决办法
2011
查看次数

Xcode 13 缺少产品文件夹,Finder 菜单中的“显示构建文件夹”在哪里

Xcode 13 发行说明指出:

\n
\n

当产品组位于默认位置时,项目导航器会隐藏\xe2\x80\x99s。产品 > 在 Finder 菜单项中显示构建文件夹\n取代了最常见的用途。(71561549)

\n
\n

这个菜单在哪里?我使用的是 OSX 11.5.1 并运行 xcode13,但在 finder 或 Xcode 产品下拉菜单中看不到任何内容。谢谢。

\n

在此输入图像描述

\n

xcode xcode13

11
推荐指数
1
解决办法
6531
查看次数

如何删除 Big sur 中的 mac Catalyst 应用程序数据?

我更新了我的应用程序,因此它停止工作,在模拟器中您只需删除数据即可。在 mac catalina 中,您必须从库/容器/中删除文件夹,但在 big sur 容器文件夹中是空的。

xcode macos-big-sur

9
推荐指数
1
解决办法
1635
查看次数

9
推荐指数
1
解决办法
1339
查看次数

更新到Mac OS 10.15 Catalina后未打开Xcode 11

我在Mac OS 10.14.6上使用Xcode 11(从开发者帐户的额外文件部分下载了dmg)

今天,我将Mac os更新为10.15 catalina以使用xcode 11画布视图,但是问题是更新到mac os 10.15 Catalina之后,我无法打开xcode。当我单击xcode图标时,它会跳几秒钟,然后什么也没有发生。

我没有备份和正在进行的项目,主要的是那是我工作的办公室电脑。请帮忙!!

我尝试通过此方法进行修复,但 更新为Catalina后,无法打开Xcode项目

macos xcode macos-catalina

8
推荐指数
2
解决办法
4031
查看次数

macOS Big Sur 新的工具栏按钮样式

当我使用 SwiftUI App Lifecycle 创建应用程序时,工具栏按钮与新的 Big Sur 工具栏按钮样式(具有 onHover 效果样式)匹配。但是如果我选择传统的 AppDelegate Lifecycle 并通过 Storyboards 自定义工具栏,那么我会得到这个没有 onHover 效果的按钮样式:

在此处输入图片说明

该按钮以矩形为背景出现。有谁知道我怎样才能达到新的风格?

xcode swift macos-big-sur

8
推荐指数
3
解决办法
1879
查看次数

致命错误:UnsafeRawBufferPointer 从 Core Data/NSFetchedResultsController 删除对象时计数为负

这是我第一次使用 AppKit 和NSTableView. 它由NSFetchedResultsController核心数据支持。当数据集发生更改时,Notification将发送:

func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) {
    guard let links = self.fetchedResultsController.fetchedObjects else {
        return
    }

    if self.viewContext.hasChanges {
        try? self.viewContext.save()
    }
        
    self._links = links
    NotificationCenter.default.post(name: .reloadLinkList, object: nil)
}
Run Code Online (Sandbox Code Playgroud)
NotificationCenter.default.publisher(for: .reloadLinkList).receive(on: RunLoop.main).sink { notification in
    self.list.tableView.reloadData()
    self.list.linksModel.selectedRows = IndexSet([])
}
.store(in: &cancellables)
Run Code Online (Sandbox Code Playgroud)

这对于插入和更新数据非常有用。当我尝试删除某些内容时,我得到:

Thread 1: Fatal error: UnsafeRawBufferPointer with negative count
Run Code Online (Sandbox Code Playgroud)

删除选定对象的代码如下:

Thread 1: Fatal error: UnsafeRawBufferPointer with negative count …
Run Code Online (Sandbox Code Playgroud)

macos appkit nsfetchedresultscontroller swift combine

8
推荐指数
1
解决办法
2167
查看次数

Xcode 14 Beta 5 抛出异常

Xcode 14 Beta 5 显示此异常:

[<_UINavigationBarContentViewLayout valueForUndefinedKey:]: this class is not key value coding-compliant for the key inlineTitleView.

使用 Xcode 14 Beta 5 时,我在所有 obj-c 项目中都遇到了这个新异常。

一些注意事项:

  • 任何模拟器设备上都会出现异常(运行 iOS 16)
  • 异常出现在里面的开头int main(int argc, char * argv[])
  • 在运行 iOS 15 的真机上也不例外
  • 异常可以被忽略(不会崩溃)。

我想知道是否还有其他人遇到过这种情况。

beta xcode exception xcode14

7
推荐指数
1
解决办法
834
查看次数

特权助手在 Xcode 中未经过公证

因此,在与特权帮助者斗争了三个多星期后,我终于让我的应用程序正常运行了。我需要一个助手来发送一些 root shell 命令,一切都按预期工作。但是,每当我尝试对应用程序进行公证时,辅助工具就无法工作,并且当我在未进行公证的情况下导出存档时,它会按预期工作。但我想对其进行公证,因为这是让特权助手启动并运行的关键所在。

一些信息:

  1. 如果我对其进行公证,程序将无法按预期运行
  2. 如果我导出存档(通过选择直接分发给客户选项)但不对其进行公证,那么它也不起作用
  3. 如果我导出应用程序的纯存档,它就可以工作。但当我在朋友的 Mac 上测试它时,他们必须进入系统偏好设置手动允许应用程序运行,因为它没有经过公证。

有人认为这是一个权利问题;我需要将权利文件添加到帮助工具而不是主应用程序中。有谁知道如何做到这一点?如果是这样,我需要添加什么样的权利?

PS:公证过程需要启用强化运行时,否则我无法对其进行公证。

macos xcode notarization

7
推荐指数
0
解决办法
165
查看次数