无效的Swift支持 - 文件不匹配?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我刚刚在Swift 2中重写了一个应用程序。我试图将应用程序上传到iTunesConnect(通过Xcode 7 GM)进行内部测试。

我在一段时间内遇到了“无效Swift支持”错误但现在它变成了一些不同的东西。

苹果现在的错误说:

无效的Swift支持

文件libswiftCoreLocation.dylib,libswiftCoreMedia.dylib,libswiftCoreData.dylib,libswiftAVFoundation.dylib不匹配

/Payload/App.app/Frameworks/libswiftCoreLocation.dylib, /Payload/App.app/Frameworks/libswiftCoreMedia.dylib, /Payload/App.app/Frameworks/libswiftCoreData.dylib, /Payload/App.app/Frameworks/libswiftAVFoundation.dylib

确保文件正确(?),重建你的应用程序,并重新提交。

不要应用后期处理

/Payload/App.app/Frameworks/libswiftCoreLocation.dylib, /Payload/App.app/Frameworks/libswiftCoreMedia.dylib, /Payload/App.app/Frameworks/libswiftCoreData.dylib, /Payload/App.app/Frameworks/libswiftAVFoundation.dylib.

通过搜索“不应用后期处理”,“确保文件正确,重新构建应用程序并重新提交”等,我一直无法找到类似的错误。

有谁知道我可以如何“确保文件是正确的” - 或者 - 还有其他建议吗?谢谢。

提问于
用户回答回答于

这里同样的问题。我认为这很可能是与Bitcode有关的开发工具的一个bug。

我只是找到了解决方法。

  1. 将您的应用程序存档为新建版编号:(
  2. 在管理器“Finder中显示”的Finder中查找存档(.xcarchive文件)
  3. 打开包并找到像Products/Applications/YourApp.ipa/Frameworks/和的目录SwiftSupport/iphoneos/
  4. 所有libswiftXxx.dylib文件复制SwiftSupport/iphoneos/Products/Applications/YourApp.ipa/Frameworks/并覆盖
  5. 现在,从管理器上传到App Store

通过这个过程,我成功上传了我的构建。现在我在等待审查。

注意:

我正在使用CocoaPods,而ENABLE_BITCODE选项是NO。

用户回答回答于

在你的Xcode项目目录中,打开 Pods/Target Support Files/Pods/Pods-frameworks.sh

注释如下:

# Embed linked Swift runtime libraries
local basename
basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})"
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u  && exit ${PIPESTATUS[0]})
for lib in $swift_runtime_libs; do
  echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
  rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
  code_sign_if_enabled "${destination}/${lib}"
done

=>

# Embed linked Swift runtime libraries
# local basename
# basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})"
# local swift_runtime_libs
# swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u  && exit ${PIPESTATUS[0]})
# for lib in $swift_runtime_libs; do
#   echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
#   rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
#   code_sign_if_enabled "${destination}/${lib}"
# done

扫码关注云+社区