美文网首页iOS 开发继续加油
上传AppStore所遇到的问题

上传AppStore所遇到的问题

作者: leafu | 来源:发表于2017-01-03 11:09 被阅读1185次

    1、icon 图片错误

    解决方案:此问题是应用开启了ipad设备适配,需要添加ipad App icon,如果应用不在ipad上运行,可以直接选择只在iphone上运行,如图:

    2、ERROR ITMS-90087: "Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]' 此错误是由于第三方包的问题导致,需要添加以下脚本:

    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|whileread-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=()

    forARCHin$ARCHSdo

    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

    I used it and it worked perfectly.

    edited Sep 17 '15 at 18:05KPM

    answered Jun 16 '15 at 11:46

    pAkY88

    6,3233 31 58

    2Pity I cannot up vote this answer more than ++ –NCFJan 28 at 17:32

    3@pAkY88 I've used this script in my Xcode project to fix up the App Store Issues mentioned above, but now

    when I go to Build, I have alot of fatal errors -> fatal error: lipo: input file

    (/...Frameworks/Bolts.framework/Bolts) must be a fat file when the -extract option is specified. Any ideas

    how to fix this? –SamoanProgrammerFeb 5 at 16:08

    1I think it's pretty stupid: you have to combine arm+x86 to allow your app runs on both simulator and device,

    and have to strip x86 out to submit to app store. Why Apple doesn't do the strip on their end as long as x86

    is detected? They can help a lot of technical reasons to defend this, but none business reason since it's not

    user friendly at all. –superarts.orgMar 22 at 4:05

    1@fancy yes, check out my post on how I fixed my issuestackoverflow.com/questions/35240330/...–SamoanProgrammerMar 22 at 20:38

    2@Skoua Select the relevant target, then "Build Phases" and put it after the "Embed Frameworks" action –TobolJul 11 at 17:43

    If you're usingCarthagethen you may experience this issue because the project is:

    Missing thecarthage copy-frameworksbuild phase.

    Or the build phase doesn't include all the frameworks (incomplete list).

    This action filters frameworks to a list of valid architectures(code).Setting up the copy-frameworks build phase

    From theCarthage building for iOS steps:

    2,2749 33 50

    On your application targets’ “Build Phases” settings tab, click the “+” icon and choose “New

    Run Script Phase”. Create a Run Script in which you specify your shell (ex: bin/sh), add the

    following contents to the script area below the shell:

    /usr/local/bin/carthage copy-frameworks

    and add the paths to the frameworks you want to use under “Input Files”, e.g.:

    $(SRCROOT)/Carthage/Build/iOS/Box.framework

    $(SRCROOT)/Carthage/Build/iOS/Result.framework

    $(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework

    This script works around an App Store submission bug triggered by universal binaries and

    ensures that necessary bitcode-related files and dSYMs are copied when archiving.

    answered Sep 1 at 10:48

    odlp

    8177 17

    Awesome, work :D –zetanovaOct 22 at 0:05

    I resolved the error ITMS-90080 by removing a framework (the excellent SVProgressHUD)

    from the Embedded Binaries section (Xcode target -> General tab).

    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

    需注意脚本格式,如图:

    3、Invalid Bundle - A nested bundle contains simulator platform listed in CFBundleSupportedPlatforms Info.plist key.此错误主要是第三方包在打包时info.plist 中CFBundleSupportedPlatforms 是设置的模拟环境,改成生产模式就可以,如图:

    相关文章

      网友评论

      • 孢子菌:作者太懒了,贴的脚本格式太差,用的时候格式化了一下,分享给大家,。。。
        APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

        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
        leafu:@孢子菌 多谢提醒,也为你点赞

      本文标题:上传AppStore所遇到的问题

      本文链接:https://www.haomeiwen.com/subject/bfwgvttx.html