2

直到三周前,我的应用程序可以毫无问题地将其上传到 App Store。但是,Apple 拒绝上传该应用程序并附上有关非公开 API 使用的新消息。

该应用程序是在 Visual Studio for 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
4

3 回答 3

2

我们在 Xamarin iOS 项目中遇到了(完全相同的)问题,并且可以通过设置构建/iOS 构建/链接器行为来修复它:仅链接框架 SDK(在不链接之前)- Jack Hua 链接显示为解决方案。

虽然我们无法弄清楚背后的问题。使用了两种不同的 MacBook,一种使用最新版本的 XCode、Visual Studio 和 Xamarin Libs,另一种使用稍旧的版本。后者能够在没有上述错误的情况下创建 IPA,而更新的机器则不能。

但是使用的 NugGet 包是一样的,所以我认为这个问题与它们无关。

于 2019-04-12T16:11:09.687 回答
1

在向 Xamarin 团队填写内部问题后,他们建议执行以下操作

--linksdkonly添加到 iOS 构建设置页面上的 Additional mtouch 参数
似乎Visual Studio忽略了 GUI 中的设置

我已经对其进行了测试,现在让我的构建被 Apple 接受,没有上述错误

这是在 Xamarin https://github.com/xamarin/xamarin-macios/issues/5913上提交的问题

于 2019-04-18T01:35:20.800 回答
0

我找到了一个线程,人们最近遇到了同样的问题:build-status-has-changed-to-invalid-binary

所以,我猜你正在使用的一些第三方 nuget 包已经更新并使用了 Apple 不允许的这些非公共选择器。

我建议您在三周前获取代码,并且不要更新任何第三方 nuget 包。然后再次提交检查是否有问题。

您还可以将您的参考与该线程中列出的参考人员进行比较,并找到类似的内容。以及任何与播放器相关的 nuget 包(我可以在非公共选择器列表中看到一些播放器选择器)?

于 2019-04-12T02:15:06.690 回答