Что может вызывать "недействительный двоичный файл" без последующего обновления по электронной почте от iTunes Connect?

Я пытаюсь отправить обновление существующего приложения от имени одного из моих клиентов, и я получаю сбои "Invalid Binary" из iTunes Connect без объяснения ошибки. Завтра я уезжаю на двухнедельный отпуск без доступа к сети, поэтому я немного отчаянно нуждаюсь в решении. Любые идеи с благодарностью.

Это обновление изменяет название приложения и исправляет несколько незначительных ошибок. Я делал предыдущие заявки через iTunes Connect, но я отправляю это обновление через XCode, как того требует Apple.

Я установил себя в качестве технического контакта для этого клиента, поэтому я получаю уведомление, когда я переводю новую версию в состояние "Ожидание загрузки" через iTunes Connect. Когда я затем проверяю двоичный файл через органайзер Xcode, инструмент в конце концов сообщает, что двоичный файл действителен. Когда я отправляю двоичный файл через органайзер Xcode, он в конечном итоге возвращается и сообщает, что двоичный файл успешно загружен. Оба эти шага занимают некоторое время (может быть, 15 минут каждый), вероятно, потому что пакет приложений составляет 63 мегабайта с тысячами ресурсов.

В течение следующего часа или двух портал iTunes Connect по-прежнему сообщает, что приложение находится в состоянии "Ожидание загрузки". Я полагаю, что некоторая задержка является нормальной между временем, когда загрузка завершается в XCode, и когда состояние изменяется в iTunes Connect. Эти часы задержки кажутся чрезмерными, но я полагаю, что это не совсем удивительно, учитывая размер приложения.

В конце концов, состояние просто тихо меняется на "Invalid Binary" в iTunes connect. Я понимаю, что iTunes Connect должен отправить электронное письмо с объяснением ошибки, когда это происходит, но я ничего не получаю, как и мой клиент. (Я предполагаю, что это должно идти всем пользователям, отмеченным для уведомления об изменениях состояния приложения в iTunes Connect. Это предположение правильно?)

Вот параметры сборки, скопированные и вставленные из моей конфигурации App Store Distribution:

ADDITIONAL_SDKS = 
ARCHS = $(ARCHS_STANDARD_32_BIT)
SDKROOT = iphoneos4.0
ONLY_ACTIVE_ARCH = YES
VALID_ARCHS = armv6 armv7
SYMROOT = /Users/cduhn/Documents/workspace/xcode_build_output
OBJROOT = $(SYMROOT)
CONFIGURATION_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
CONFIGURATION_TEMP_DIR = $(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
SHARED_PRECOMPS_DIR = $(CACHE_ROOT)/SharedPrecompiledHeaders
BUILD_VARIANTS = normal
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
ENABLE_OPENMP_SUPPORT = NO
GENERATE_PROFILING_CODE = NO
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES
RUN_CLANG_STATIC_ANALYZER = NO
SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = NO
VALIDATE_PRODUCT = NO
CODE_SIGN_ENTITLEMENTS = Entitlements.plist
CODE_SIGN_IDENTITY = 
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution: Capturing Moments
CODE_SIGN_RESOURCE_RULES_PATH = 
OTHER_CODE_SIGN_FLAGS = 
STRIPFLAGS = 
ALTERNATE_GROUP = $(INSTALL_GROUP)
ALTERNATE_OWNER = $(INSTALL_OWNER)
ALTERNATE_MODE = $(INSTALL_MODE_FLAG)
ALTERNATE_PERMISSIONS_FILES = 
DEPLOYMENT_LOCATION = NO
DEPLOYMENT_POSTPROCESSING = NO
INSTALL_GROUP = $(GROUP)
INSTALL_OWNER = $(USER)
INSTALL_MODE_FLAG = u+w,go-w,a+rX
DSTROOT = /tmp/$(PROJECT_NAME).dst
INSTALL_PATH = $(HOME)/Applications
MACOSX_DEPLOYMENT_TARGET = $(inherited)
SKIP_INSTALL = YES
COPY_PHASE_STRIP = YES
STRIP_INSTALLED_PRODUCT = 
STRIP_STYLE = all
TARGETED_DEVICE_FAMILY = 1
SEPARATE_STRIP = NO
IPHONEOS_DEPLOYMENT_TARGET = 3.0
MODULE_NAME = 
MODULE_START = 
MODULE_STOP = 
MODULE_VERSION = 
BUNDLE_LOADER = 
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic
DYLIB_COMPATIBILITY_VERSION = 
DYLIB_CURRENT_VERSION = 
LINKER_DISPLAYS_MANGLED_NAMES = NO
PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO
LD_DYLIB_INSTALL_NAME = 
EXPORTED_SYMBOLS_FILE = 
INIT_ROUTINE = 
LINK_WITH_STANDARD_LIBRARIES = YES
MACH_O_TYPE = mh_execute
LD_OPENMP_FLAGS = -fopenmp
ORDER_FILE = 
OTHER_LDFLAGS = -all_load -ObjC
LD_MAP_FILE_PATH = $(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt
GENERATE_MASTER_OBJECT_FILE = NO
PREBINDING = NO
PRELINK_LIBS = 
KEEP_PRIVATE_EXTERNS = NO
LD_RUNPATH_SEARCH_PATHS = 
SEPARATE_SYMBOL_EDIT = NO
PRELINK_FLAGS = 
SECTORDER_FLAGS = 
UNEXPORTED_SYMBOLS_FILE = 
WARNING_LDFLAGS = 
LD_GENERATE_MAP_FILE = NO
COMPRESS_PNG_FILES = YES
APPLY_RULES_IN_COPY_FILES = NO
EXECUTABLE_EXTENSION = 
EXECUTABLE_PREFIX = 
INFOPLIST_EXPAND_BUILD_SETTINGS = YES
GENERATE_PKGINFO_FILE = YES
FRAMEWORK_VERSION = A
INFOPLIST_FILE = iRevealMaui-Info.plist
INFOPLIST_OTHER_PREPROCESSOR_FLAGS = 
INFOPLIST_OUTPUT_FORMAT = binary
INFOPLIST_PREPROCESSOR_DEFINITIONS = 
INFOPLIST_PREFIX_HEADER = 
INFOPLIST_PREPROCESS = NO
COPYING_PRESERVES_HFS_DATA = NO
PRIVATE_HEADERS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/PrivateHeaders
PRODUCT_NAME = iRevealMaui
PLIST_FILE_OUTPUT_FORMAT = binary
PUBLIC_HEADERS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/Headers
STRINGS_FILE_OUTPUT_ENCODING = binary
WRAPPER_EXTENSION = app
ALWAYS_SEARCH_USER_PATHS = NO
FRAMEWORK_SEARCH_PATHS = 
HEADER_SEARCH_PATHS = ${SDKROOT}/usr/include/libxml2/** ../three20/Build/Products/three20
LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/../desiccant/Classes/External/google-analytics"
REZ_SEARCH_PATHS = 
EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = *.nib *.lproj *.framework *.gch (*) CVS .svn *.xcodeproj *.xcode *.pbproj *.pbxproj
INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = 
OTHER_TEST_FLAGS = 
TEST_HOST = 
TEST_RIG = 
CURRENT_PROJECT_VERSION = 
VERSION_INFO_FILE = $(PRODUCT_NAME)_vers.c
VERSION_INFO_EXPORT_DECL = 
VERSION_INFO_PREFIX = 
VERSION_INFO_SUFFIX = 
VERSIONING_SYSTEM = 
VERSION_INFO_BUILDER = $(USER)
GCC_FAST_OBJC_DISPATCH = YES
GCC_AUTO_VECTORIZATION = NO
GCC_OBJC_CALL_CXX_CDTORS = YES
GCC_ENABLE_SSE3_EXTENSIONS = NO
GCC_ENABLE_SSE41_EXTENSIONS = NO
GCC_ENABLE_SSE42_EXTENSIONS = NO
GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = NO
GCC_STRICT_ALIASING = NO
GCC_FEEDBACK_DIRECTED_OPTIMIZATION = Off
GCC_ENABLE_FIX_AND_CONTINUE = NO
GCC_GENERATE_DEBUGGING_SYMBOLS = YES
GCC_DYNAMIC_NO_PIC = YES
GCC_GENERATE_TEST_COVERAGE_FILES = NO
GCC_INLINES_ARE_PRIVATE_EXTERN = YES
GCC_MODEL_TUNING = G4
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
GCC_ENABLE_KERNEL_DEVELOPMENT = NO
GCC_DEBUGGING_SYMBOLS = default
GCC_REUSE_STRINGS = YES
GCC_NO_COMMON_BLOCKS = NO
GCC_ENABLE_OBJC_GC = unsupported
GCC_OPTIMIZATION_LEVEL = s
GCC_FAST_MATH = NO
GCC_ENABLE_SYMBOL_SEPARATION = YES
GCC_THREADSAFE_STATICS = YES
GCC_SYMBOLS_PRIVATE_EXTERN = YES
GCC_UNROLL_LOOPS = NO
GCC_MODEL_PPC64 = NO
GCC_CHAR_IS_UNSIGNED_CHAR = NO
GCC_ENABLE_ASM_KEYWORD = YES
GCC_C_LANGUAGE_STANDARD = c99
GCC_CHECK_RETURN_VALUE_OF_OPERATOR_NEW = NO
GCC_CW_ASM_SYNTAX = YES
GCC_INPUT_FILETYPE = automatic
GCC_ALTIVEC_EXTENSIONS = NO
GCC_ENABLE_CPP_EXCEPTIONS = YES
GCC_ENABLE_CPP_RTTI = YES
GCC_LINK_WITH_DYNAMIC_LIBRARIES = YES
GCC_ENABLE_OBJC_EXCEPTIONS = YES
GCC_ENABLE_TRIGRAPHS = NO
GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS = NO
GCC_USE_INDIRECT_FUNCTION_CALLS = NO
GCC_USE_REGISTER_FUNCTION_CALLS = NO
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = NO
OTHER_CPLUSPLUSFLAGS = $(OTHER_CFLAGS)
GCC_PRECOMPILE_PREFIX_HEADER = YES
GCC_PREFIX_HEADER = iRevealMaui_Prefix.pch
GCC_ENABLE_BUILTIN_FUNCTIONS = YES
GCC_ENABLE_PASCAL_STRINGS = YES
GCC_FORCE_CPU_SUBTYPE_ALL = NO
GCC_SHORT_ENUMS = NO
GCC_ONE_BYTE_BOOL = NO
GCC_USE_STANDARD_INCLUDE_SEARCHING = YES
GCC_PREPROCESSOR_DEFINITIONS = 
GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = 
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO
GCC_WARN_ABOUT_GLOBAL_CONSTRUCTORS = NO
GCC_WARN_SHADOW = NO
GCC_WARN_64_TO_32_BIT_CONVERSION = NO
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES
GCC_WARN_INHIBIT_ALL_WARNINGS = NO
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = NO
GCC_WARN_ABOUT_RETURN_TYPE = YES
GCC_WARN_MISSING_PARENTHESES = NO
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO
GCC_WARN_ABOUT_MISSING_NEWLINE = NO
GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO
WARNING_CFLAGS = 
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO
GCC_WARN_PEDANTIC = NO
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES
GCC_WARN_PROTOTYPE_CONVERSION = NO
GCC_WARN_SIGN_COMPARE = NO
GCC_WARN_STRICT_SELECTOR_MATCH = NO
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO
GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = NO
GCC_TREAT_WARNINGS_AS_ERRORS = NO
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES
GCC_WARN_UNDECLARED_SELECTOR = NO
GCC_WARN_UNINITIALIZED_AUTOS = NO
GCC_WARN_UNKNOWN_PRAGMAS = NO
GCC_WARN_UNUSED_FUNCTION = NO
GCC_WARN_UNUSED_LABEL = NO
GCC_WARN_UNUSED_PARAMETER = NO
GCC_WARN_UNUSED_VALUE = NO
GCC_WARN_UNUSED_VARIABLE = YES
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
IBC_FLATTEN_NIBS = YES
IBC_OTHER_FLAGS = 
IBC_PLUGIN_SEARCH_PATHS = 
IBC_PLUGINS = 
IBC_ERRORS = YES
IBC_NOTICES = YES
IBC_WARNINGS = YES

Вот содержимое моего Info.plist:

Любые идеи с благодарностью.

РЕДАКТИРОВАТЬ - объяснил очевидное время изменения статуса

Судя по моей истории статусов, кажется, что статус "Invalid Binary" фактически устанавливается в течение нескольких минут, но iTunes Connect скрывает этот факт с помощью плохо разработанной стратегии кэширования.

Чтобы отслеживать изменения в состоянии, я обновлял и нажимал между четырьмя страницами: "Управление приложениями", страница "Информация о приложении", "Просмотр сведений" и "История состояния". Когда наконец обновляется история состояний, это показывает, что приложение перешло в состояние "Недопустимый двоичный код" примерно за час до этого.

В качестве эксперимента я попытался изменить свой идентификатор приложения и отправить двоичный файл в качестве нового приложения. На этот раз я нажал на страницу "Подробности" через несколько минут после отправки двоичного файла. Его статус показывал "Загрузить получено". Видимый прогресс! Пару минут спустя я щелкнул в "Истории состояния", и она показала "Недопустимый двоичный файл" всего через несколько минут после завершения загрузки. Затем я вернулся и обновил страницу "Просмотр деталей". Он по-прежнему показывает "Upload Received", несмотря на то, что в истории состояния отображается "Invalid Binary". Это довольно четкое свидетельство того, что все эти страницы кэшируются и показывают устаревшие данные в течение длительных периодов времени. Я понял это только тогда, когда повторно отправил бинарный файл как новое приложение, потому что я загружал страницы для этого приложения в первый раз.

Это не решает мою проблему "Invalid Binary" и не объясняет, почему я не получаю никаких писем, но помогает исключить некоторые гипотезы.

Ответ 1

Спасибо всем, кто предложил решения. Как оказалось, ни одно из ваших предложений не помогло в моем случае, но я решил проблему. Вот то, что сработало для меня:

Удалить Entitlements.plist из вашего проекта. Затем добавьте Add → New File и снова добавьте Entitlements.plist.

Формат файла Entitlements.plist изменен между SDK 3.1.3 и 3.2. Если ваш Entitlements.plist был создан с SDK раньше 3.2, и теперь вы пытаетесь обновить свое приложение с помощью SDK 3.2 или выше, кажется, что вам нужно удалить Entitlements.plist и повторно добавить его с использованием нового формата, В противном случае Apple отклонит ваше обновление как "Invalid Binary".

Ответ 2

после 16 часов бесконтактного исследования и ошибки, и headbanging Я нашел решение на форуме разработчиков Apple.

По-видимому, есть ошибка, позволяющая вашему двоичному файлу проходить проверку и загрузку, но затем отклоняться системой iTunes Connect. И вы не получите ни одного письма, объясняющего вам, что произошло!

Если ваше приложение предназначено для iPhone и iPad, у вас, вероятно, есть что-то подобное в файле Info.plist:

screenshot before

Вы должны полностью удалить параметр CFBundleIconFiles~ipad и включить значок iPad в массив Icons files, а не здесь:

screenshot after fix

Что все люди!

Сообщите мне, помогло ли вам это!

Ответ 3

У меня была ошибка INVALID BINARY от iTunes Connect, даже если Application Loader принял мой двоичный файл. Решение было очень простым...

Откройте ваш info.plist, щелкните правой кнопкой мыши и выберите Показать исходный ключ/значения:

  • CFBundleIconFile= Icon.png(значок моего iPhone 57x57 PNG)
  • CFBundleIconFile ~ ipad= Icon-72.png(значок иконки для ipad 72x72 PNG)
  • CFBundleIconFiles= массив
    • Пункт 0= Icon.png
    • Пункт 1= [email protected](значок iPhone 4 114x114 PNG)
    • Пункт 2= Icon-72.png

Сохранить, очистить все цели, собрать и проанализировать, сжать в Finder и повторно отправить!

Ошибка была вызвана тем, что я набрал ключ "Файлы значков". В представлении "Raw" это отобразилось в "Файлы значков" вместо CFBundleIconFiles. У меня Xcode 3.2.3, я думаю, что Xcode 3.2.4 лучше отображает этот ключевой идентификатор.

Удачи всем!

Источник: Технический Q & A QA1686: Иконки приложений на iPad и iPhone

Ответ 4

У меня была такая же проблема в течение нескольких дней. Кажется, что эта ошибка может быть вызвана множеством различных проблем, так что стыдно, что Apple не разрабатывает эту ошибку с помощью электронной почты.

Для меня решение заключалось в том, чтобы вообще не использовать "Application Loader"!

Вместо этого сделайте следующее в Xcode:

  • Выберите свое приложение в разделе "Сборка" > "Сборка и архивирование"
  • Как только это будет завершено, откройте "Окно" > "Органайзер"
  • Выберите приложение в разделе "Архивированные приложения"
  • Нажмите "Validate"
  • Если проверка достоверна (как моя):
  • нажмите "Отправить".

Затем будет отправлено приложение в apple. Для меня через несколько секунд статус был изменен на "Ожидание обзора", а не "Недействительный двоичный файл".

Ответ 5

В XCode нажмите на название своего приложения с левой стороны и перейдите на вкладку настроек сборки справа. Прокрутите вниз до "Идентификация кодовой подписи" → "Отпустить"

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

Ответ 6

Используйте инструменты сборки и архива в Xcode, как описано в другом ответе здесь.

По какой-то причине инструмент архива вызвал что-то в Apple, чтобы отправить электронное письмо, в котором сообщается, что было на самом деле неправильно (поврежденный файл PNG).

Моя проблема? Xcode повреждает некоторые файлы PNG, когда он сжимает их. Перейдите в раздел "Настройки сборки", просмотрите раздел "Упаковка" и установите "Сжать файлы PNG" на "Нет".

Ответ 7

В настоящее время (8 мая 2013 г.) эта ошибка возникает, если вы получаете доступ к UDUD в своем приложении. MKStoreKit (популярная библиотека с открытым исходным кодом), и именно это и вызывало это для меня. Найдите следующий ниже метод в своих файлах (предполагая, что это не в предварительно скомпилированном двоичном файле, и в этом случае отправляйте google независимо от того, что у вас есть, и проверьте их примечания к выпуску)

[UIDevice currentDevice].uniqueIdentifier

Ответ 8

Ни один из ответов здесь не помог мне. Я использую Cocoapods в своем проекте. По какой-то причине настройки проекта Cocoapods Base SDK и поддерживаемые платформы были установлены в OSX. (Версия Cocoapods: 0,37.2) Я переключил его на iOS, и это сработало. My Cocoapods Project Settings

Ответ 9

Это может быть проблема следующего, полученная после отправки автоматическим ответом от iTunesConnect:

Отсутствие права на уведомление о передаче Push - ваше приложение регистрируется в службе уведомлений Apple Push Notification, но права на подпись приложения не включают требуемое право доступа "aps-environment". Убедитесь, что вы включили Push Notification Services для этого приложения и загрузили профиль распределения, который включает в себя право доступа "aps-environment".

После исправления проблемы вернитесь на страницу сведений о версии приложения в модуле iTunes Connect Manage Your Applications и нажмите кнопку "Готово для отправки двоичных файлов". Это приведет вас через поток бинарных представлений и вернет статус вашей версии приложения "Ожидание загрузки". Затем вы можете использовать Application Loader для загрузки своего нового двоичного файла. Если с вашим представлением обнаружены какие-либо другие проблемы, с вами свяжутся.

Ответ 10

У меня была такая же проблема, и она, по-видимому, была привязана к размеру начального экрана Default, поставляемого с приложением.

Я отправлял 1024x768 изображение по умолчанию, но я нашел в этой статье:

http://weston-fl.com/blog/?p=840/

Чтобы оно было 1024x748 (для пейзажа по умолчанию) и мне кажется, что это сработало: iTunesconnect взял его после этого.

Ответ 11

Это может быть проблема, связанная с конфиденциальностью в iOS 10. Это требует от разработчиков добавления описания при использовании данных конфиденциальности пользователей, таких как "Open Photo Library", "Open Camera", "Access Calendar"... и так далее.

Пожалуйста, проверьте, чтобы каждая часть ваших кодов включала сторонние фреймворки, чтобы узнать, есть ли у нее некоторые проблемы с конфиденциальностью. Затем добавьте описание в файл Info.plist. Я решил это таким образом ^ _ ^ введите описание изображения здесь

Ответ 12

Хитрость значка IPad работает.

Удалите CFBundledIconFiles ~ ipad и добавьте значок 72x72 в значок файла значков

Остерегайтесь скриншотов, этот метод иногда создает ошибку "Отсутствующие скриншоты"

Ответ 13

Я уже давно борюсь с той же проблемой. Сегодня утром я обнаружил, что у агента команды были отключены все уведомления, поэтому я включил их и, наконец, начал получать сообщения об изменении состояния, когда приложение изменилось на "Ожидание загрузки", но ничего не изменилось, когда состояние изменилось на "Binary Invalid". После нескольких попыток я наконец получил обновление приложения в состоянии "Ожидание для просмотра". Для меня это решило изменить ценность "iPhone OS Deployment Target" в настройках целевой установки с iPhone OS 2.2.1 (настройка для оригинального приложения) на iPhone OS 3.0.

Ответ 14

У меня была эта проблема. моя проблема оказалась для установки цели развертывания на что-то менее 3.2, но при этом архитектура все еще настроена на "оптимизированную для armv7". это использует xcode 3.2.3. последнее значение должно быть изменено на "standard (armv6 и armv7)". когда я построил мое приложение для разработки, мне пришлось его изменить, потому что xcode жаловался, когда я пытался запустить приложение на более раннем itouch, но с дистрибутивой сборки нет устройства для запуска (если только вы не проверите с помощью ad hoc first), поэтому вы не заметите проблему до тех пор, пока itunes connect не отклонит двоичный файл.

Ответ 15

У меня та же проблема. Сначала я попробовал права, так как казалось, что это соответствует моей ситуации.

Мальчик, они разные: OLD:

<plist version="1.0">
<dict>
    <key>get-task-allow</key>
    <false/>
</dict>

Новый... (xcode 3.2.5, 4.2 target и min iOS)

<plist version="1.0">
<dict>
    <!--- Required entitlements (in most cases shouldn't be changed) --->
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>

<!--- Custom entitlements below --->


</dict>
</plist>

Ответ 16

Я боролся с этим полдня. Даже попробовал переустановить xcode. Для меня ответ возвращался на портал инициализации в itunes connect и отменял мой сертификат, а затем создавал новый. Затем создадим новый профиль распределения ресурсов, а затем перестраиваем и повторно отправляем. Какая длинная недокументированная боль в шее.

Ответ 17

В моем случае я создал профили подготовки с использованием другой CSR и не использовал исходную CSR, которая была создана в первый раз для доступа к порталу подготовки ресурсов. Подписание кода и отправка приложений с профилями подготовки, сгенерированными исходной CSR, разрешили мою проблему.

Ответ 18

Сегодня я столкнулся с такой же "недействительной бинарной" проблемой. Наконец, я решил это, проверив сообщения сборки в XCode 4. щелкните все сообщения для журнала сборки, найдите знак кода и подтвердите часть, как правило, внизу. Все мои неудачные представления имеют ошибку проверки в журнале построения, но передаются в архив - кнопка проверки.

Ответ 19

Такая же проблема, другое решение: в моей архивной схеме использовалась специальная конфигурация сборки, когда она должна была быть выпущена.

Контрольный список для моих неудачных попыток исправить в моем блоге Приложение завершило проверку кода.

Ответ 20

У меня такая же проблема. Убедитесь, что вы выбрали "Магазин приложений" как метод распространения в профиле распределения, а не "Ad Hoc".

Ответ 21

У меня был указатель на файл значка извлечения, который больше не существовал. Я удалил указатель, и до сих пор загрузка кажется приемлемой. Они действительно отправили электронное письмо достаточно быстро, что дало соответствующие данные, хотя намеки выше поставили меня на правильный путь до этого, как обычно.

Ответ 22

Спасибо. Это была проблема с файлами значков в моем проекте. Я удалил те, что предложил Сашо. Наконец, изменилось на ожидание рассмотрения.

Ответ 23

Если в случае приложения к газетным киоскам.

Обеспечьте добавление значка в киоске. В моем случае проблема заключается в том, что я забыл добавить значок в газетном киоске в проектном комплекте, но я ссылаюсь на него в plist.

Загрузчик приложений не будет проверять значок в киоске, поэтому ошибка "недействительный двоичный файл" отображается только в "iTunes connect".

спасибо

Ответ 24

У нас была такая же проблема, и, похоже, решение было добавить отсутствующий экран запуска Retina 4 дюйма в мой проект (я его специально удалил - предыдущие обновления были в порядке с этим, но кажется, им это больше не нравится), как рекомендовано в журналах при архивировании приложения.

Ответ 26

Я только что получил почту из apple

Missing 64-bit support - Beginning on February 1, 2015 new iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need to follow the same requirements. To enable 64-bit in your project, we recommend using the default Xcode build setting of "Standard architectures" to build a single binary with both 32-bit and 64-bit code.

Поэтому, пожалуйста, не забудьте добавить arm64 в качестве допустимой архитектуры в целевые параметры проекта, а также настройки проекта

enter image description here

Теперь добавьте arm64

enter image description here

И это будет выглядеть как

enter image description here

Ответ 27

2015

Проблема Invalid Binary теперь может быть вызвана, если EMBEDDED_CONTENT_CONTAINS_SWIFT - true, но фактически не включает код Swift в двоичном формате.

Вперед и фальсифицируйте это значение в настройках сборки приложения.

Xcode также включил пользовательские настройки, которые включали в себя слово Swift - я просто пошел дальше и отбраковал это тоже.

Ответ 28

Я столкнулся с той же проблемой, пробовал с большинством решений и, наконец, пришел к решению ниже.

Просто проверьте следующие вещи.

1) добавьте arm64 в качестве допустимой архитектуры в целевые параметры проекта, а также параметры проекта

2) Измените файл info.plist и добавьте массив файлов Icons со всеми необходимыми изображениями с именем.

3) Самое главное - из-за отказа вы изменили номер версии приложения в файле plist, но не на портале iTunes.
Вам нужно установить/управлять тем же номером версии в приложении и на портале iTunes. Установите это и попробуйте снова добавить двоичный файл, это решит вашу проблему.

Ответ 29

В моем случае я получал такой же Неверный двоичный статус в течение нескольких секунд для моего загруженного приложения либо Xcode- > Organizer, либо Application Loader без писем с apple. Я заменил PNG файлы в iconset в моем приложении Mac OS X, и проблема была решена.

Я получил поврежденный файл PNG файла из "Charleston Software Associates", спасибо большое.

Ответ 30

Другой возможный вариант - это сообщение об ошибке после повторной отправки двоичного файла:

Ваш Info.plist содержит вложенное свойство UINewsstandIcon в CFBundleIcons, которое предназначено для использования с функциями Newstand. Чтобы включить функции Newsstand, Info.plist должен включать ключ UINewsstandApp = true Info.plist.

Проверьте ваш info.plist - я сам не добавил это свойство и не получил никаких ошибок во время локального тестирования или тестирования в Testflight.