App Store Connect Operation Error/Warning 记录

ERROR ITMS-90635: "Invalid Mach-O Format. The Mach-O in bundle "xxxx.app/Frameworks/xxxx.framework" isn’t consistent with the Mach-O in the main bundle. The main bundle Mach-O contains armv7(machine code) and arm64(machine code), while the nested bundle Mach-O contains armv7(machine code) and arm64(machine code). Verify that all of the targets for a platform have a consistent value for the ENABLE_BITCODE build setting."

ERROR ITMS-90171 "Invalid Bundle Structure - The binary file 'xxxx.app/Frameworks/xxxx.framework/xxxxx is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure."

解决方法

这两个问题一般一起出现

1、在 Build Settings 中找到 Enable BitCode 设置为 NO

2、在 General 中找到 Frameworks, Libraries, and Embedded Content ,找到文中所描述的 Frameworks ,并在 Embed 一栏中选择 Do Not Embed


ERROR ITMS-90362: "Invalid Info.plist value. The value for the key 'MinimumOSVersion' in bundle xxxx.app/Frameworks/xxxx.framework is invalid. The minimum value is 8.0"

解决办法

找到文中描述的 xxxx.framework 目录下的 info.plist 文件,找到 MinimumOSVersion 一栏并修改值为 8.0


ERROR ITMS-90746: "Invalid Info.plist value. Your app can't claim an LSHandlerRank of "Owner" for any CFBundleDocumentTypes containing a public.data LSItemContentType. Please use "Alternate" as the LSHandlerRank instead."

解决办法

找到项目的 info.plist 中的 CFBundleDocumentTypes 里面的 LSItemContentType 一栏,修改 OwnerAlternate


ERROR ITMS-90058: "This bundle is invalid. The value for key CFBundleVersion [ZoomBundleVersionNumber] in the Info.plist file must be a period-separated list of at most three non-negative integers. Please find more information about CFBundleVersion at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion"

ERROR ITMS-90059: "This bundle Payload/xxxx.app/Frameworks/xxxx.framework is invalid. The value for key CFBundleVersion [ZoomBundleVersionNumber] in the Info.plist file must be no longer than 18 characters. Please find more information about CFBundleVersion at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion"

解决办法:

找到 Zoom 的目录里面的 info.plist 文件,将 CFBundleVersion 一栏的值按要求填写正确。(我这里的问题是 CFBundleVersion 一栏填了字符串,应该改成正常的版本号,比如:1.0)


ERROR ITMS-90124: "The binary is invalid. The executable 'xxxx.app/Frameworks/xxxx.framework/xxxx' has type 'OBJECT' that is not valid. Only 'EXECUTE' is permitted."

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."

ERROR ITMS-90210: "Missing load commands. The executable at 'xxxx.app/Frameworks/xxxx.framework' does not have the necessary load commands. Try rebuilding the app with the latest Xcode version. If you are using third party development tools, contact the provider."

解决方法:

参考:https://www.cnblogs.com/dujiahong/p/9436671.html

Build Phases 中添加 New Run Script Phase 写上对应代码

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

find"$APP_PATH"-name'*.framework'-typed |whileread-r FRAMEWORK

do

FRAMEWORK_EXECUTABLE_NAME=$(defaultsread"$FRAMEWORK/Info.plist"CFBundleExecutable)

FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"

echo"Executable is $FRAMEWORK_EXECUTABLE_PATH"

echo$(lipo -info"$FRAMEWORK_EXECUTABLE_PATH")

FRAMEWORK_TMP_PATH="$FRAMEWORK_EXECUTABLE_PATH-tmp"

case"${TARGET_BUILD_DIR}"in

*"iphonesimulator")

    echo "No need to remove archs"

    ;;

*)

    if$(lipo"$FRAMEWORK_EXECUTABLE_PATH"-verify_arch"i386") ;then

    lipo -output"$FRAMEWORK_TMP_PATH"-remove"i386""$FRAMEWORK_EXECUTABLE_PATH"

    echo "i386 architecture removed"

    rm"$FRAMEWORK_EXECUTABLE_PATH"

    mv"$FRAMEWORK_TMP_PATH""$FRAMEWORK_EXECUTABLE_PATH"

    fi

    if$(lipo"$FRAMEWORK_EXECUTABLE_PATH"-verify_arch"x86_64") ;then

    lipo -output"$FRAMEWORK_TMP_PATH"-remove"x86_64""$FRAMEWORK_EXECUTABLE_PATH"

    echo "x86_64 architecture removed"

    rm"$FRAMEWORK_EXECUTABLE_PATH"

    mv"$FRAMEWORK_TMP_PATH""$FRAMEWORK_EXECUTABLE_PATH"

    fi

    ;;

esac

echo"Completed for executable $FRAMEWORK_EXECUTABLE_PATH"

echo$(lipo -info"$FRAMEWORK_EXECUTABLE_PATH")

done

ERROR ITMS-90362: "Invalid Info.plist value. The value for the key 'NSExtensionActivationRule' in bundle xxxx.app/PlugIns/xxxx.appex is invalid. Please refer to the App Extension Programming Guide on https://developer.apple.com"

解决办法:

xxxx.appex 的 **info.plist **中,将 NSExtensionActivationRule 一栏更改为 NSDictionary 类型,并添加以下参数:

NSExtensionActivationSupportsFileWithMaxCount、NSExtensionActivationSupportsImageWithMaxCount、NSExtensionActivationSupportsMovieWithMaxCount、NSExtensionActivationSupportsText、NSExtensionActivationSupportsWebURLWithMaxCount

如下图所示:

NSExtensionActivationRule配置

WARNING ITMS-90737: "Missing Document Configuration. By declaring the CFBundleDocumentTypes key in your app, you've indicated that your app is able to open documents. Please set the UISupportsDocumentBrowser key to "YES" if your app uses a UIDocumentBrowserViewController. Otherwise, set the LSSupportsOpeningDocumentsInPlace key in the Info.plist to "YES" (recommended) or "NO" to specify whether the app can open files in place. All document-based apps must include one of these configurations. For more information, visit https://developer.apple.com/document-based-apps/."

解决办法:

info.plist 中设置 LSSupportsOpeningDocumentsInPlace 一栏的值为 YES。


WARNING ITMS-90473: "CFBundleShortVersionString Mismatch. The CFBundleShortVersionString value '1.0' of extension 'xxxx.app/xxxx/xxxx.appex' does not match the CFBundleShortVersionString value '2.4.0' of its containing iOS application 'xxxx.app'."

**解决办法:

xxxx.appex 的info.plist中,CFBundleShortVersionString 低于 xxxx.app 项目的CFBundleShortVersionString:2.4.0,需要修改为 2.4.0 相同即可。


你可能感兴趣的:(App Store Connect Operation Error/Warning 记录)