美文网首页
App Store不允许 x86_64, i386 架构!别慌

App Store不允许 x86_64, i386 架构!别慌

作者: 香蕉你个菠萝 | 来源:发表于2018-12-05 10:45 被阅读42次

    App Store不允许 x86_64, i386 架构,自建framework里有该架构,是不允许的,解决办法就是剔除掉该架构。

    发生场景:

    1、使用工具:carthage,生成.framework文件后导入项目中使用;
    2、项目打包上传至AppStore发生报错(ERROR ITMS-90087……)

    解决办法:

    在工程中添加shell脚本

    1、TARGETS -> BuildPhases -> add new run script phases ->添加以下脚本
    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
    
    2、再次打包!……不用谢!

    总结

    在制作的framework,要注意避免其内包含的这些信息

    相关文章

      网友评论

          本文标题:App Store不允许 x86_64, i386 架构!别慌

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