标签: bitcode

xcode上的bitcode签名无效

将Xcode更新到版本8.3后,我收到此错误:

error: Invalid bitcode signature
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我的项目甚至没有启用Bitcode.

我怎样才能解决这个问题?

xcode bitcode

39
推荐指数
2
解决办法
5万
查看次数

如何检查构建的静态库包含bitcode?

我有一个由其他公司建立的静态库.我想知道它是否是一个包含bitcode的静态库,哪个命令可以在终端中检测到它?

bitcode

34
推荐指数
2
解决办法
2万
查看次数

存档期间的Bitcode编译永远不会完成

我正准备通过Test Flight进行临时分发的应用程序.我已经(成功)完成了这篇Ray Wenderlich文章中的所有准备步骤(https://www.raywenderlich.com/48750/testflight-sdk-tutorial),我对证书,App ID和供应配置文件均已正确创建且处于正常工作状态.我正处于您在Xcode中存档项目的步骤.我在归档过程中选择了这些设置:

我选择出口:

在此输入图像描述

我选择"Save for Ad Hoc deployment",因为我们的计划是使用Test Flight将应用程序分发给我们的测试人员.我做的认为这是正确的选项(而不是"为企业部署"):

在此输入图像描述

这是默认设置,我没有具体的理由进行更改,尽管我很感激您的任何见解:

在此输入图像描述

同样,这两者的默认选项.默认情况下,第一个未选中,默认情况下会检查第二个:

在此输入图像描述

当我到达这个屏幕时,旋转器看似永远旋转:

在此输入图像描述

问题似乎是,一旦它到达它从bitcode编译的部分,它旋转和旋转,并没有显示完成的迹象.当我构建应用程序以在连接到MBP的设备上运行时,它会快速编译,通常在几秒钟内完成.什么可能导致这种无反应?

archive ios bitcode

33
推荐指数
3
解决办法
1万
查看次数

`-fembed-bitcode`和BITCODE_GENERATION_MODE有什么区别?

我一直在更新一个静态库来支持bitcode,从我的研究中我发现了两种实现方法:

  • fembed-bitcode在我的项目构建设置(链接)中将标志添加到其他C标志选项
  • 使用键BITCODE_GENERATION_MODE设置为bitcode(链接)添加用户定义的设置

这两个选项有什么区别吗?

我注意到的唯一区别是,通过使用fembed-bitcode,生成的iphonesimulator静态库将在启用完全bitcode的情况下构建(在我的情况下,二进制大小从5MB变为13MB,我可以检查bitcode支持使用otool),这看起来似乎不大使用它有任何不同.

objective-c static-libraries bitcode

28
推荐指数
1
解决办法
1万
查看次数

如何检查Xcode7是否支持BITCODE框架

从Xcode 7开始,它成为第三方框架应该支持Bitcode的常见问题之一.我们还可以通过在Build设置中将ENABLE_BITCODE设置为NO来禁用BITCODE.但我不想把它关闭,而是我想将我的所有框架转换为兼容BITCODE.

那么除了在Xcode中编译框架之外,如何检查框架是否与BITCODE兼容.有时Xcode会为一个框架提供BITCODE兼容性错误,即使它们没有BITCODE支持,也会留下其他框架.

有没有工具/命令行检查?

ios ios-frameworks xcode7 bitcode

26
推荐指数
3
解决办法
1万
查看次数

Xcode 14 和 Bitcode 禁用后应用程序大小增加(几乎翻倍)

Apple 已弃用 Bitcode,并不再接受从 Xcode 14 开始使用启用 Bitcode 的应用程序的任何提交。我们 PhonePe 禁用了Bitcode并将应用程序上传到 App Store,通过 Xcode 14 连接,现在看到应用程序大小大幅增加。189 MB从(启用 Xcode 13 和 Bitcode)到使用 Xcode 14 ,应用程序的大小几乎增加了一倍342 MB

\n

有没有人面临类似的问题或有任何解决方案来减小应用程序的大小?

\n
\n

弃用

\n
    \n
  • 从 Xcode 14 开始,watchOS 和 tvOS 应用程序不再需要位码,并且 App Store 不再接受来自 Xcode 14 的位码提交。

    \n
  • \n
  • 如果项目显式启用位码,Xcode 不再默认构建位码并生成警告\n消息:\xe2\x80\x9cBuilding with\nbitcode 已被弃用。请更新您的项目和/或目标设置以禁用位码。\xe2\x80\x9d 使用位码构建的功能\n将在未来的 Xcode 版本中删除。包含位码的 IPA\n将在提交到 App\nStore 之前删除位码。过去提交的位码的调试符号仍然可供\n下载。(86118779)

    \n
  • \n
  • 由于位码现已弃用,因此 iOS、tvOS 和 watchOS 的构建\n默认情况下不再包含位码。(87590506)

    \n
  • \n
\n
\n

xcode ios swift bitcode xcode14

26
推荐指数
1
解决办法
3213
查看次数

导出存档以进行临时分发时无法验证bitcode - 尝试过Xcode 8.3.3和Xcode 9

包含我们框架的应用程序会在导出Ad-hoc分发存档时抱怨缺少bitcode.

我已经阅读了Apple在这方面提供的文档 技术说明TN2432.文件列出的可能的根本原因与我们的情景不同.(我们没有使用汇编指令或格式错误的info.plist文件)

我已经在SO上发布了类似的问题

导出时启用Bitcode时出错(架构armv7找不到符号)

是否可以使用bitcode创建通用iOS框架?

iOS 9中的新警告

但提供的解决方案似乎不起作用.

我尝试BITCODE_GENERATION_MODE在用户定义的构建设置中添加标记.我还尝试在框架目标中添加-fembed-bitcode-marker&-fembed-bitcodein Other C标志.

我使用建议的命令检查生成的框架中是否存在bitcode段

otool -l -arch arm64 <framework_name> | grep __LLVM
Run Code Online (Sandbox Code Playgroud)

它显示了2个细分

segname __LLVM

segname __LLVM

但在导出档案时,Xcode仍然抱怨缺少bitcode.

我试图在App Store上传应用程序来验证这个问题是否是由Xcode版本引起的(我试过8.3.3.和9.0),但是我收到了关于iTunes Store中的build import错误的电子邮件.

在处理您的iOS应用程序APP_NAME 1.0(4)时,应用程序细化过程中出现错误,您的应用程序无法细化.如果您的应用包含bitcode,则bitcode处理可能失败.由于这些错误,您的应用版本将无法提交审核或放置在App Store中.有关可能有助于解决此问题的信息,请参阅技术说明2432.

PS:禁用bitcode对我们来说不是一个选项,因为主机应用程序需要支持bitcode.

导出Archieve时出错

xcode itunesconnect ios bitcode

22
推荐指数
2
解决办法
2万
查看次数

ld:-bundle和-bitcode_bundle(Xcode设置ENABLE_BITCODE = YES)不能一起使用

我想建立我的应用程序启用位码.据我所知,我的所有第三方库依赖项都启用了Bitcode.但是当我进行构建时,我收到此错误:

ld: -bundle and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together

我该如何解决?

xcode swift bitcode

18
推荐指数
1
解决办法
3148
查看次数

Xcode7:libGGLAnalytics.a(GGLContext + Analytics.o)'不包含bitcode

使用Xcode7.当我在模拟器上运行我的应用程序时,我没有错误.当我尝试在真实设备上运行时,我得到了这个:

ld: 'Test-IOS/Pods/Google/Libraries/libGGLAnalytics.a(GGLContext+Analytics.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

ios xcode7 bitcode

17
推荐指数
1
解决办法
4835
查看次数

使用Bitcode构建iOS库,以便与XCode 6向后兼容.如何?

我正在构建一个iOS静态库,我想为bitcode提供支持.为了实现这一点,我转到Build settings,搜索"custom compiler flags"并添加-fembed-bitcode.这使用bitcode构建库,在XCode 7下一切正常.

然而,按照上面的方法,我放松了与XCode 6的向后兼容性.据说我必须向我的用户发送2个不同的库版本,一个带有bitcode标志,一个没有,因为不是每个人都升级到XCode 7.

有没有办法让bitcode启用库并具有向后兼容性,而无需发送2个不同的版本?

更新:

您好@Vinicius Jarina感谢您的留言.我知道你可以创建一个胖库,我想这是一种常见的做法.到目前为止我所做的是为两种架构构建:

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdK iphoneos 
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator
Run Code Online (Sandbox Code Playgroud)

然后调用lipo打包在胖库中,如:

lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"
Run Code Online (Sandbox Code Playgroud)

但是,我现在该怎么办呢?我根据这个链接尝试了类似的东西,但没有运气:

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator
xcodebuild -configuration "Release" OTHER_CFLAGS='-fembed-bitcode' -target "${FMK_NAME}" -sdk iphonesimulator
xcodebuild -configuration "Release" OTHER_CFLAGS='-fembed-bitcode' -target "${FMK_NAME}" -sdk iphoneos
Run Code Online (Sandbox Code Playgroud)

然后像这样创建一个胖lib:

lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"
Run Code Online (Sandbox Code Playgroud)

我如何在我的scipt中包含两者,然后将它们打包到一个胖库中?

更新2:

我终于成功完成了这项工作,我在这里列出了可能面临同样问题的其他人的解决方案:

xcodebuild -configuration "Release" ENABLE_BITCODE=NO …
Run Code Online (Sandbox Code Playgroud)

ios xcode6 ios9 xcode7 bitcode

17
推荐指数
1
解决办法
730
查看次数