Ios 错误ITMS-9000:“;不支持的体系结构。您的可执行文件包含不受支持的体系结构';[x86_64,i386]&x27&引用;

Ios 错误ITMS-9000:“;不支持的体系结构。您的可执行文件包含不受支持的体系结构';[x86_64,i386]&x27&引用;,ios,objective-c,app-store-connect,xcode6,Ios,Objective C,App Store Connect,Xcode6,无法发送itunesconnect新版本的应用程序。尽管上周发生了同样的情况。在代码中,我只是更改了一个按钮的名称,不再进行任何更改​​在哪里 但总是会出现错误: 错误ITMS-9000:“不支持的体系结构。您的可执行文件包含不支持的体系结构”[x86_64,i386]” 在“我的项目->生成设置”中: ARCHS=$(ARCHS\u标准\u 32\u位) //:配置=调试 仅适用于活动项目=是 //:配置=发布 仅活动拱=否 VALID_ARCHS=armv7 armv7s如果您直接或通过S


无法发送itunesconnect新版本的应用程序。尽管上周发生了同样的情况。在代码中,我只是更改了一个按钮的名称,不再进行任何更改​​在哪里
但总是会出现错误:

错误ITMS-9000:“不支持的体系结构。您的可执行文件包含不支持的体系结构”[x86_64,i386]”

在“我的项目->生成设置”中: ARCHS=$(ARCHS\u标准\u 32\u位)
//:配置=调试
仅适用于活动项目=是
//:配置=发布
仅活动拱=否


VALID_ARCHS=armv7 armv7s

如果您直接或通过ShareKit使用LiveSDK,您将遇到此问题。就我而言,我是直接使用LiveSDK的

在苹果开发者论坛上查看这个答案


在Daniel Kennett的博客上查看这个精巧的解决方案-它在SpritzSDK上非常适合我,我也有类似的问题

他提供了一个脚本,你可以在构建阶段删除不需要的架构,作为最后一步——不会破坏模拟器,iTunesConnect在第一次尝试时也批准了我的上传


您可以通过在构建阶段-->运行脚本中的Shell脚本下面放置一个和平脚本,从IPA中删除不需要的ARCH 此脚本从IPA中删除所有模拟器ARCH,并从嵌入式框架中删除ARCH问题。 资料来源:


如果您的项目中有watch应用程序,则需要编辑上述两个答案中的脚本。将/Frameworks添加到$APP_路径,以避免在构建项目时出错。

确保在Xcode窗口顶部选择“iOS设备”作为目标-您正在尝试提交模拟器build@Paulw11它设置了我的iPhone。我正在做一个项目,一切都很顺利。然后进行存档并尝试发送itunescoonect,结果相同。您需要仔细检查生成设置或从版本控制回滚,然后重试-出于某种原因,您正在生成x86 buildCheck产品->方案->编辑方案…->档案文件它必须说构建配置:“发布”。顺便说一句,看看这个:我遇到了同样的问题,我没有使用LiveSDK或ShareKit。似乎没有任何帮助。我的问题是由城市飞艇SDK引起的:/@谢谢你。事实上,当我移除LiveSDK时,一切都很好!您好,您是如何解决live sdk的此问题的。如果仅在安装时使用Urban Airship@PaxRun脚本,如何解决此问题?或者没有?脚本进入构建阶段,因此只有在构建时,某些框架才不需要此脚本,并且仍然能够在模拟器和实际设备中构建和运行?请不要将其视为个人行为。如果您正在处理来自其他人的知识产权,请友好地将信用返还给原始创建者。在这种情况下,@Goppinath编辑。我的答案。谢谢你的建议。@arpen_techisavy祝你好运。
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
    FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

    EXTRACTED_ARCHS=()

    for ARCH in $ARCHS
    do
        echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
        lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
        EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    done

    echo "Merging extracted architectures: ${ARCHS}"
    lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
    rm "${EXTRACTED_ARCHS[@]}"

    echo "Replacing original executable with thinned version"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done