标签: mac-catalyst

使用 `xcodebuild` 为 Mac 的 Catalyst/UIKit 进行命令行构建?

我在任何地方都看不到这个文档——有没有想过我们如何使用 xcodebuild 为 Mac 的 UIKIt(即 Catalyst)构建项目?

您可以指定“-sdk iphoneos”与“-sdk iphonesimulator”在这两个目标之间切换,但“-sdk uikitformac”似乎不起作用(“未找到SDK”),尽管Xcode本身使用该命名法(例如,它构建到“Debug-uikitformac”文件夹等)。我还尝试了可能有意义的不同 SDK 值(例如“-sdk macabi”),但无济于事。

建议?

xcodebuild mac-catalyst

3
推荐指数
2
解决办法
7469
查看次数

如何使用适用于 mac-catalyst 应用程序的 CloudKit 数据库订阅调试“获取断言时出错”?

我有一个可运行的原生 iPhone/iPad 应用程序,我现在正尝试将其用作 Mac Catalyst 应用程序。一切似乎都在工作,除了当我在 iOS 版本上输入某些内容时,它“破坏”了 macOS 版本——我正在使用 CloudKit 和 CloudKit 订阅来监听数据库中的变化。

我把这个记录到日志中 3 次:

2020-04-25 09:58:35.612887+0300 MyApp[2871:206093] [assertion] Error acquiring assertion: <NSError: 0x600000d4cb40; domain: RBSAssertionErrorDomain; code: 2; reason: "Specified target process does not exist">
2020-04-25 09:58:35.613919+0300 MyApp[2871:206093] [assertion] Error acquiring assertion: <NSError: 0x600000d4d290; domain: RBSAssertionErrorDomain; code: 2; reason: "Specified target process does not exist">
2020-04-25 09:58:35.615102+0300 MyApp[2871:206093] [assertion] Error acquiring assertion: <NSError: 0x600000d4de00; domain: RBSAssertionErrorDomain; code: 2; reason: "Specified target process does not exist">
Run Code Online (Sandbox Code Playgroud)

这种行为真的很奇怪。macOS 版本实际上并没有崩溃,但主窗口消失了,我必须在 XCode …

macos ios swift cloudkit mac-catalyst

3
推荐指数
1
解决办法
1696
查看次数

Catalyst 转换的 Mac 应用程序中的滚轮事件捕获

当使用使用 Catalyst 从 iOS 转换而来的 Mac 应用程序时,捕获 Mac 鼠标滚轮活动的常用方法,例如:

  • (void)scrollWheel:(NSEvent *)事件;

不起作用,因为在构建 Catalyst 转换的应用程序时显然不支持 NSEvent。

我需要控制的对象位于常规图像容器中,而不是滚动视图容器中。我只是想使用滚轮来更改加载的图像。触控板活动工作正常,但到目前为止捕获滚轮一直难以捉摸。

谢谢!

macos mac-catalyst

3
推荐指数
1
解决办法
1398
查看次数

Mac Catalyst 上的应用内购买不工作

应用内购买对于我的 iOS 方面来说效果很好。StoreKit 中的数据已按原样填充。相同的代码不适用于该项目的 Mac Catalyst 版本。我什至在 App Store 上为我的 Mac 应用程序创建了一个列表,其中包含用于应用程序内购买的不同捆绑标识符。我有一个打印功能,可以返回 StoreKit 找到的产品,它在 iOS 上运行良好,但在使用 Mac Catalyst 时没有任何结果。

这是我所做的:

  1. 确保在功能部分中添加了应用内购买。
  2. 确保已导入 Store Kit 框架。
  3. 确保捆绑标识符正确。
  4. 确保填写所有协议。
  5. 我已退出 Mac App Store。

适用于 iOS 但不适用于 MacOS 的代码:

    override func viewDidLoad() {
    SKPaymentQueue.default().add(self)


    let productIds: Set<String> = ["..."]
    var request = SKProductsRequest(productIdentifiers: productIds)
    request.delegate = self
    request.start()
}

  func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
    print("Loaded")

    for product in response.products {
        print("What came: \(product.productIdentifier) \(product.localizedTitle) \(product.price.floatValue)")}
Run Code Online (Sandbox Code Playgroud)

iOS 应用程序将返回产品标识符、标题和价格。Mac 应用程序将一无所获。

macos storekit in-app-purchase swift mac-catalyst

3
推荐指数
1
解决办法
495
查看次数

跟踪用户何时返回应用程序或将焦点从 Mac Catalyst 窗口移开

UISceneSession当用户将焦点从应用程序(窗口)移开然后又回到应用程序(窗口)时,我想使用生命周期的委托方法来帮助通知我的 Mac Catalyst 应用程序。

当应用程序首次在 Mac 上启动sceneWillEnterForegroundsceneDidBecomeActive成功调用时,但是当我专注于另一个应用程序时,则委托诸如sceneWillEnterForeground未调用之类的方法。为什么?

uiscenedelegate mac-catalyst

3
推荐指数
1
解决办法
228
查看次数

Mac催化剂版本

我想知道 macCatalyst 版本是什么意思以及它是如何映射到 macOS 版本的?例如,可用的 APImacCatalyst 14.0意味着它需要macOS 11.0(Big Sur),macCatalyst 13.0意味着macOS 10.15.0,但是当 API 需要最小目标时,这意味着什么macCatalyst 13.4?它对应什么版本的 macOS?

macos xcode ios mac-catalyst

3
推荐指数
2
解决办法
830
查看次数

有没有办法像我们在 iOS 中那样在 macOS 下将用户发送到应用程序的隐私设置?

与许多应用程序一样,如果某个隐私权限已被禁用,我的 iOS 应用程序为用户提供了打开应用程序设置页面的机会。

在 iOS 中,使用特殊的UIApplicationOpenSettingsURLString/ openSettingsURLStringURL 会将用户带到设置应用程序的应用程序特定页面。除了应用程序提供的 Settings.bundle 中的任何设置设置(如果有)之外,用户还可以在那里看到应用程序使用的各种隐私设置。

在 iOS 应用程序的 Mac Catalyst 端口上工作时,这并没有像预期的那样工作。特殊设置 URL 的相同用法显示用户在单击“首选项...”菜单时看到的相同首选项窗格。这只是应用程序的 Settings.bundle 提供的内容。该应用程序的隐私设置不像在 iOS 中那样显示。

我可以在 macOS 设置应用程序中查看我的应用程序的隐私设置,方法是单击“安全和隐私”,然后单击“隐私”选项卡,然后单击左侧列表中的相应项目,例如“联系人”或“照片”。但这些设置不按应用分组。

有没有办法让 iOS 应用程序的 macOS 版本在一个地方显示各种隐私设置,就像在 iOS 上运行时一样?如果没有,是否至少有一种方法可以在 macOS 中直接启动“设置”应用程序并显示“隐私”窗格?

ios mac-catalyst

2
推荐指数
1
解决办法
570
查看次数

macOS Catalyst 应用程序未显示在 iTunes/App Store Connect 构建选项中

我已经从现有的 iOS 应用程序创建了一个 macOS 应用程序。我选中了启用 macOS 支持的复选框,它添加了沙箱权利,就像文档所说的那样。

在此处输入图片说明

在开发人员页面中,我还看到启用了 macOS 支持。

在此处输入图片说明

我的 iOS 应用程序出现在 iTunes Connect 中并通过了评论。到目前为止,一切似乎都很棒。

在此处输入图片说明

我的 Catalyst 应用程序就没有那么幸运了。活动下没有显示任何构建。

在此处输入图片说明

在此处输入图片说明

如何让我的构建显示在 iTunes Connect 中?我是否必须以不同于 Xcode Organizer 中常规 iOS/iPad 应用程序的方式提交 macOS 应用程序?我很高兴提供任何其他信息来帮助解决这个问题。

macos ios app-store-connect mac-catalyst

2
推荐指数
1
解决办法
504
查看次数

如何禁用 MacCatalyst 上的全屏按钮

macCatalyst 上的 UIWindow 带有关闭、最小化和全屏按钮

目前,我有这个停止调整窗口大小:

#if targetEnvironment(macCatalyst)
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 480, height: 900)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 480, height: 900)
#endif

let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: contentView)
self.window = window
window.makeKeyAndVisible()
Run Code Online (Sandbox Code Playgroud)

但是全屏按钮无论如何都会使其全屏。

macos swift swiftui mac-catalyst

2
推荐指数
1
解决办法
1055
查看次数

Mac Catalyst 弹出框设置/限制大小问题

是否可以在 Mac Catalyst 上限制/修复(最小/最大)弹出窗口大小?请参阅随附的视频。

示例视频

xcode ios mac-catalyst

2
推荐指数
1
解决办法
880
查看次数