到底什么是私有API,为什么苹果会拒绝使用私有API?

问题描述 投票:0回答:1

我读过几篇关于此的文章,我只是想看看我是否理解正确:

如果您使用私有 API,Apple 将拒绝您的应用程序...

  1. “私有 API”和“非私有 API”之间的主要区别是什么?

  2. “非私有”API 是否只是 Apple 提供并验证的 API?

  3. API 不只是与框架交互的一种方式,而框架只是一组封装的类/标头,人们可以将其用于一些琐碎的目的吗?

  4. 这是否意味着我根本无法在我的应用程序中重用任何人的代码(Apple 除外)?

  5. 如果这是真的,那么每当程序员创建自己的自定义类和方法时,他在技术上不就是为了自己的特定目的而设计了一个迷你框架吗?那么这是否意味着他正在使用自己的私有 API?

  6. 使用别人的类/方法和我的类/方法有什么区别,他们怎么能区分出区别,为什么这会成为问题?

我对此的理解听起来很荒谬,并且不相信我正确理解了什么是“私有 API”。我确实读到它是为了防止 API 中发生任何可能导致应用程序功能障碍的更改。这是否意味着 API 在运行时(而不是编译时)期间链接,并且可以在您不知情的情况下自动更新? (看,我最初认为 API/框架在编译时就已经是一成不变的,也许这就是我错的地方)

有人可以帮我吗?我对这个政策真的很困惑。

ios frameworks iphone-privateapi
1个回答
53
投票

问。 “私有 API”和“非私有 API”之间的主要区别是什么?

  • 私有是指未公开定义的(没有太多内容)

问。 “非私有”API 仅仅是 Apple 提供并验证的 API 吗?

  • 私有和公共 API 均由 Apple“提供”,但仅提供公共 API 供您使用。
  • 私有 API 仅供 Apple 使用

问。 API 不只是与框架交互的一种方式,而框架只是一组封装的类/标头,人们可以将其用于一些琐碎的目的吗?

  • 是的

问。 这是否意味着我根本无法在我的应用程序中重用任何人的代码(Apple 除外)?

  • 没有

问。 如果这是真的,那么每当程序员制作自己的自定义类和方法时,他在技术上不就是为了自己的特定目的而设计了一个迷你框架吗?那么这是否意味着他正在使用自己的私有API?

  • 否(框架与应用程序不同)

问。 使用别人的类/方法和我的类/方法有什么区别,他们怎么能区分出区别,为什么这会成为问题?

  • 通常不会

您需要明白的一点是,当提到私有 API 时,您应该只考虑 Apple 提供的私有 API。
来自第 3 方的其他 API 是不同的(只要第 3 方代码不使用 Apple 私有 API,Apple 并不关心)。

© www.soinside.com 2019 - 2024. All rights reserved.