Мое приложение было отклонено Apple, потому что мое приложение каким-то образом использует частные API. Apple сказала, что мое приложение использует

Фреймворк: '/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation': CFHashBytes

Я не смог ничего найти в коде, поэтому я поискал stackoverflow и выяснил, что я могу использовать otool или строки.

Со строкой я нахожу два "хеш-вызова" (где бы они ни находились) и, используя nm, получаю следующий результат:

Нм Спортивный \ Архитектор | grep hash

0000000100077490 Т __TFO16Sporty_Architect12ActivityTypeg9hashValueSi 0000000100056240 Т __TFO16Sporty_Architect12RotationModeg9hashValueSi 0000000100064480 Т __TFO16Sporty_Architect13DraggedSliderg9hashValueSi 000000010003e3a0 Т __TFO16Sporty_Architect8FileTypeg9hashValueSi 000000010003d910 Т __TFO16Sporty_Architect9DateRangeg9hashValueSi 0000000100021360 Т __TFO16Sporty_Architect9ModelModeg9hashValueSi U __TFSig9hashValueSi 00000001000777b0 Т __TTWO16Sporty_Architect12ActivityTypes8HashableS_FS1_g9hashValueSi 00000001000562e0 Т __TTWO16Sporty_Architect12RotationModes8HashableS_FS1_g9hashValueSi 0000000100064500 Т __TTWO16Sporty_Architect13DraggedSliders8HashableS_FS1_g9hashValueSi 000000010003e9d0 Т __TTWO16Sporty_Architect8FileTypes8HashableS_FS1_g9hashValueSi 000000010003e080 Т __TTWO16Sporty_Architect9DateRanges8HashableS_FS1_g9hashValueSi 0000000100021500 Т __TTWO16Sporty_Architect9ModelModes8HashableS_FS1_g9hashValueSi

Я думаю, что это U __TFSig9hashValueSi, не так ли? Но теперь вопрос ... как я могу сузить круг вопросов?

Я не понимаю, почему Apple предлагает кнопку проверки, которая показывает, что все в порядке, и как только приложение находится на рассмотрении, оно отклоняется из-за чего-то, что явно может быть обнаружено во время компиляции (или, по крайней мере, когда оно отправлено).

0
inexcitus 9 Янв 2017 в 18:37

1 ответ

Лучший ответ

Если вы не используете внешний API или фреймворк, CFHashBytes присутствует только в фреймворке Swift.

У меня была эта проблема с двумя приложениями. Я отправил это сообщение в Центр разрешения проблем, и теперь оба одобрены:

"Привет,

Думаю, что тут ошибка. Единственный файл, содержащий этот непубличный API, - это libswiftFoundation.dylib, фреймворк, используемый в Swift Apps. Xcode использует его автоматически. Пожалуйста, проверьте это еще раз.

Большое спасибо."

Я надеюсь, это поможет вам.

2
MacGyver 10 Янв 2017 в 13:39
Здравствуйте, спасибо за ответ. Я увидел, что у меня есть метод, который использует те же (и дополнительный параметр) параметры, что и метод CFHasBytes. Мртод назывался getBytes (bytes: length: index :). Я понимаю, почему автоматизированный тест не удался. Я переименовал метод и отправлю снова, если он снова не удастся, я добавлю ваш комментарий. Спасибо.
 – 
inexcitus
10 Янв 2017 в 13:44