在上个月,我上传了两个BuildF for TestFlight.在ItunesConnect上,一个大小为63MB,而另一个大小为160MB!更糟糕的是:它在TestFlight上显示195MB,而对于其他帖子,它将是App Store上的两倍!
我使用的框架/库:
.framework项目拖放到项目中即可..xcodeproj到我的应用程序中包含此内容.regarding changes:
.xcodeproj在我的项目中.Regarding code: 没什么大不了的,只是bug修复.
我为我的应用程序禁用了bitcode,因为GCM尚不支持此功能,它支持Facebook SDK和Alamofire.
我真的很想知道为什么文件大小变化如此之大.这可能与Xcode 7的发布有关,因为较低的文件大小版本是在使用Xcode 7 beta时发布的.
在Itunes Connect上,它说:Supported Architectures: armv7, arm64和Required Capabilities armv7
发送32位版本的应用程序是一件好事吗?这会减小文件大小吗?它会拒绝我的应用吗?
有任何想法吗?
我正在-fembed-bitcode为iOS 9 重建一些开源库,其中涉及configure使用iPhone SDK进行交叉编译配置.
一切都适用于基于C的库,但是2 C++(libprotobuf和libexiv2)我都无法链接同样的错误:
ld: -bind_at_load and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together
Run Code Online (Sandbox Code Playgroud)
这是libexiv2的完整链接命令:
../libtool --mode=link /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -miphoneos-version-min=8.0 -fembed-bitcode -ldl -L/Users/pol/Source/Libraries/libexiv2/exiv2-0.25/../../libexpat/iPhoneOS/lib -L../xmpsdk/src -o libexiv2.la basicio.lo bmpimage.lo canonmn.lo casiomn.lo convert.lo cr2image.lo crwimage.lo datasets.lo easyaccess.lo epsimage.lo error.lo exif.lo futils.lo fujimn.lo gifimage.lo http.lo image.lo iptc.lo jp2image.lo jpgimage.lo makernote.lo metadatum.lo minoltamn.lo mrwimage.lo nikonmn.lo olympusmn.lo orfimage.lo panasonicmn.lo pentaxmn.lo pgfimage.lo pngimage.lo pngchunk.lo preview.lo properties.lo psdimage.lo rafimage.lo rw2image.lo samsungmn.lo sigmamn.lo sonymn.lo …Run Code Online (Sandbox Code Playgroud) 我是否仍然可以构建和发布禁用bitcode的iOS应用程序,即使我有一个或多个具有bitcode的库?
并非我依赖的所有库都支持bitcode.但我已经在某些论坛上看到,如果你的某些图书馆有bitcode,你不能为你的iOS目标禁用bitcode.
如果我同时定位iOS和watchOS怎么办?我知道你可以有选择地为watchOS启用bitcode(事实上它是必需的)并禁用iOS目标,但是在混合库的情况下呢?
谢谢
我在Swift中有一个iOS应用程序和CocoaPods使用UrbanAirship iOS SDK via Pods,如下所示:
pod 'UrbanAirship-iOS-SDK'
Run Code Online (Sandbox Code Playgroud)
我们可以验证Podfile.lock文件中安装的版本:
- UrbanAirship-iOS-SDK (6.2.0):
- UrbanAirship-iOS-SDK/Core (= 6.2.0)
- UrbanAirship-iOS-SDK/Core (6.2.0)
Run Code Online (Sandbox Code Playgroud)
该应用程序在Xcode 6.4上正确构建,运行和存档.此外,它还可以在Xcode 7 beta 6上构建和运行.但是,在Xcode 7中存档时,我收到以下错误:
ld:'.../Pods/UrbanAirship-iOS-SDK/Airship/libUAirship-6.2.0.a(UAWalletAction.o)'不包含bitcode.您必须在启用bitcode(Xcode设置ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用此目标的bitcode.对于架构armv7
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我已经更新项目的构建设置禁止设置位码ENABLE_BITCODE,以NO在项目和目标(S)的水平,两者上标明该SO回答,但错误依然存在.
任何帮助,将不胜感激.谢谢你的时间.
我正在尝试使用iOS 9.0中的Xcode 7构建包含Facebook SDK的应用程序.我收到了这个错误.
谢谢
在我寻找一种确定 iOS 二进制文件是否是使用 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
当我构建.IPA文件进行测试时,我收到以下错误...如何解决此问题.
2016-06-23 06:51:30 +0000 [MT] Presenting: Error Domain=IDEFoundationErrorDomain Code=1 "Failed to verify bitcode in MBCircularProgressBar.framework/MBCircularProgressBar:
error: Bundle only contains bitcode-marker /var/folders/w1/59sf4qyj2wzdtd_8wb24bcfh0000gn/T/XcodeDistPipeline.jB3/Roo…" UserInfo={NSLocalizedDescription=Failed to verify bitcode in MBCircularProgressBar.framework/MBCircularProgressBar:
error: Bundle only contains bitcode-marker /var/folders/w1/59sf4qyj2wzdtd_8wb24bcfh0000gn/T/XcodeDistPipeline.jB3/Roo…}
Run Code Online (Sandbox Code Playgroud) 在尝试归档我的项目时,我收到此错误:
ld: bitcode bundle could not be generated because '/Users//MobileVLCKit/MobileVLCKit.framework/MobileVLCKit(VLCEmbeddedDialogProvider.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build file '/Users//MobileVLCKit/MobileVLCKit.framework/MobileVLCKit' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
尝试这样做,enablebitcode = no
但是当我存档时,mac 卡住了,40 分钟后我放弃了。
知道我能做什么以及是否可以使用此 pod 归档项目?
对于带有嵌入位码的二进制文件(即使用 编译-fembed-bitcode)。我怎样才能提取该部分,以便我可以像任何其他位码文件一样使用该位码文件,例如运行opt或llvm-dis
作为测试用例,我有这个 hello-world 程序:
// hello.cpp
#include<iostream>
int main() {
std::cout << "hello world";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译为:clang++ -O2 test.cpp -o test.o -fembed-bitcode -c
显示其中objdump有一个__bitcode部分:
objdump -h test.o
test.o: file format Mach-O 64-bit x86-64
Sections:
Idx Name Size Address Type
0 __text 000002eb 0000000000000000 TEXT
1 __gcc_except_tab 00000068 00000000000002ec DATA
2 __cstring 0000000c 0000000000000354 DATA
3 __bitcode 00002bc0 0000000000000360 DATA
4 __cmdline 00000046 0000000000002f20 DATA
5 __compact_unwind 00000060 0000000000002f68 …Run Code Online (Sandbox Code Playgroud)