2009-11-16 2 views
10

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

Update:

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

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

Как насчет замены LIBS третьей стороны не нарушать окурки и проверить, не сработает ли он? –

+1

Я не хочу проходить 2 цикла обзора, если я могу сделать это в одном – nduplessis

ответ

10

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

+0

Я действительно использую Three20, похоже, что это решит мою проблему. Огромное спасибо – nduplessis

1

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

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

+0

Я сделал оба, продавец отрицает использование частных API, и я не нашел никаких подобных жалоб, но я бы все еще хотел бы знать наверняка – nduplessis

5

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

% nm static_lib.a | grep name_of_ivar 

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

+0

Точно, что я ищу, даст ему удар. Спасибо – nduplessis

+0

ОК, поэтому я запустил nm -a static_lib.a, и похоже, что он не показывает никаких вызовов сообщений для классов UIKit, он показывает только что-то вроде этого: U .objc_class_name_NSCharacterSet – nduplessis

+0

Я прочитал ваше обновление. Эти вары можно получить прямолинейным способом, делая их смещениями, известными компиляторам ... поэтому я думаю, вы должны сосредоточиться на том, какие части используют UITouch. т.е. кто использует/определяет касанияBegin:/touchesMove:/touchesEnd: – epatel

0

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

$ find . |grep "\\.a" | xargs grep GraphicsService 
Смежные вопросы