zoukankan      html  css  js  c++  java
  • 自己封装framworks上传到应用商店报错

    参考链接:

    http://www.jianshu.com/p/60ac3ded34a0

    http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/

    原因:包含了模拟器内容

    报错信息:

    ERROR ITMS-90087: "Unsupported Architectures. The executable for ***.app/Frameworks/SDK.framework contains unsupported architectures '[x86_64, i386]'."
    ERROR ITMS-90362: "Invalid Info.plist value. The value for the key 'MinimumOSVersion' in bundle ***.app/Frameworks/SDK.framework is invalid. The minimum value is 8.0"
    ERROR ITMS-90209: "Invalid Segment Alignment. The app binary at '***.app/Frameworks/SDK.framework/SDK' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."
    ERROR ITMS-90125: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."


    解决方案:
    1.使用不包含模拟器的框架上传应用(本人的是因为阿里云播放器问题,SDK中有只包含真机的框架)


    2.添加运行脚本(经测试上传到商店后报错,因为本人英语是个二把刀,diao大的可以看看是什么原因)

    Build Phases 点击添加 Run Script

    输入脚本:

    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


  • 相关阅读:
    Python爬取并分析B站最热排行榜,我发现了这些秘密
    Pycharm 实现远程部署和调试,原来这么简单
    《演员请就位2》弹幕的情感倾向分析
    下个十年,Python 的“王者”地位还能保住吗?
    致初学者:如何学好Python这门编程语言?
    用Python爬取英雄联盟(lol)全部皮肤
    Python很慢?Python之父一句话亮了
    Python 国产库推荐之 musicpy
    利用VS Code进行远程开发,就问你香不香?
    包名规范
  • 原文地址:https://www.cnblogs.com/yuxiaoyiyou/p/7093715.html
Copyright © 2011-2022 走看看