标签: mac-catalyst

如何有条件地为 Catalyst 编译代码?

我正在将 iOS 应用程序移植到 Catalyst。Catalyst (Mac) 版本将有自己的目标。

有没有一种官方方法可以有条件地为 Catalyst 编译代码?否则,我可以添加特定于目标的定义,但最好使用更通用的定义。

macos ios mac-catalyst

5
推荐指数
1
解决办法
2278
查看次数

iOS Catalyst Cocoapod 框架错误——签名需要开发团队

我正在更新我的 iOS 应用程序以在 Mac 上运行。选择 Mac 复选框后,我在尝试为 Mac 构建时在下面的屏幕截图中收到错误消息。它告诉我我需要为这个 Cocoapod 框架选择一个开发团队。但是,我可以在不选择开发团队的情况下构建到 iPhone 或 iPad。

我尝试选择一个使错误消失的开发团队,但是当我将应用程序二进制文件上传到 Apple 时,它​​被拒绝并显示错误:ITMS-90284:代码签名无效 - 可执行文件“Timestamp.app/Contents/Frameworks/BSImagePicker。 framework/Versions/A/Resources/BSImagePicker.bundle' 必须使用配置文件中包含的证书进行签名。

我想我是从 Apple 收到这个错误的,因为我为这个 Cocoapod 框架选择了一个开发团队。

有关如何处理 Catalyst 应用程序的此错误的任何建议?

Mac 构建错误

ios cocoapods swift mac-catalyst

5
推荐指数
2
解决办法
1206
查看次数

创建 Mac Catalyst App Store 配置文件时出现问题

我正在尝试将我的第一个 Catalyst 游戏上传到 Mac App Store。

经过一番折腾,我在Mac App Store成功创建了一个条目,然后是最后一部分- 在提交时,它说“配置文件不是“ Mac Catalyst App Store”配置文件!

然后我尝试创建一个配置文件,但在创建过程中 - 我无法通过此页面“生成配置文件”页面,要求创建证书。创建证书后 - (Mac App Distribution)下载并双击 - 然后我再次创建配置文件,但仍然停留在同一页面。那我该怎么办?

PS:Mac App Distribution 可能不是正确的证书吗?我尝试了 Mac Installer Distribution,但结果是一样的(要求在创建配置文件期间创建证书)。

macos app-store-connect mac-catalyst

5
推荐指数
1
解决办法
534
查看次数

Mac Catalyst 中的透明工具栏

我能够在 Mac Catalyst 中创建一个统一的工具栏SceneDelegate.swift

// Use a UIHostingController as window root view controller.
if let windowScene = scene as? UIWindowScene {
    let window = UIWindow(windowScene: windowScene)
    window.rootViewController = UIHostingController(rootView: contentView)
    // hide the titlebar
    windowScene.titlebar?.toolbar = NSToolbar()
    windowScene.titlebar?.titleVisibility = .hidden
    ...
}
Run Code Online (Sandbox Code Playgroud)

但我想让工具栏像这个例子一样透明:https : //lukakerr.github.io/swift/nswindow-styles#11-transparent-toolbar-without-seperator

这在 Mac Catalyst 中甚至是可能的吗?

uiwindow mac-catalyst

5
推荐指数
1
解决办法
1536
查看次数

如何使用催化剂在 ios 和 macos 中弹出文档选择器

我正在尝试使用 mac 催化剂弹出一个文档选择器,但我得到的只是一个空白屏幕。

在 iPad 和 iPhone 上的 ios 13.2.2 上一切正常,但在 macos 10.15.1 catalina 上却不能。

有谁知道如何使用催化剂在 ios 和 macos 中弹出文档选择器?

我的权利文件具有:

<key>com.apple.security.app-sandbox</key>
<false/>
Run Code Online (Sandbox Code Playgroud)

这是显示问题的测试代码。

import Foundation
import SwiftUI

struct ContentView: View {
@State var isFilePickerShown = false

var body: some View {
    VStack {
        Button(action: { self.isFilePickerShown.toggle() }) {
            Image(systemName: "rectangle.and.paperclip").resizable().frame(width: 70, height: 70)
        }
    }.sheet(isPresented: $isFilePickerShown, onDismiss: {self.isFilePickerShown = false}) {
        DocPickerViewController(callback: self.filePicked, onDismiss: { self.isFilePickerShown = false })
    }
}

func filePicked(_ url: URL) {
    print("\nThe url is: …
Run Code Online (Sandbox Code Playgroud)

ios swiftui mac-catalyst

5
推荐指数
0
解决办法
3063
查看次数

使用 Mac Catalyst 上传新应用程序版本时出错

当我尝试为 Mac Catalyst 上传新的应用程序版本 (1.1) 时收到的消息。

错误 ITMS-90061:“此包无效。Info.plist 文件中密钥 CFBundleVersion [1] 的值必须包含比先前上传的版本 [2] 更高的版本。请在https 上找到有关 CFBundleVersion 的更多信息: //developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion "

我有 iOS 应用程序,它是 2.6 版,Mac OS 应用程序是 1.0 版

我在 Info.plist CFBundleVersion 中更改为 1.1 ,但我仍然收到该错误。

错误截图

xcode mac-catalyst

5
推荐指数
1
解决办法
292
查看次数

macCatalyst/ SwiftUI 触控栏

如何在用 SwiftUI 编写的 Catalyst 应用程序中添加触控栏支持?

例如,如果我想在视图中显示一个按钮:

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack{
        #if targetEnvironment(macCatalyst)
            Text("macOS")
            .frame(maxWidth: .infinity, maxHeight: .infinity)
            .focusable()
            .touchBar {
                Button(action: {
                    print("tapped")
                }) {
                    Text("TestButton")
                }
            }
        #endif
        Text("iOS")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在 macOS 应用程序中使用它,它可以工作,但如果我在 Catalyst 中使用它并添加 targetEnvironment,则会出现错误:

“focusable(_:onFocusChange:)”在 iOS 中不可用,“touchBar(content:)”在 iOS 中不可用

谢谢你的帮助。

macbookpro-touch-bar swiftui mac-catalyst

5
推荐指数
1
解决办法
744
查看次数

Mac Catalyst:在 iPad 应用程序中不支持多窗口的多窗口?

我正在为 iPad 编写纸牌游戏应用程序,并希望使用 Catalyst 将其带到 Mac。该游戏并不是支持多个窗口很有意义的游戏。但是,我在 iPad 上的模态表单中显示了一个统计屏幕,我宁愿在 Catalyst 上的新窗口中打开它。这是我想要添加新窗口的唯一场景。

有没有办法支持多窗口应用程序,但仅限于应用程序的 Catalyst 版本?如果我在 Xcode 的应用程序目标设置中选中“支持多个窗口”复选框,那么用户会突然被授予从 App Expose 在 iPad 应用程序上打开更多窗口的选项,这不是我正在寻找的功能。

在此处输入图片说明

multi-window ios ipados mac-catalyst

5
推荐指数
1
解决办法
803
查看次数

iOS:Mac Catalyst,在其他 Mac 上测试 iOS 应用

我正在构建一个 iOS 应用程序,并且客户端想要启用在 Mac 上运行的功能。我启用了它并在我的 Mac 上按预期运行。我怎样才能让他们在他们的 Mac 上测试它?因为 TestFlight 只在 iOS 设备上运行。

macos xcode ios testflight mac-catalyst

5
推荐指数
2
解决办法
1345
查看次数

如何使用 Mac-Catalyst App 从 Finder 打开文件

我正在寻找从 macOS 的 Finder 接收打开文件的 URL 的方法。我在 Mac-Catalyst 应用程序的 info.plist 中实现了 ZIP 文档类型关联。所以如果用户曾经将 ZIP 文件关联到我的应用程序作为默认应用程序,用户可以双击 ZIP 文件并启动我的应用程序。

但目前我的应用程序无法接收打开的文件 URL,因为我不知道哪个地方/委托函数适合接收该 URL。我相信我应该在 SceneDelegate 或 AppDelegate 中实现该委托功能,并且我还应该手动使用 Storyboard 实现启动第一个视图控制器。这个应用程序窗口启动链(即从文件双击到视图控制器调用结束)对我来说非常困难。

有帮助文档或示例代码吗?谢谢你。

file-association swift mac-catalyst

5
推荐指数
0
解决办法
229
查看次数