40

我正在尝试代表我的一个客户提交现有应用程序的更新,并且我从 iTunes Connect 收到“无效二进制”失败,但没有对错误进行解释。我明天要休假 2 周,无法访问网络,所以我有点急需解决方案。非常感谢任何见解。

此更新更改了应用程序的名称并修复了一些小错误。我之前通过 iTunes Connect 提交过,但我现在按照 Apple 的要求通过 Xcode 提交了这个更新。

我将自己设置为该客户的技术联系人,因此当我通过 iTunes Connect 将新版本置于“等待上传”状态时会收到通知。然后,当我通过 Xcode 管理器验证二进制文件时,该工具最终会报告二进制文件是有效的。当我通过 Xcode 管理器提交二进制文件时,它最终会返回并说二进制文件已成功上传。这两个步骤都需要一段时间(每个步骤可能需要 15 分钟),可能是因为应用程序包大小为 63 兆字节,包含数千个资源。

在接下来的一两个小时内,iTunes Connect 门户仍然报告应用程序处于“等待上传”状态。我相信在 Xcode 中完成上传和 iTunes Connect 中状态更改之间存在一些延迟是正常的。考虑到应用程序的大小,这些小时的延迟似乎过多,但我想这并不完全令人惊讶。

最终状态只是在 iTunes 连接中默默地更改为“无效二进制”。我知道 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 的内容:

非常感谢任何见解。

编辑 - 解释了表观状态更改延迟

根据我的状态历史,似乎“无效二进制”状态实际上是在几分钟内建立起来的,但 iTunes Connect 用设计不佳的缓存策略隐藏了这一事实。

为了监控状态的变化,我一直在刷新并在四个页面之间单击:“管理您的应用程序”、“应用程序信息”页面、“查看详细信息”和“状态历史记录”。当状态历史最终更新时,它显示应用程序在大约一小时前进入了“无效二进制”状态。

作为一项实验,我尝试更改我的应用 ID 并将二进制文件作为新应用提交。这一次,我在提交二进制文件几分钟后点击了“查看详细信息”页面。其状态显示“上传已收到”。明显进步!几分钟后,我单击状态历史记录,上传完成后仅几分钟就显示“无效二进制”。然后我返回并刷新了我的“查看详细信息”页面。尽管状态历史显示“无效的二进制文件”,但它仍然显示“已上传”。这是非常清楚的证据,表明所有这些页面都被缓存并长时间显示陈旧数据。我只是在将二进制文件作为新应用程序重新提交时才发现这一点,因为我是第一次加载该应用程序的页面。

这并不能解决我的“无效二进制”问题,也不能解释为什么我没有收到任何电子邮件,但它确实有助于排除一些假设。

4

30 回答 30

32

经过 16 个小时的不间断研究试验和错误,我在苹果开发者论坛中找到了解决方案。

显然有一个错误允许您的二进制文件通过验证和上传,但随后被 iTunes Connect 系统拒绝。而且你没有收到任何电子邮件解释你发生了什么!

如果您的应用程序同时适用于 iPhone 和 iPad,您可能在 Info.plist 文件中有这样的内容:

之前的截图

您应该完全删除该CFBundleIconFiles~ipad参数并将 iPad 图标包含在Icons files数组中,而不是像这里一样:

修复后的截图

这就是所有的人!

让我知道这是否对您有帮助!

于 2010-08-10T08:50:45.587 回答
10

即使 Application Loader 接受了我的二进制文件,iTunes Connect 也会出现同样的 INVALID BINARY 错误。解决方案非常简单......

打开您的 info.plist,右键单击并选中Show Raw Key/Values

  • CFBundleIconFile = Icon.png(我的 iPhone 57x57 PNG 图标)
  • CFBundleIconFile~ipad = Icon-72.png(我的ipad 72x72 PNG图标)
  • CFBundleIconFiles = 数组
    • 项目 0 = Icon.png
    • 项目 1 = Icon@2x.png(我的 iPhone 4 114x114 PNG 图标)
    • 项目 2 = Icon-72.png

保存、清理所有目标、构建和分析、在 Finder 中压缩并重新提交!

该错误是由于我键入了“图标文件”键而引起的。在原始视图中,这已映射到“图标文件”而不是 CFBundleIconFiles。我有 Xcode 3.2.3,我猜 Xcode 3.2.4 更好地映射了这个密钥标识符。

祝大家好运!

来源:技术问答 QA1686:iPad 和 iPhone 上的应用程序图标

于 2010-10-16T14:46:17.187 回答
8

感谢所有提出解决方案的人。事实证明,您的任何建议都对我没有帮助,但我确实解决了问题。这对我有用:

从您的项目中删除 Entitlements.plist。然后执行 Add -> New File 并重新添加 Entitlements.plist。

Entitlements.plist 的格式在 SDK 3.1.3 和 3.2 之间发生了变化。如果您的 Entitlements.plist 是使用早于 3.2 的 SDK 创建的,并且您现在尝试使用 SDK 3.2 或更高版本更新您的应用程序,您似乎必须删除 Entitlements.plist 并使用新格式重新添加它. 否则,Apple 会将您的升级视为“无效二进制文件”而拒绝。

于 2010-08-18T05:10:27.253 回答
7

几天来我一直遇到同样的问题。似乎这个错误可能是由许多不同的问题引起的,所以很遗憾苹果没有通过电子邮件详细说明这个错误。

对我来说,解决方案是根本不使用“应用程序加载器”!

而是在 Xcode 中执行以下操作:

  • 选择您的应用程序转到构建 > 构建和存档
  • 完成后,转到 Window > Organizer
  • 在“归档的应用程序”下选择您的应用程序
  • 点击“验证”
  • 如果验证成功(就像我的一样):
  • 点击“提交”。

然后,这会将应用程序提交给苹果。对我来说,几秒钟后状态变为“等待审查”而不是“无效的二进制文件”。

于 2011-01-06T11:26:47.933 回答
3

在 XCode 中,单击左侧的应用名称,然后转到右侧的构建设置选项卡。向下滚动到“代码签名身份”->“发布”

确保选择了您的分发配置文件。我没有意识到我必须明确设置它并且我的应用程序验证得很好,但是二进制文件无效。我的设置仍在开发者资料中

于 2011-11-01T13:09:47.337 回答
3

使用 Xcode 中的构建和存档工具,如此处另一个响应中所述。

出于某种原因,存档工具在 Apple 触发了一些事情,发送回电子邮件,告诉我实际出了什么问题(损坏的 PNG 文件)。

我的问题?Xcode 在压缩某些 PNG 文件时会损坏它们。转到构建设置,查看打包部分并将“压缩 PNG 文件”设置为否。

于 2012-06-18T13:42:44.093 回答
3

目前(2013 年 5 月 8 日)如果您在应用程序中访问 UDUD,则会引发此错误。MKStoreKit(一个流行的开源库)确实如此,这就是我的原因。在您的文件中搜索以下方法(假设它不在预编译的二进制文件中,在这种情况下,无论您拥有什么,都可以去谷歌搜索并查看他们的发行说明)

[UIDevice currentDevice].uniqueIdentifier

于 2013-05-08T20:18:00.513 回答
2

这里的答案都对我没有帮助。我在我的项目中使用 Cocoapods。由于某种原因,Cocoapods 项目设置 Base SDK 和支持的平台设置为 OSX。(Cocoapods 版本:0.37.2)我将它切换到 iOS 并且它工作。 我的 Cocoapods 项目设置

于 2015-07-17T02:26:07.410 回答
1

这可能是以下问题,我是在 iTunesConnect 自动回复提交后收到的:

缺少推送通知权利 - 您的应用程序向 Apple 推送通知服务注册,但应用程序签名的权利不包括所需的“aps-environment”权利。确保您已为此应用程序启用推送通知服务,并且您已下载包含“aps-environment”权利的分发配置文件。

纠正问题后,请返回 iTunes Connect 管理您的应用程序模块中的应用程序版本详细信息页面,然后单击准备提交二进制文件按钮。这将引导您完成二进制提交流程并将您的应用程序版本状态返回到等待上传。然后,您可以使用 Application Loader 上传新的二进制文件。如果在您的提交中发现任何其他问题,我们将与您联系。

于 2011-04-14T21:24:09.067 回答
1

我遇到了同样的问题,它显然与应用程序附带的默认启动屏幕图像的大小有关。

我发送的是 1024x768 默认图像,但我在这篇文章中找到了:

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

它需要是 1024x748 (对于横向默认值),我似乎它有效:iTunesconnect 在那之后接受了它。

于 2011-10-21T04:19:27.187 回答
1

这可能是iOS 10中的隐私相关问题。它需要开发者在使用“打开照片库”、“打开相机”、“访问日历”等用户隐私数据时添加描述。

请检查您的代码的每个部分,包括 3rd-party 框架,看看它是否存在一些隐私问题。然后将描述添加到 Info.plist 文件中。我就是这样解决的^_^ 在此处输入图像描述

于 2016-09-14T14:06:53.063 回答
0

iPad图标的技巧确实有效。

删除 CFBundledIconFiles~ipad 并在 Icon Files 键中添加一个 72x72 图标

请注意屏幕截图,此方法有时会创建缺少屏幕截图错误

于 2010-08-11T15:20:05.707 回答
0

很长一段时间以来,我一直在为同样的问题苦苦挣扎。今天早上我发现团队代理关闭了所有通知,所以我把它们都打开了,当应用程序更改为“等待上传”时,我终于开始收到状态更改电子邮件,但当状态更改为“二进制无效”时仍然没有”。经过几次尝试,我终于让应用更新进入“等待审核”状态。为我解决的问题是将目标构建设置中“iPhone OS 部署目标”的值从 iPhone OS 2.2.1(原始应用程序的设置)更改为 iPhone OS 3.0。

于 2010-08-12T20:00:56.347 回答
0

我有这个问题。我的问题原来是将部署目标设置为小于 3.2,但架构仍设置为“针对 armv7 优化”。这是使用 xcode 3.2.3。后一个设置应更改为“标准(armv6 和 armv7)”。当我构建我的开发应用程序时,我不得不更改它,因为当我尝试在较旧的 itouch 上运行该应用程序时 xcode 抱怨,但是使用分发版本时没有可以运行的设备(除非您先使用 ad hoc 进行测试),因此在 iTunes 连接拒绝二进制文件之前,您不会注意到问题。

于 2010-09-17T02:11:15.513 回答
0

我也有同样的问题。我首先尝试了权利,因为它似乎适合我的情况。

男孩,他们不同吗:旧权利清单:

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

新的...(xcode 3.2.5、4.2 目标和最小 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>
于 2011-02-15T21:39:14.490 回答
0

我为此挣扎了半天。甚至尝试重新安装xcode。对我来说,答案是回到 iTunes Connect 中的配置门户并撤销我的证书,然后制作一个新证书。然后制作一个新的分发配置文件,然后重建并重新提交。颈部有多么长时间的无证疼痛。

于 2011-03-29T18:07:04.517 回答
0

就我而言,我使用不同的 CSR 生成了配置文件,而不是使用第一次创建以访问配置门户的原始 CSR。代码签名和提交带有原始 CSR 生成的配置文件的应用程序解决了我的问题。

于 2011-07-10T09:03:13.470 回答
0

我今天多次遇到相同的“无效二进制”问题。最后我通过检查 XCode 4 中的构建消息解决了这个问题。单击显示构建日志的所有消息,找到代码签名和验证部分,通常在底部。我所有失败的提交在构建日志中都有验证错误,但在存档中传递 - 验证按钮。

于 2011-08-15T14:54:26.213 回答
0

同样的问题,不同的解决方案:我的存档方案使用的是 ad hoc build configuration,而它本应发布。

我的博客Application Failed Codesign Verification中的失败修复尝试清单。

于 2011-10-04T10:38:35.630 回答
0

我有同样的问题。确保您在分发配置文件中选择了“App Store”作为分发方法,而不是“Ad Hoc”。

于 2012-07-18T02:32:07.700 回答
0

我有一个指向不再存在的提取图标文件的指针。我删除了指针,到目前为止,上传似乎可以接受。他们确实很快发送了一封电子邮件,其中提供了相关细节,尽管上面的提示让我在此之前像往常一样走上了正确的轨道。

于 2012-10-23T20:26:14.260 回答
0

谢谢..这是我项目中的图标文件的问题。我已按照 Sasho 的建议删除了这些内容。最后改成等待审核。

于 2013-01-24T21:43:32.183 回答
0

如果是报亭应用程序。

确保添加了报亭图标。就我而言,问题是我忘记在项目包中添加报亭图标,但我在 plist 中引用了它。

应用程序加载器不会验证报亭图标,因此错误“无效二进制”仅显示在“iTunes 连接”中。

谢谢

于 2013-03-28T11:10:49.077 回答
0

刚刚在这里遇到了同样的问题,似乎解决方案是将丢失的 Retina 4 英寸启动屏幕添加到我的项目中(我故意将其删除 - 以前的更新对此没问题,但似乎他们不再喜欢它了),如归档应用程序时在日志中建议的那样。

于 2013-06-26T15:45:59.290 回答
0

我最近在我的应用程序中添加 Flurry Ad 时收到此错误。

如果您的案例是关于广告的,您必须在上传前在 itunesconnect 中接受。 http://techcrunch.com/2014/04/11/apple-developers-must-now-agree-to-ad-identifier-rules-or-risk-app-store-rejection/

于 2014-06-18T01:30:04.177 回答
0

我刚收到苹果的邮件

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 作为有效架构

在此处输入图像描述

现在添加 arm64

在此处输入图像描述

它看起来像

在此处输入图像描述

于 2015-02-20T03:50:37.503 回答
0

2015

现在可能会导致该Invalid Binary问题 if EMBEDDED_CONTENT_CONTAINS_SWIFTis true,但实际上未能Swift在二进制文件中包含任何代码。

继续并在应用程序构建设置中伪造此值。

Xcode 还包含了包含这个词的用户定义的设置 Swift——我只是继续进行并剔除它。

于 2015-03-06T18:42:15.990 回答
0

我遇到了同样的问题,尝试了大多数解决方案,最后得出了以下解决方案。

只需检查以下内容..

1)在项目目标设置和项目设置中 添加arm64 作为有效架构

2) 修改info.plist 文件并添加带有名称的所有必需图像的 图标文件数组。

3) 最重要的——因为被拒绝,您在 plist 文件中更改了应用程序的版本号,但在 iTunes 门户上没有更改。
您需要在应用程序和 iTunes 门户中设置/管理相同的版本号。设置此项并尝试再次上传二进制文件,这将解决您的问题。

于 2015-04-16T06:18:08.673 回答
0

就我而言,我在几秒钟内通过 Xcode->Organiser 或 Application Loader 为我上传的应用程序获得了相同的Invalid Binary状态,而没有来自苹果的电子邮件。我在我的Mac OS X 应用程序的图标集中替换了PNG文件,问题得到了解决。

我从“Charleston Software Associates”那里得到了损坏的 PNG 文件线索,非常感谢。

于 2016-02-16T22:47:01.540 回答
0

另一种可能的选择,在重新提交二进制文件几次后收到此错误消息:

您的 Info.plist 包含 CFBundleIcons 下的 UINewsstandIcon 子属性,该子属性旨在与 Newstand 功能一起使用。要包含 Newsstand 功能,Info.plist 必须包含 UINewsstandApp=true Info.plist 键。

检查您的 info.plist — 我自己没有添加该属性,并且在本地或 Testflight 测试期间没有收到任何错误。

于 2018-12-21T04:26:17.803 回答