首页 > 解决方案 > 非公共 API 使用

问题描述

我想使用被应用商店连接拒绝的 Webview 上传 iOS 应用。

该应用程序引用了 myapp.iOS 中的非公共选择器: applicationWillTerminate, setOrientation:animated:, terminateWithSuccess. 如果源代码中的方法名称与上面列出的私有 Apple API 匹配。

如何解决这个问题?

标签: iosapixamarin.forms

解决方案


看起来您已为您的应用启用了测试云。

Test Cloud 使用 Calabash 程序集。

Calabash 程序集使用非公开的 Apple API,这将导致应用程序被 App Store 拒绝。但是,如果未从代码中显式引用 Calabash 程序集,Xamarin.iOS 链接器将从最终 IPA 中删除它。

Xamarin.Calabash.Start() 应包含在 AppDelegate.FinishedLaunching 中,例如:

#if ENABLE_TEST_CLOUD
// requires Xamarin Test Cloud Agent
Xamarin.Calabash.Start();
#endif

...将 ENABLE_TEST_CLOUD 变量作为编译器变量包含在内,调试构建但不发布。这将导致 Calabash 程序集从发布版本的应用程序包中删除。

或者,如果您不需要它,只需完全删除 Test Cloud。

iOS 应用程序项目下的说明: https ://docs.microsoft.com/en-us/xamarin/xamarin-forms/deploy-test/uitest-and-test-cloud?tabs=vswin#adding-uitest-support-to -xamarinforms-apps


推荐阅读