由于 SKOverlay.AppConfiguration,Apple 硅 Mac 支持问题

Posted

技术标签:

【中文标题】由于 SKOverlay.AppConfiguration,Apple 硅 Mac 支持问题【英文标题】:Apple silicon Macs support issue because of SKOverlay.AppConfiguration 【发布时间】:2021-02-22 05:11:58 【问题描述】:

我的应用使用appStoreOverlay显示推荐应用,但提交到应用商店时出错。

ITMS-90863: Apple silicon Macs support issue - The app uses symbols that are not present on Mac:
/System/Library/Frameworks/_StoreKit_SwiftUI.framework/_StoreKit_SwiftUI
_$s7SwiftUI4ViewP010_StoreKit_aB0F03appD7Overlay11isPresented13configurationQrAB7BindingVySbG_So22SKOverlayConfigurationCyctRQOMQ

我认为 SKOverlay.AppConfiguration 不存在于硅 Mac 上。根据'Building a Universal macOS Binary',我添加了一些宏并且代码仅在ios中运行,但错误仍然存​​在。有什么建议吗?

#if !targetEnvironment(macCatalyst) && os(iOS)
Button(action:  showRecommendedApp.toggle() )  Text("App recommended".localized)  
    .appStoreOverlay(isPresented: $showRecommendedApp) 
        SKOverlay.AppConfiguration(appIdentifier: "12345", position: .bottom)
    
#endif

【问题讨论】:

【参考方案1】:

M1 Mac 可以直接运行 iOS 二进制文件,它们不需要 Mac Catalyst 构建。

您不能在编译时使用 #if 来测试 M1,因为它是在 iOS 和 M1 Mac 上运行的相同二进制文件。

您可以使用isiOSAppOnMac 的运行时检查。

if !ProcessInfo.processInfo.isiOSAppOnMac 
    Button ...

您仍然会收到警告,但您知道它会在运行时得到正确处理。

【讨论】:

如果警告仍然存在,应用程序将不会出现在 mac 应用商店中(连接价格),对吗?如果是,如何解决? 我相信警告就是这样 - 警告事情可能无法在 Mac 上正常工作。我不认为它会阻止该应用出现在 Mac 应用商店中 我不知道,我没有硅 mac 来测试它。但这是连接网站价格部分的事实。 不要认为这会起作用。 ProcessInfo.processInfo.isiOSAppOnMac 是运行时,但程序在 Xcode 上构建/运行时已经崩溃。需要一些东西来过滤掉这些。

以上是关于由于 SKOverlay.AppConfiguration,Apple 硅 Mac 支持问题的主要内容,如果未能解决你的问题,请参考以下文章

由于目标计算机积极拒绝,无法连接。

我在Android Studio工作,由于系统崩溃,一个或多个功能由于频繁的系统崩溃而崩溃。我应该如何恢复它?

SQL Server 服务由于登录失败而无法启动怎么办

Fiddler由于目标计算机积极拒绝,无法连接的解决方法

为啥我收到“由于保护级别而无法访问”错误?

SVN 由于目标机器积极拒绝,无法连接