问题标签 [mac-catalyst]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
232 浏览

swift - Mac Catalyst textview 第一响应者

当我尝试使用 Catalyst 在 Mac 上实现我的笔记应用程序时,我的界面行为很奇怪。我做了textview

但是在我创建新笔记之后,Catalyst 以某种方式将焦点移到了后退按钮。在创建另一个 textview 焦点后,它应该正常工作。

显示图像

所以它是旋转的,我不明白为什么 textView.becomeFirstResponder() 不是每次都有效。

0 投票
1 回答
159 浏览

ios - 催化剂 textview 插入符号颜色

如何在我的应用程序的 Catalyst 版本的 textView 中更改插入符号颜色?我试着用

但它不适用于催化剂。

我是说

在此处输入图像描述

0 投票
5 回答
760 浏览

xcode - 无法分发 Mac Catalyst 扩展

我成功地将具有多个扩展的应用程序上传到 iOS 应用商店,但是当我尝试为 Mac AppStore(Mac Catalyst 应用程序)上传相同的应用程序时,我在两个扩展程序上从 Xcode 收到以下错误

这些扩展是具有故事板文件的共享扩展和操作扩展,因此如果我在 Info.plist 文件中设置 NSExtensionPrincipalClass 键,我会在控制台中收到以下消息

当然扩展界面没有出现,也没有任何效果

有人知道如何解决这个问题吗?

或者,是否可以在 Info.plist 文件中仅设置 NSExtensionPrincipalClass 键,然后以编程方式调用情节提要文件?

谢谢大家

万尼

0 投票
1 回答
540 浏览

ios - 错误检查:CloudKit MacCatalyst didReceiveRemoteNotification

我正在使用 MacCatalyst 将 iOS/iPadOS 应用程序移植到 MacOS。该应用程序以所有方式使用 CloudKit 和功能,除了一个:当从另一台设备提交 CloudKit 更新时,不会在 MacOS 版本上调用UIApplicationDelegate方法didReceiveRemoteNotification

在应用程序中起作用的事情:

  • 提交CKDatabaseOperation包括更新和订阅 CloudKit
  • 从 CloudKit 手动检索数据库更新
  • UIApplicationDelegate方法在调用时didRegisterForRemoteNotificationsWithDeviceToken触发并返回 trueUIApplication.isRegisteredForRemoteNotificationsUIApplication.registerForRemoteNotifications
  • 设置CKSubscription.NotificationInfo以调用在 MacOS 中正确显示的警报通知
  • UNUserNotificationCenterDelegate方法,willPresent当调用警报通知并且应用程序处于前台时
  • didReceiveRemoteNotification在 iOS 和 iPad(物理设备)上

有没有人在使用 MacCatalyst 时调用过UIApplicationDelegate方法?didReceiveRemoteNotification

更新:应用程序最终didReceiveRemoteNotification在发送更新 30 分钟后触发了该方法,但在其他更新中,即使在数小时后也不会触发该方法。有任何想法吗?

0 投票
1 回答
221 浏览

swift - 带有 NSPersistentCloudKitContainer 崩溃的 Mac 催化剂:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

我的应用程序使用 NSPersistentCloudKitContainer,它在 iPhone 和 iPad 上运行良好。将它移植到 Mac (Catalyst) 后,我开始遇到 EXC BAD INSTRUCTION 崩溃,我无法绕开它。

我决定使用 Catalyst 从 WWDC 2019 移植到 MacOS Apple 的 NSPersistentCloudKitContainer 演示项目,但我遇到了同样的崩溃。

我还尝试开始一个新的简单项目,我使用 Catalyst 将它移植到 MacOS,并且它不会崩溃。所以,我的猜测是问题与新的 NSPersistentCloudKitContainer..

有人遇到同样的崩溃吗?任何指导将不胜感激。

这是崩溃日志:

0 投票
2 回答
1789 浏览

ios - 为 Mac Catalyst 构建时扩展不可用

目前我有一个我正在尝试为 Mac Catalyst 构建的 iOS 应用程序,不幸的是,在构建时,我的一些不同目标出现以下错误:

为 Mac Catalyst 构建,但嵌入式应用程序扩展“ShareExtension.appex”正在为 iOS 构建。您可能需要配置“ShareExtension.appex”来为 Mac Catalyst 构建或限制应在目标编辑器中嵌入此应用程序扩展的平台。

当 MacOS 是我正在构建的平台时,如何禁用共享扩展?

0 投票
1 回答
1197 浏览

swift - Catalyst - 以编程方式打开上下文菜单

我通过使用在我的催化剂应用程序中使用上下文菜单

这在 Mac 上运行良好,并且当用户使用鼠标右键单击时会打开菜单。

另一方面,在某些情况下,我需要在普通按钮上打开相同的菜单,尤其是当用户在 iPad 上使用该应用程序时。有没有办法在普通按钮单击/点击事件上打开相同的上下文菜单?

0 投票
0 回答
184 浏览

firebase - SwiftUI macos 应用程序中的 Firebase 问题。[在模拟器上运行 InstanceID 没有 APNS。默认使用 prod 配置文件。]

我想在 macos 上运行我的 swiftui 应用程序,不幸的是我仍然可以看到错误

在模拟器上运行 InstanceID 没有 APNS。默认使用 prod 配置文件。

我使用 firebase 消息传递文档中的代码来初始化 firebase 消息传递,后来我想获取实例 id 令牌。在使用 Xcode 时,我没有收到任何其他错误,而不是我提到的这个。这就是为什么我决定归档我的应用程序并在 Xcode 之外独立运行它的原因。不幸的是,我仍然可以在控制台中看到有关在模拟器中运行的错误消息。当我在我的物理 iPhone 上运行该代码时,一切正常。

Xcode 日志

Mac 控制台日志

有谁知道我应该改变什么或者我应该如何正确存档应用程序以便firebase不会将我的应用程序检测为模拟器?

0 投票
0 回答
165 浏览

google-oauth - Mac Catalyst App 上的 Google OAuth2:使用 refresh_token 交换授权代码时出现“invalid_grant”

我们有一个应用程序可以从不同的客户端成功执行 Google 登录:Web、iOS 应用程序、Android 应用程序。我们现在正尝试在我们的 iOS 应用程序的Mac Catalyst版本上集成 Google 登录。

我们使用混合流,我们在客户端生成授权码并在服务器上交换它以获得访问和刷新令牌。

我找到了这个库https://github.com/elsesiy/GAppAuth并且我正在使用与 iOS 应用程序相同的凭据。

通过自定义方案登录后重定向到应用程序工作正常,我能够获得授权码。

但是当我与我的服务器共享授权码时,我在请求交换身份验证码以获取 access_token 和 refresh_token 时收到错误:

参数:

  • 代码(由客户发送)
  • client_id(服务器客户端 ID)
  • client_secret(服务器密码)
  • grant_type="授权码"

未为本机客户端请求添加 redirect_uri。

回复:

400 {'error': 'invalid_grant', 'error_description': 'Bad Request'}

请注意,完全相同的流程适用于 iOS。我还检查了不同类型的凭据(本机客户端,类型:其他)

关于出了什么问题以及如何解决此问题的任何想法?

我怀疑 Google 登录库的某些功能在 GAppAuth 中未实现(请参阅https://github.com/openid/AppAuth-Android/issues/293)。

0 投票
0 回答
220 浏览

ios - 带有 adMob 的 Xcode 项目,项目设置不包括 macCatalyst 的 adMob,Clang 链接器错误

macCatalyst 编译存在问题,需要排除 adMob Pod 对象(adMob 不支持 macOs)收到错误 GoogleAppMeasurement' for architecture x86_64 clang: error: linker command failed with exit code 1(使用 -v 查看调用)

  • 任何人都有完整的说明如何在 macCatalyst 编译中排除 adMob,会很棒吗?
  • 我试图追逐 AdMob Pod 的构建阶段设置,仅适用于 tagets iO,但显然无法找到它们?

要添加 adMob,Google 提供了一个很好的说明,其中包括导入 Pod:https ://developers.google.com/admob/ios/quick-start

检查项目设置中部署信息中的 Xcode 目标 mac 和 #if !targetEnvironment(macCatalyst),不包括 adMob swift 代码:

  • iPhone 和 iPad 目标,仍然可以正常工作
  • “我的 Mac”目标:在 adMob Pod 内容上出现 Clang 链接错误(GoogleAppMeasurement 架构 x86_64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用))

据我了解,目前只有在 Pod-configuration 中设置 iOS 的地方很多。与此相同:https ://github.com/react-native-community/discussions-and-proposals/issues/131

  • 但显然我不能只找到 iOS 的所有设置(而且它们在构建阶段中有很多)
  • 是的,我可以创建一个新项目,但是 macCatalyst 是个好主意,我喜欢使用它