Обнаружение использования частных API - PullRequest
10 голосов
/ 16 ноября 2009

Мне отказывают в App Store за использование личных переменных экземпляра в моем приложении. Скорее всего, я не использую ивары, которые я использую в своем коде, но я использую одну или две статические библиотеки от сторонних разработчиков. Как бы я проверил, могут ли они быть правонарушителями?

Обновление:

Apple обвиняет меня (и сторонние библиотеки) в использовании частных переменных экземпляра в классе UITouch, включая

  • _locationInWindow
  • _tapCount
  • _previousLocationInWindow
  • _timestamp
  • _touchFlags
  • _phase
  • _window

Ответы [ 4 ]

10 голосов
/ 16 ноября 2009

Я ничего не знаю об обнаружении проблемы, но мы столкнулись с этой проблемой недавно; в нашем случае это было вызвано библиотекой Three20. Если вы используете его, см. http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/2375e7a158ee9d1b для обсуждения / возможных решений.

5 голосов
/ 16 ноября 2009

Вы можете использовать nm для сканирования, для какой библиотеки используется ivar, о котором идет речь.

% nm static_lib.a | grep name_of_ivar

Если вы получите строку, я думаю, с большой буквы U, с именем ivar у вас, вероятно, подозреваемый.

1 голос
/ 16 ноября 2009

Я использую одну или две статические библиотеки от третьих лиц

Свяжитесь с третьими лицами, запрашивая объяснение, они написали код, они должны знать, что там. У них может быть форум или раздел комментариев, где другие пользователи, возможно, уже высказали эти опасения, и вы можете искать ответы и альтернативы.

0 голосов
/ 06 ноября 2017

Для тех, у кого много сторонних библиотек, можете проверить ваш проект таким образом в пути к вашему проекту, например, если вы хотите найти GraphicsService:

$ find . |grep "\\.a" | xargs grep GraphicsService
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...