在 App Store 上发布应用程序时出现问题 [非 public API 用法]
Problem when publishing an application on the App Store [Non-public API usage]
直到三周前,我的应用程序都可以毫无问题地上传到 App Store。但是,Apple 拒绝上传该应用程序,并附上一条关于非 public API 用法的新消息。
该应用程序是在 Visual Studio 中为 Mac 使用 Xamarin 开发的,并更新了所有库和包。有谁能够帮助我?因为我找不到问题所在,也看不到任何解决方案。会有新的东西吗?
谢谢大家
Non-public API usage:
The app references non-public selectors in AppAytoSS.iOS:
addTemporaryAttribute:value:forCharacterRange:,
addTemporaryAttributes:forCharacterRange:, behaviorWithType:,
defaultBaselineOffsetForFont:, defaultLineHeightForFont:, finished,
greekingThreshold, horizontalCornerRadius,
initWithSource:convolutionState:weights:, initWithType:,
postSession:didAddPlayer:, postSession:didReceiveData:fromPlayer:,
postSession:didReceiveMessage:withData:fromPlayer:,
postSession:didRemovePlayer:,
postSession:player:didChangeConnectionState:,
postSession:player:didSaveData:, preferredMetalContext, removeData:,
removeTemporaryAttribute:forCharacterRange:, setGreekingThreshold:,
setHorizontalCornerRadius:, setIsPrimary:, setShouldAntiAlias:, setUUID:,
setVerticalCornerRadius:, shouldAntiAlias,
temporaryAttribute:atCharacterIndex:effectiveRange:,
temporaryAttribute:atCharacterIndex:longestEffectiveRange:inRange:,
temporaryAttributesAtCharacterIndex:effectiveRange:,
temporaryAttributesAtCharacterIndex:longestEffectiveRange:inRange:,
textContainerChangedTextView:, toolTip, usesBackgroundSession,
verticalCornerRadius
我找到了一个帖子,最近有人遇到了与您相同的问题:build-status-has-changed-to-invalid-binary。
所以,我想您正在使用的某些第三方 nuget 包已经更新并使用了 Apple 不允许的这些非public 选择器。
我建议您在三周前获取代码并且不要更新任何第三方 nuget 包。然后再提交看看是不是问题
您还可以将您的参考资料与该线程中列出的参考资料进行比较,并找到相似的内容。以及与播放器相关的任何 nuget 包(我可以在非 public 选择器列表中看到一些播放器选择器)?
我们在 Xamarin iOS 项目中遇到了(完全)相同的问题,并且可以通过设置 Build/iOS Build/Linker 行为修复它:仅 Link 框架 SDK (在 Don't link 之前)- Jack Hua link 显示的解决方案。
虽然我们无法找出背后的问题。使用了两台不同的 MacBook,一台使用最新版本的 XCode、Visual Studio 和 Xamarin Libs,另一台使用稍旧的版本。后者能够在没有上述错误的情况下创建 IPA,更新后的机器则没有。
但是使用的 NugGet Packages 是一样的,所以我认为这个问题与它们无关。
在与 Xamarin 团队解决内部问题后,他们建议执行以下操作
adding --linksdkonly to the Additional mtouch arguments on the iOS Build settings page
As it seems that Visual Studio ignores the settings in GUI
我已经对其进行了测试,现在我的构建已被 Apple 接受,没有出现上述错误
这是在 Xamarin 上提交的问题
https://github.com/xamarin/xamarin-macios/issues/5913
直到三周前,我的应用程序都可以毫无问题地上传到 App Store。但是,Apple 拒绝上传该应用程序,并附上一条关于非 public API 用法的新消息。
该应用程序是在 Visual Studio 中为 Mac 使用 Xamarin 开发的,并更新了所有库和包。有谁能够帮助我?因为我找不到问题所在,也看不到任何解决方案。会有新的东西吗?
谢谢大家
Non-public API usage:
The app references non-public selectors in AppAytoSS.iOS:
addTemporaryAttribute:value:forCharacterRange:,
addTemporaryAttributes:forCharacterRange:, behaviorWithType:,
defaultBaselineOffsetForFont:, defaultLineHeightForFont:, finished,
greekingThreshold, horizontalCornerRadius,
initWithSource:convolutionState:weights:, initWithType:,
postSession:didAddPlayer:, postSession:didReceiveData:fromPlayer:,
postSession:didReceiveMessage:withData:fromPlayer:,
postSession:didRemovePlayer:,
postSession:player:didChangeConnectionState:,
postSession:player:didSaveData:, preferredMetalContext, removeData:,
removeTemporaryAttribute:forCharacterRange:, setGreekingThreshold:,
setHorizontalCornerRadius:, setIsPrimary:, setShouldAntiAlias:, setUUID:,
setVerticalCornerRadius:, shouldAntiAlias,
temporaryAttribute:atCharacterIndex:effectiveRange:,
temporaryAttribute:atCharacterIndex:longestEffectiveRange:inRange:,
temporaryAttributesAtCharacterIndex:effectiveRange:,
temporaryAttributesAtCharacterIndex:longestEffectiveRange:inRange:,
textContainerChangedTextView:, toolTip, usesBackgroundSession,
verticalCornerRadius
我找到了一个帖子,最近有人遇到了与您相同的问题:build-status-has-changed-to-invalid-binary。
所以,我想您正在使用的某些第三方 nuget 包已经更新并使用了 Apple 不允许的这些非public 选择器。
我建议您在三周前获取代码并且不要更新任何第三方 nuget 包。然后再提交看看是不是问题
您还可以将您的参考资料与该线程中列出的参考资料进行比较,并找到相似的内容。以及与播放器相关的任何 nuget 包(我可以在非 public 选择器列表中看到一些播放器选择器)?
我们在 Xamarin iOS 项目中遇到了(完全)相同的问题,并且可以通过设置 Build/iOS Build/Linker 行为修复它:仅 Link 框架 SDK (在 Don't link 之前)- Jack Hua link 显示的解决方案。
虽然我们无法找出背后的问题。使用了两台不同的 MacBook,一台使用最新版本的 XCode、Visual Studio 和 Xamarin Libs,另一台使用稍旧的版本。后者能够在没有上述错误的情况下创建 IPA,更新后的机器则没有。
但是使用的 NugGet Packages 是一样的,所以我认为这个问题与它们无关。
在与 Xamarin 团队解决内部问题后,他们建议执行以下操作
adding --linksdkonly to the Additional mtouch arguments on the iOS Build settings page
As it seems that Visual Studio ignores the settings in GUI
我已经对其进行了测试,现在我的构建已被 Apple 接受,没有出现上述错误
这是在 Xamarin 上提交的问题 https://github.com/xamarin/xamarin-macios/issues/5913