tvOS:如何追踪:无效的可执行文件 - 可执行文件'xy'不包含bitcode

时间:2015-10-20 09:19:23

标签: xcode llvm tvos bitcode

我的tvOS应用在Apple的服务器端验证中反复失败,并通过电子邮件通知说:

  

无效的可执行文件 - 可执行文件'VPK_FULL_TV.app/VPK_FULL_TV'   不包含bitcode

我使用了此处描述的方法:How to check if a framework is BITCODE supported for Xcode7 并且我的所有lib /框架都打印出至少一行segname __LLVM

  1. 我想知道,otool这个测试有多充足?是否会发生测试打印出行segname __LLVM,但是在没有bitcode的情况下仍然会遗漏某些功能?

  2. 还有另一种测试bitcode完整性的方法吗?

  3. 我也在std libs上尝试过这个测试,例如/Applications/Xcode-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/usr/lib/libresolv.9.tbd但是会​​打印NO segname __LLVM行,从而显示没有包含bitcode。我应该,对吧?这是什么.tbd lib无论如何?

  4. 顺便说一下,如果您发现otool有用,可以使用以下快捷方式运行find . -name '*a' -type f -exec ./test_bitcode.sh {} \;

    echo ""
    echo "***** TESTING $1"
    otool -l $1 | grep __LLVM | head -n1
    

    test_bitcode.sh

    QListWidget::item:disabled
    {
        background: transparent;
    }

1 个答案:

答案 0 :(得分:0)

检查您的库是否正在使用bitcode构建strip -x

我发现strip从库中删除了bitcode

还有点像你的剧本: Bitcode Check Script:

https://github.com/danoli3/Bitcode-Check-Script

用法: bitcodeCheck "boost_system.a"

<强>结果:

------------------
BITCODE=YES for: boost_system.a
------------------

它使用 Apple

指定的otool__LLVM的基础