使用 private API 'value(forKey: "view") as? UIView' 会被 App Store 拒绝吗
Will using private API 'value(forKey: "view") as? UIView' get App Store Rejection
我需要获取 tabBar 内 imageView 的框架以及 navigationBarButtonItem 的框架,使用:
let fifthTab = tabBarController?.tabBar.items?[4].value(forKey: "view") as? UIView { ... }
let barButtonItemView = self.navigationItem.rightBarButtonItem?.value(forKey: "view") as? UIView { ... }
在这两种情况下,我都成功地根据它们的框架设置了一些其他 UIView。我读到它们是私有 API,使用私有 API 会导致 AppStore 拒绝,但我发现在 SO 和 GitHub 之间有很多使用它们的示例。没有人确认这些在 AppStore 上线时是否会或不会导致拒绝。
有人可以确认使用这些 API 是否会导致拒绝?
这取决于苹果。但是基本不会被拒。 Apple 有一个特殊的私有 API 扫描仪来检测您是否使用敏感的 API。虽然 valueForKey 和 view 相当常见且合法 API,但扫描器很难将它们扫描出来。
我需要获取 tabBar 内 imageView 的框架以及 navigationBarButtonItem 的框架,使用:
let fifthTab = tabBarController?.tabBar.items?[4].value(forKey: "view") as? UIView { ... }
let barButtonItemView = self.navigationItem.rightBarButtonItem?.value(forKey: "view") as? UIView { ... }
在这两种情况下,我都成功地根据它们的框架设置了一些其他 UIView。我读到它们是私有 API,使用私有 API 会导致 AppStore 拒绝,但我发现在 SO 和 GitHub 之间有很多使用它们的示例。没有人确认这些在 AppStore 上线时是否会或不会导致拒绝。
有人可以确认使用这些 API 是否会导致拒绝?
这取决于苹果。但是基本不会被拒。 Apple 有一个特殊的私有 API 扫描仪来检测您是否使用敏感的 API。虽然 valueForKey 和 view 相当常见且合法 API,但扫描器很难将它们扫描出来。