我以前从未听说过这个术语bitcode,我甚至不知道从哪里开始研究如何解决这个问题.
我正在使用Xcode 7 beta 3并且我已经成功上传了我的应用程序3次,但每次上传它时,它都会将状态更改为 invalid binary
我从App Store团队收到了一封电子邮件说这个
"无效的可执行文件 - 可执行文件'ESUHSD.app/ESUHSD'包含bitcode."
我不知道你需要了解哪些关于应用程序的信息,所以我希望得到任何帮助将不胜感激!
请确认:
Bitcode是编译程序的中间表示.您上传到iTunes Connect的包含bitcode的应用将在App Store上进行编译和链接.
它是App Store谁编译和链接的应用程序,所以怎么样的企业应用程序?
我喜欢这个iOS9功能,因为用户可以将所需的切片下载到设备,以便以最小的文件大小快速更新应用程序.Bcodeode默认在Xcode 7中启用,但对于企业应用程序,我们将应用程序更新上传到我们的企业服务器,我们的客户用户通过链接从我们的服务器下载它.此过程中没有应用商店.
对于启用了Bitcode的企业应用程序,这样可以吗?如果是这样,谁将拥有编译和链接职责?
上传到iTunesConnect for TestFlight发行版后,我的tvOS应用程序验证失败.
验证失败,并显示以下消息:
无效的可执行文件 - 可执行文件"MyApp.app/Frameworks/Alamofire.framework/Alamofire"不包含bitcode.
我的购物车:github "Alamofire/Alamofire" "tvOS".
我正在使用XCode 7.1的发布版本.我没有看到ENABLE_BITCODE我的tvOS目标.(我假设bitcode已启用我的目标,因为它对tvOS是强制性的).此外,BITCODE_GENERATION_MODE设置bitcode为Alamofire tvOS分支.
otool -l Carthage/Build/tvOS/Alamofire.framework/Alamofire | grep LLVM没有回报.所以,看起来我似乎缺少bitcode支持.
事情在模拟器和真实设备上运行良好.
如何使用Carthage构建一个bitcode支持的Alamofire框架版本,以便通过Apple服务器端验证?
在我的iOS版本的配置中,没有禁用bitcode的选项.在Xcode中,可以设置ENABLE_BITCODE = NO
我需要这个,因为我的链接框架不是用bitcode构建的,现在Apple不再允许使用半bitcode编译的应用程序了.
我有Crashlytics的问题(以及Xcode - > Organizer中显示的崩溃),因为我没有看到很多应该崩溃的崩溃.从测试人员那里我应该有很多崩溃,但我没有.我登录iTunes Connect并在那里获得压缩的dSYM文件并将其上传到Crashlytics以查看新的崩溃.但即使它说上传dSYM后有一个或多个新的崩溃,我也没有看到任何新的崩溃.它看起来像我在Crashlytics中看不到的大多数崩溃.这是为什么?我需要从TestFlight运行应用程序的设备获取日志/崩溃.我认为使用Objective-C并且在bitcode之前它的效果要好得多.
编辑:是否有可能在另一个工具(来自第三方公司)中会出现Apple Organizer中没有的崩溃?我在问我是否应该尝试其他公司的更多工具.也许一些崩溃是因为记忆.这些崩溃可能不在报告中吗?
谢谢
如何在启用 Bitcode 的情况下编译 WebRTC iOS 框架。目前,由于 WebRTC 框架,我必须禁用我的项目的 Bitcode。
我们正在尝试在我们的静态框架中完全启用Bitcode,但是在将应用程序与框架集成时,尽管我们能够在模拟器或设备上构建它,但是在归档应用程序时收到以下错误。
ld: bitcode bundle could not be generated because '.framework/p-iOS(PTFWOperationPrepareTransaction.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build file '.framework/p-iOS' for architecture armv7
Run Code Online (Sandbox Code Playgroud)
我们已经验证了位码状态,otool -l Versions/A/p-iOS | grep __bitcode并且似乎已正确启用
。
谦虚的要求:
请检查以上屏幕截图中的设置,因为我们已经检查了所有与SO相关的查询,因此请不要将其作为参考。

另外,我们已经尝试使用静态库,框架和位码来解决问题。
提前致谢。
我刚刚将 iMac 更新为 M1,现在我的一个项目向我发出了针对 Widget 扩展中嵌入的 3 个库的警告:
ld:警告:所有位码都将被删除,因为“/Users/..../DJSwiftHelpers_Extension”是在没有位码的情况下构建的。您必须在启用位码(Xcode 设置 ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用该目标的位码。
我了解该应用程序需要使用位码构建所有库才能兼容位码。其中 2 个库是我自己的,其中一个实际上是在同一个项目中构建的,并且都启用了位码。
这些库有 2 个版本,其中一个版本带有“仅允许应用程序扩展安全 API”,另一个则没有。只有应用程序扩展库才是问题所在。
那些嵌入手表扩展中的都很好。那些嵌入意图的都很好。只是 Widget 扩展在抱怨。
我可以通过禁用小部件扩展的位码来清除警告,但是在将应用程序上传到应用程序商店时,实际上整个应用程序的位码被禁用。
所以我想我的问题是:
为什么这仅在 M1 Mac 上成为问题,而在我的 Intel Mac 上却没有?
小部件扩展可以支持位码吗?或者只是忽略了位码设置?
提供 Widget 扩展时真的不能使用位码吗?
当使用Xcode7部署到iPhone和Apple Watch时,我收到此错误:
ld:-weak_library和-bitcode_bundle(Xcode设置ENABLE_BITCODE = YES)不能一起使用
想问一下如何最好地解决这个问题?
后续行动:Apple Watch需要基于bitcode的库,基于iOS 9中的新警告 - >我们可能必须为所有库启用bitcode.
我用Unity构建了一个iOS游戏.我将它上传到App Store(启用了bitcode).IPA约为200 mb.
在iTunes Connect上,它显示每个设备的构建大小约为30mb(我很高兴看到).
但是当我将构建添加到TestFlight时,我注意到在通过TestFlight下载时,它显示的大小为170mb.相当相反到这个问题(TestFlight显示我的应用程序的大小比实际尺寸更小的4倍)我对TestFlight应用程序的大小是在iTunes Connect中显示的实际大小应该多次.
此外,iTunes Connect说:
TestFlight variants differ from store variants and have smaller sizes.
Run Code Online (Sandbox Code Playgroud)
这与发生的情况完全相反.我的TestFlight下载量巨大.
这是正常的吗?
bitcode ×10
ios ×7
xcode ×5
xcode7 ×2
alamofire ×1
app-thinning ×1
apple-m1 ×1
carthage ×1
compilation ×1
crashlytics ×1
ios9 ×1
ld ×1
swift ×1
testflight ×1
tvos ×1
weak-linking ×1
webrtc ×1
widget ×1
xamarin ×1
xcode9 ×1