在 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