相关疑难解决方法(0)

如何在启用Bitcode的情况下xcodebuild一个静态库?

Xcode 7引入了Bitcode,这是一种LLVM中间二进制文件,这意味着Apple的服务器可以在不参与的情况下为不同的架构重新编译我的应用程序.

在Lookback中,我使用我们的库分发静态存档框架.似乎当你用"Build&Archive"构建任何东西时,bitcode实际上并没有发布到我的库中,任何在我们的应用程序中与我的库链接并尝试使用Bitcode进行构建和存档的人将获得其中一个两个警告:

  • ld: 'Lookback(Lookback.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. (如果lib是使用Xcode 6构建的)
  • ld: warning: full bitcode bundle could not be generated because 'Lookback(Lookback.o)' was built only with bitcode marker. The library must be generated from Xcode archive build with bitcode enabled (Xcode setting ENABLE_BITCODE) (如果lib是使用带有正常xcodebuild的Xcode 7构建的)

我有一个构建脚本,构建一个设备+模拟器通用二进制文件,所以我不能使用Build&Archive,而是xcodebuild从我的脚本从命令行运行.如何xcodebuild生成适当的bitcode启用库?

xcode ios xcode7 bitcode

82
推荐指数
4
解决办法
4万
查看次数

`-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万
查看次数

确定二进制文件是否包含 Bitcode 的方法似乎不再有效

在我寻找一种确定 iOS 二进制文件是否是使用 Bitcode 构建的方法时,我发现了以下帖子:

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

在这里,建议使用以下方法来确定二进制文件中是否存在位码:

$ otool -l libName.o | grep __LLVM
Run Code Online (Sandbox Code Playgroud)

但是,我已经在几个二进制文件上尝试过,但没有成功。其中之一是我知道有位代码的库,因为在我更改其项目上的标志后,构建错误消失了。其中另一个是文件扩展名的二进制文件,使用存档构建。另一个是苹果手表。

我相信上述所有二进制文件都应该有 Bitcode,但我总是无法从上述命令中得到任何结果。

有谁知道任何其他适用于最新二进制文件的方法?

我正在使用 XCode 7.2 和 10.10.5 以防万一。

更新:这是一个文件示例,该文件应该具有位代码,但上述命令不返回任何内容。它是来自测试文件提供程序的二进制文件。我通过 Archive 和 Deploy as Ad Hoc 生成它,并确保为目标启用了 bitcode 的设置。

https://www.dropbox.com/s/eyuzs5j1t7nsq6t/CustomDocumentProviderFileProvider?dl=0

ios ios-frameworks xcode7 bitcode xcode7.2

2
推荐指数
1
解决办法
3654
查看次数