我正在尝试使用Xcode 10 beta 5编译我的项目,其中包含Firebase,Crashlytics/Fabric和其他一些东西.在链接这些错误时失败:
Ld /Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/appname.app/appname normal arm64 (in target: appname)
cd /Users/Username/iPhone-dev/appname
export IPHONEOS_DEPLOYMENT_TARGET=9.0
/Users/Username/Downloads/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Users/Username/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk -L/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/AFNetworking -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/Actions -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/AppAuth -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/Bluepeer -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/Bolts -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/CocoaAsyncSocket -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/CocoaLumberjack -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/Color-Picker-for-iOS -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/DNPWPSPrinter -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/DataCompression -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/EOSFTPServer -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/FBSDKCoreKit -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/FBSDKLoginKit -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/FastttCamera -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/FirebaseAuth -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/FirebaseCore -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/FirebaseDatabase -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/FirebaseStorage -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/GTMAppAuth -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/GTMSessionFetcher -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/Gloss -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/GoldRaccoon -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/GoogleToolboxForMac -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/HHServices -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/JPSVolumeButtonHandler -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/M13BadgeView -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/ObjectiveDropboxOfficial -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/PhoneNumberKit -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/Protobuf -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/TPCircularBuffer -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/leveldb-library -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/nanopb -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/upnpx -F/Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Products/Debug-iphoneos/xaphodObjCUtils -F/Users/Username/iPhone-dev/appname/Pods/Crashlytics/iOS -F/Users/Username/iPhone-dev/appname/Pods/Fabric/iOS -F/Users/Username/iPhone-dev/appname/Pods/FirebaseABTesting/Frameworks -F/Users/Username/iPhone-dev/appname/Pods/FirebaseAnalytics/Frameworks -F/Users/Username/iPhone-dev/appname/Pods/FirebaseDynamicLinks/Frameworks -F/Users/Username/iPhone-dev/appname/Pods/FirebaseInstanceID/Frameworks -F/Users/Username/iPhone-dev/appname/Pods/FirebaseRemoteConfig/Frameworks -F/Users/Username/iPhone-dev/appname/Pods/TwitterCore/iOS -F/Users/Username/iPhone-dev/appname/Pods/TwitterKit/iOS -F/Users/Username/iPhone-dev/appname/cascablecore-binaries/Binaries/iOS -filelist /Users/Username/Library/Developer/Xcode/DerivedData/appname-lastnamepjksdzfewpftlvqzuglaxplu/Build/Intermediates.noindex/appname.build/Debug-iphoneos/appname.build/Objects-normal/arm64/appname.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -Xlinker -rpath -Xlinker @executable_path/Frameworks …Run Code Online (Sandbox Code Playgroud) 我正在使用Photos框架编写iOS8应用程序.我真的很喜欢PHFetchResultChangeDetails.但有一些我不明白的事情:当我使用以下代码将新照片保存到相机胶卷时,我会回来插入和更改.我希望只插入.
使它具体化:
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetChangeRequest* newPhotoChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
PHAssetCollectionChangeRequest* albumChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:_album];
[albumChangeRequest addAssets:[NSArray arrayWithObject:newPhotoChangeRequest.placeholderForCreatedAsset]];
...
Run Code Online (Sandbox Code Playgroud)
操作是使用上面的代码插入3张照片.之前:ipad上的5张照片.之后:ipad中的8张照片.PHFetResultChangeDetails处理程序上的断点显示:
(lldb) po insertionIndexPaths
<__NSArrayM 0x7913be10>(
<NSIndexPath: 0x78e39020> {length = 2, path = 0 - 5},
<NSIndexPath: 0x78e3c910> {length = 2, path = 0 - 6},
<NSIndexPath: 0x78e39480> {length = 2, path = 0 - 7}
)
Run Code Online (Sandbox Code Playgroud)
- >好:有道理!这些是我刚插入的照片(最后3个索引路径).
(lldb) po changeIndexPaths
<__NSArrayM 0x78e3c420>(
<NSIndexPath: 0x78e3c7e0> {length = 2, path = 0 - 2},
<NSIndexPath: 0x78e3c7a0> {length = 2, path = …Run Code Online (Sandbox Code Playgroud) 我的应用程序在设备和模拟器上运行良好,但是当我提交它时,我得到了无效的捆绑包 - 您的应用程序引用的一个或多个动态库不存在于dylib搜索路径错误中,大约在半小时后通过电子邮件发送给我上传成功完成.
按照这里的建议,即运行otool -L,我可以看到应用程序的主可执行文件按预期@rpath/...dylib在Frameworks/文件夹中包含所有文件,但是,appex的可执行文件缺少一些Swift库.
这是otool -Lappex上的输出:
Watch Extension:
/System/Library/Frameworks/WatchKit.framework/WatchKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1349.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1348.0.0)
/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3599.4.0)
/System/Library/Frameworks/WatchConnectivity.framework/WatchConnectivity (compatibility version 1.0.0, current version 116.0.0)
@rpath/libswiftCore.dylib (compatibility version 1.0.0, current version 800.0.46)
@rpath/libswiftCoreGraphics.dylib …Run Code Online (Sandbox Code Playgroud) 我正在使用带有iOS 9.0 SDK和ARC的XCode 7.0,在带有iOS 9的iPhone 5S上进行所有分析/测试.编辑:对于所有屏幕截图,它只是一次运行:我直接从xcode运行调试版本,然后手动附带的仪器.因此截图全部来自完全相同的单次测试运行.这种内存增长(每个xcode视图)100%可重复.
我的应用程序下载ZIP文件,解压缩它们,并将它们添加到相机胶卷.我已经确保分析和捕获内存泄漏(即缺少CGContextRelease)以及使用@autoreleasepool等
在解压缩期间,在xcode中,我看到内存使用率快速上升,直到解压缩完成后永无止境,我无法解释这一点,因为仪器中没有任何物体可以看到被抓住.永远不会释放内存(每个xcode的内存视图).在我的测试运行结束时,我看到使用了236MB,在解压缩期间没有内存警告.如果我使用Instruments的分配工具,我会看到50.2MB的堆和匿名VM使用.这是一个巨大的差异!
我做的第一件事是假设这[UIImage imageNamed:是责备(缓存等),因为我有很多动画UIImageViews,所以我花时间从我的代码中删除所有imageNamed,然后使用imageWithContentsOfFile.这根本没有帮助.我使用iOS 8 Photo框架将解压缩的图像添加到相机胶卷中,如下所示:[PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:[NSURL fileURLWithPath:filePath]]
我花了相当多的时间来通过仪器和网络文章,但无济于事.谁能回答这些问题?
非常感谢您的帮助.当然我会发布任何有用的源代码,我只是不知道从哪里开始......
这与我的另一个问题有关,iOS 8 +交互式过渡+导航条显示=坏了吗?,但是不同.
在iOS 8上,当一个人通过NavigationControllerDelegate/ UIViewControllerInteractiveTransitioning方法进行从视图A到视图B的交互式转换,而视图A有一个导航栏,而视图B没有,那么隐藏/取消隐藏导航栏的正确方法是什么?
我尝试在ViewController中执行此操作,如下所示:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[self transitionCoordinator] animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
if (self.navigationController) {
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
} completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
NSArray *debugViews = [context containerView].subviews;
NSLog(@"%@", debugViews);
if ([context isCancelled] ) {
if( self.navigationController ) {
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
}
}];
}
- (void)viewWillDisappear:(BOOL)animated {
[[self transitionCoordinator] animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
if (self.navigationController) {
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
} completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
if ([context isCancelled] ) { …Run Code Online (Sandbox Code Playgroud) 我了解 Google OAuth2 范围大致可分为三类,从最难被批准使用到至少:
我在此处找到了受限范围列表:https : //support.google.com/cloud/answer/9110914?hl=en
我找不到敏感范围列表。我看到的所有 Google 页面都只是解释了如果您请求敏感范围会发生什么,或者如果您使用敏感范围,如何进行审查。很好,但什么是敏感的范围?
为什么我想知道:我希望通过避免敏感范围来避免审查的麻烦。我不得不重构我的很多应用程序以避免使用受限范围(我昨天才意识到这个问题,当时谷歌给我发了一封电子邮件警告)。在这个过程中,我不希望在我不需要的时候无意中开始使用敏感范围。
我是一个ffmpeg菜鸟.我确实花了30分钟谷歌搜索stackoverflow,但没有找到答案.
我的设计师为我制作了一些动画制作的视频.他们很棒,但很大.所以我尝试通过ffmpeg传递它们.它们小10倍,看起来不像素化 - 太棒了! - 但颜色大大减少了.当我在我的macbook上或在应用程序中查看它时,原始中的亮红色/粉红色在输出中变成灰色 - 灰色 - 红色(iOS - 即在iPhone 5S上你可以看到丢失的颜色).我怎样才能让颜色保持不变(ish)?
ffmpeg -i original.mp4
Run Code Online (Sandbox Code Playgroud)
告诉我这个:
ffmpeg version 2.8 Copyright (c) 2000-2015 the FFmpeg developers
built with Apple LLVM version 7.0.0 (clang-700.0.72)
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-indev=jack --disable-outdev=xv --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --enable-vda --enable-videotoolbox --arch=x86_64 --enable-yasm --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100 …Run Code Online (Sandbox Code Playgroud) 我有一个大的iPad应用程序,有一个iPhone和手表"远程"应用程序,即.一个在iPhone/Watch上运行的小应用程序,用于远程控制ipad.所有这些都在一个通用的应用程序中.对于应用程序细化,我根据需要在资产目录中分隔资产.该应用程序已经在App Store上发布(已发布). 该应用程序具有iOS 8.1的最低SDK版本.
当我使用在App Store上发布的Archive时,进行adhoc导出,选择从bitcode构建,并选择导出为iPhone 6S,然后App Thinning Size Report.txt显示"19MB压缩,39.4MB未压缩".19MB对我来说是可以接受的,考虑到那里有2*swift dylibs(观看appex和主app)
但是:在使用iOS 9.3.4的iPhone 6S上查看应用程序商店时,应用程序大小显示为42MB的大量下载!我认为这是压缩的,那么为什么这比我预期的19MB大两倍呢?是因为该应用程序支持iOS 8.1,因此即使对于拥有iOS 9的设备,也不会发生应用程序稀疏?
我想发布一个更新来解决这个问题,但我不知道从哪里开始.
我已经看了好几天了,我无法弄清楚发生了什么。
我的崩溃每天影响 2% 的用户(跨 iPad 和 iPhone,不限于 iOS 12,底部的完整堆栈跟踪):
Application tried to present modally an active controller <DownloadViewController: 0x10a0c3c00>.
我在我的代码UIViewController presentViewController:animated中没有任何地方调用,并且没有到DownloadViewController. 总有一个UINavigationController礼物(它是故事板的初始 VC)。
我尝试模拟竞争条件,其中 segues 执行两次,或者 a在它UIAlertController的UIViewController下消失后仍然显示,并尝试对活动 VC 执行 segue,但我无法重现此崩溃:我最多可能导致的是DownloadViewController被推到UINavigationController两次(不是世界末日也没有崩溃)。
在我添加了一些UIAlertControllers之后,这个崩溃开始发生,所以我假设它们与它有关,但我不知道是怎么回事。
有什么想法下一步要去哪里?
Fatal Exception: NSInvalidArgumentException
0 CoreFoundation 0x2201b0518 __exceptionPreprocess
1 libobjc.A.dylib 0x21f38b9f8 objc_exception_throw
2 UIKitCore 0x24c01859c -[UIViewController _presentViewController:withAnimationController:completion:]
3 UIKitCore 0x24c01aa7c __63-[UIViewController _presentViewController:animated:completion:]_block_invoke
4 UIKitCore 0x24c033570 -[_UIViewControllerTransitionCoordinator _applyBlocks:releaseBlocks:]
5 UIKitCore 0x24c02f930 -[_UIViewControllerTransitionContext _runAlongsideCompletions]
6 …Run Code Online (Sandbox Code Playgroud) 我花了一个小时才解决这个 iOS 崩溃问题,发布解决方案以防有帮助。除了崩溃count之后,您可能会获得不同的值。NSConcreteNotification
我在访问 array.count 时崩溃了,这就是我的情况下它是 count 的原因:
@objc fileprivate func loadParts(constraints: [NSLayoutConstraint]? = nil) {
assert(Thread.current.isMainThread)
var constraints = constraints ?? [NSLayoutConstraint]()
...
let cCount = constraints.count
Run Code Online (Sandbox Code Playgroud)
我一生都无法看到它如何在constraints.count上崩溃,因为数组保证存在。
无论我尝试什么,FIRUserInfo都是未声明的标识符.我正在尝试从Firebase 2.x迁移到3.x:不知何故,Google/firebase服务器端的最近更改破坏了我的应用程序的facebook身份验证集成.
我确保我的Podfile安装了FirebaseAuth 3.0.2.我确保我的标题导入@FirebaseAuth.我尝试清理我的构建文件夹,重新启动xcode等.
在Xcode 7.3.1中,我可以命令单击FIRUserInfo,它确实在pod框架中找到了预期的头文件.但它不会编译 - 下面的最后一行因FIRUserInfo未声明的标识符而失败.
@import Firebase;
...
[[FIRAuth auth] signInWithCredential:credential completion:^(FIRUser * _Nullable user, NSError * _Nullable error) {
if (error || user.providerData.count < 1) {
DDLogWarn(@"Firebase login after facebook failed: %@", error);
if( weakSelf.signInCompletionHandler ) {
weakSelf.signInCompletionHandler(false, false, nil);
weakSelf.signInCompletionHandler = nil;
}
} else {
FIRDatabaseReference *userRef = [[FIRDatabase database] reference];
userRef = [userRef child:[NSString stringWithFormat:@"users/%@", user.uid]];
FIRUserInfo *profile = user.providerData.firstObject;
Run Code Online (Sandbox Code Playgroud) 为什么这两个计算结果不同?这是xcode 6.1.
(lldb) print newBounds.size.height
(CGFloat) $0 = 446.5
(lldb) print newBounds.size.height * 6/4
(double) $1 = 669.75
(lldb) print newBounds.size.height * (6/4)
(double) $2 = 446.5
Run Code Online (Sandbox Code Playgroud) ios ×11
cocoa-touch ×4
objective-c ×3
xcode ×3
iphone ×2
swift ×2
app-thinning ×1
crashlytics ×1
ffmpeg ×1
firebase ×1
google-api ×1
google-oauth ×1
ios8 ×1
math ×1
oauth-2.0 ×1
photos ×1
video ×1
watchkit ×1
xcode10 ×1