什么可能导致“无效的二进制”没有来自iTunes Connect的电子邮件跟进? [英] What can cause "invalid binary" with no email followup from iTunes Connect?

查看:955
本文介绍了什么可能导致“无效的二进制”没有来自iTunes Connect的电子邮件跟进?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试代表我的一个客户提交现有应用程序的更新,并且我从iTunes Connect收到无效二进制失败,但没有解释错误。我将在明天没有网络访问的情况下离开2周的假期,所以我有点绝望的解决方案。非常感谢任何见解。

I'm trying to submit an update of an existing application on behalf of one of my clients, and I'm getting "Invalid Binary" failures from iTunes Connect with no explanation of the error. I'm leaving on a 2 week vacation without network access tomorrow, so I'm a bit desperate for a solution. Any insights are greatly appreciated.

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

This update changes the name of the application and fixes a few minor bugs. I did previous submissions via the iTunes Connect, but I'm submitting this update via Xcode as Apple now requires.

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

I set myself up as the technical contact for this client, so I receive a notification when I put the new version into a "Waiting for Upload" state via iTunes Connect. When I then validate the binary via the Xcode organizer, the tool eventually reports that the binary is valid. When I submit the binary via the Xcode organizer, it eventually comes back and says that the binary has been successfully uploaded. Both of these steps take a while (maybe 15 minutes each), probably because the app bundle is 63 megabytes with thousands of resources.

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

For the next hour or two the iTunes Connect portal still reports that the application is in a "Waiting for Upload" state. I believe some latency is normal between the time when the upload completes in Xcode and when the state changes in iTunes Connect. These hours of latency seem excessive, but not entirely surprising I suppose, given the size of the app.

最终状态只是在iTunes连接中默默地更改为无效二进制 。我知道iTunes Connect应该发送一封电子邮件来解释发生这种情况时的错误,但我没有收到任何信息,我的客户也没有。 (我认为应该向所有标记为iTunes Connect中应用状态更改通知的用户发出此信息。此假设是否正确?)

Eventually the state just silently changes to "Invalid Binary" in iTunes connect. I understand that iTunes Connect is supposed to send out an email explaining the error when this happens, but I'm not receiving anything, nor is my client. (I assume it should go out to all users flagged for notification of app state changes in iTunes Connect. Is this assumption correct?)

以下是复制和粘贴的构建设置从我的App Store分发配置:

Here are the build settings copied and pasted from my App Store Distribution configuration:

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的内容:

Here are the contents of my Info.plist:

非常感谢任何见解。

编辑 - 解释表观状态变化延迟

根据我的状态历史记录,似乎无效二进制状态实际上是在几分钟内建立的,但iTunes Connect通过设计糟糕的缓存策略隐瞒了这一事实。

Based on my status history, it appears that the "Invalid Binary" status is actually being established within minutes, but iTunes Connect is concealing this fact with a poorly designed caching strategy.

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

To monitor for a change in state, I've been refreshing and clicking around between four pages: "Manage Your Applications", the "App Information" page, "View Details", and "Status History". When the status history finally updates, it shows that the app went into an "Invalid Binary" state around an hour prior.

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

As an experiment, I tried changing my app ID and submitting the binary as a new app. This time, I clicked into the "View Details" page a few minutes after submitting the binary. Its status showed, "Upload Received". Apparent progress! A couple minutes later I clicked into Status History, and it showed "Invalid Binary" mere minutes after my upload finished. Then I went back and refreshed my "View Details" page. It still shows "Upload Received", despite the fact that the Status History shows "Invalid Binary". This is pretty clear evidence that all these pages are being cached and showing stale data for long periods of time. I only caught this when I resubmitted the binary as a new app because I was loading the pages for that app for the first time.

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

This doesn't solve my "Invalid Binary" problem, nor does it explain why I'm not getting any emails, but it does help rule out some hypotheses.

推荐答案

感谢所有提出解决方案的人。事实证明,在我的案例中,你的建议都没有,但我确实解决了这个问题。这对我有用:

Thanks to everyone who proposed solutions. As it turns out, none of your suggestions helped in my case, but I did solve the problem. Here's what worked for me:

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

Delete Entitlements.plist from your project. Then do Add -> New File and re-add Entitlements.plist.

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

The format of the Entitlements.plist changed between SDK 3.1.3 and 3.2. If your Entitlements.plist was created with an SDK earlier than 3.2, and you're now trying to update your app using SDK 3.2 or greater, it appears that you have to delete the Entitlements.plist and re-add it using the new format. Otherwise Apple will reject your upgrade as an "Invalid Binary".

这篇关于什么可能导致“无效的二进制”没有来自iTunes Connect的电子邮件跟进?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆