我注意到自从将我的设备更新到 iOS 14 并使用 Xcode 12 以来,我的应用程序的启动时间显着增加(现在需要整整一分钟,而之前需要几秒钟)。我尝试了几个 Xcode 12 beta 并在模拟器中运行了该应用程序而没有问题,但是公开发布似乎带来了这个问题。
我测试了我的几个应用程序,它们都面临这个问题。再次运行应用程序(没有 Xcode)是即时的,即使在重新启动设备之后也是如此。
需要明确的是,我不是在这里谈论构建时间,这是在启动画面出现并且 Xcode 的状态为“在 iPhone 上运行”后应用程序启动所需的时间
有没有其他人遇到过这个问题,或者它可能与我的机器有关吗?
现在,AppDelegate和SceneDelegate从SwiftUI删除,你在哪里我把我以前在代码SceneDelegate和AppDelegate,火力地堡配置为前?
所以我目前在我的代码中有这个代码AppDelegate:
我现在应该把这段代码放在哪里?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
FirebaseConfiguration.shared.setLoggerLevel(.min)
FirebaseApp.configure()
return true
}
Run Code Online (Sandbox Code Playgroud) 我刚刚将 XCode 更新到版本 12,并且我正在使用 Firebase。我也更新了 pod,但是当我构建项目时,它给了我错误:
Double-quoted include "pb.h" in framework header, expected angle-bracketed instead
Run Code Online (Sandbox Code Playgroud)
这些错误是多个并且在 pod 中 GoogleDataTransport
即使我""用<>它替换它仍然不会消失。
我有这个正常UIDatePicker(对不起,它不是英文,请忽略):

但问题是它只在我按下日期选择器时出现:

而且我想知道如何仅使用代码显示第一张图像中的日期选择器(它用模糊效果覆盖所有屏幕),因此用户无需按日期选择器来显示日期选择器。谢谢。
我们的应用程序使用 CoreNFC 来扫描 NFC 标签,如果不支持 NFC,您可以使用 QR。这工作得很好,我们能够在模拟器中运行该应用程序以进行 (ui) 测试。
直到 Xcode12 / iOS14 GM 构建。在 iOS13(或更低版本)中,我们在模拟器上运行它不会有任何问题。
但是在 iOS14 模拟器 iPhone11 上运行它的 Xcode12 中,我们会得到以下结果:
dyld: launch, loading dependent libraries
DYLD_SHARED_CACHE_DIR=/Users/xxx/Library/Developer/CoreSimulator/Caches/dyld/19G73/com.apple.CoreSimulator.SimRuntime.iOS-14-0.18A372
DYLD_ROOT_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot
DYLD_LIBRARY_PATH=/Users/xxx/Library/Developer/Xcode/DerivedData/xxx-awnlestrbvesqqbynrhmluzhbcsc/Build/Products/Debug-iphonesimulator:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/introspection
DYLD_INSERT_LIBRARIES=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libBacktraceRecording.dylib:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSi
dyld: Library not loaded: /usr/lib/libnfshared.dylib
Referenced from: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreNFC.framework/CoreNFC
Reason: no suitable image found. Did find:
/usr/lib/libnfshared.dylib: mach-o, but not built for platform iOS-sim
Run Code Online (Sandbox Code Playgroud)
模拟器崩溃对我来说很有意义,因为模拟器无法扫描 NFC 标签,但这就是我所做的:
#if canImport(CoreNFC)周围import CoreNFC …在 iOS 14 中,Xcode 显示警告:
requestReview()' 在 iOS 14.0 中被弃用
我正在使用 StoreKit 在我的应用中自动询问评论。
func requestReview() {
guard shouldRequestReview else {return}
SKStoreReviewController.requestReview()
lastRequest = Date()
}
Run Code Online (Sandbox Code Playgroud)
如何摆脱那个警告?
我刚刚下载了 Xcode 12 beta 2,现在我在运行我的应用程序时在控制台中收到一堆奇怪的日志(使用 Xcode 11.5 时不会出现这些警告)。
它们看起来像下面这样:
objc[5551]: Class CSAudioFileManager is implemented in both
/Applications/Xcode-beta.app/Contents/Developer/Platforms/
iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/
Contents/Resources/RuntimeRoot/System/Library/
PrivateFrameworks/SpeakerRecognition.framework/SpeakerRecognition (0x1382890e0)
and
/Applications/Xcode-beta.app/Contents/Developer/Platforms/
iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/
Contents/Resources/RuntimeRoot/System/Library/
PrivateFrameworks/CoreSpeech.framework/CoreSpeech (0x13772c7a8).
One of the two will be used. Which one is undefined.
Run Code Online (Sandbox Code Playgroud)
我也为其他一些类(如 ( CSVoiceIdXPCClient, CSNNVADEndpointAnalyzer, CSAudioRecordContext, CSOSTransaction, 等)获取了此类日志。该应用程序使用 CoreData(与 CloudKit 结合使用)、FileManager 和 UserDefaults。如果应用程序使用 Xcode 11.5 运行,则不会显示日志,并且对于大多数类,我很确定它们不会在我的代码中使用(至少我不会故意使用它们)。
请注意,日志仅在使用 iOS 14.0 运行模拟设备时出现。例如,如果您选择 iPhone 11 Pro (13.5),则不会出现日志(仍然使用 Xcode 12)。
那么这个问题是否有解决方案,或者只是当前 Xcode 12 beta 版本的错误,该错误将在进一步的 Xcode 12 beta 版本发布期间被删除?
编辑:
现在objc[5551]...被替换为 …
最近的 WWDC 声明关于 iOS 14:
对于 iOS 14、iPadOS 14 和 tvOS 14,您需要通过 AppTrackingTransparency 框架获得用户的许可才能跟踪他们或访问他们设备的广告标识符。跟踪是指将从您的应用程序收集的用户或设备数据与从其他公司的应用程序、网站或离线资产收集的用户或设备数据相关联的行为,以用于有针对性的广告或广告
参考:用户隐私和数据使用
根据本指南,我们需要使用ATTrackingManager( AppTrackingTransparency ) 框架向用户询问跟踪权限。
我在 AppStore 上有一些应用程序,它们使用Google AdMob&FBAudienceNetwork向用户投放广告。
如果我不按照最新的 WWDC 指南升级这些应用程序,会发生什么情况?应用程序是否继续向用户投放广告?
如果用户不授予应用程序跟踪权限,会发生什么情况?
应用更新对广告收入有影响吗?
尝试回答这个与广告投放、收入和影响有关的问题 App Tracking Transparency
我的项目总是在使用 Xcode 11 的所有设备上正确运行,但在我安装 Xcode 12 beta 4 后,它无法在模拟器上构建。
我比较了 Xcode 11 和 Xcode 12 的构建日志,在 Xcode 12 中,我的主要目标似乎是在可可豆荚目标之前构建的,因此链接将失败,因为找不到 cocoapods 库。
如何修复构建目标的顺序?
在 Xcode 11 中,一切都很好。我自己的目标是在 cocoapods 目标之后构建的。
在 Xcode 12 中,构建乱序我自己的目标在 cocoapods 目标之前构建。
您好,我正在尝试显示一些通知数据。在我的通知中,我有一个通知 ID,可以根据推送的信息做出不同的反应。
我只是看不到那些新的 UNNotificationPresentationOptions 是什么。
在我的
userNotificationCenter(_: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
Run Code Online (Sandbox Code Playgroud)
我有
if notification.request.content.userInfo[keyName] as? String == "someId" {
// Bla bla stuffs
if #available(iOS 14.0, *) {
completionHandler([.list, .banner, .sound])
} else {
completionHandler([.alert])
}
} else if ...
Run Code Online (Sandbox Code Playgroud)
但是当使用 [.banner] 或 [.list] 或 [.banner, .list] (没有 .alert)时,我在前台什么也没有。在理想的情况下,我希望在通知中心列出通知并在我的应用程序中显示相关信息(在调用完成处理程序之前)。
我使用这些选项正确吗?