Under macOS 26 and iPadOS, the Help menu in many cases has a menu item for "App Help". This item has the following icon:
I need to use this in my own app. I am unable to find this icon in SF Symbols 7 beta. I've scanned all of the icons under "What's New". I've searched for "help", "light", and "bulb" and this icon does not appear.
Does anyone know if it's even a new SF Symbol? Or does anyone know of a way to use this icon?
General
RSS for tagDive into the vast array of tools and services available to developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Does anyone know where I can get to the API diffs for iOS 18 -> iOS 26?
Merhaba,
iOS üzerinde bir sözleşme onay uygulaması geliştiriyorum. Kullanıcıların dijital ortamda sözleşmeleri okuyup onaylaması gerekiyor. Ancak hukuki geçerlilik konusunda bazı tereddütlerim vardı.
Bursa’da yaşayan biri olarak bu konuda bir avukata danışmam gerekti. Şans eseri https://www.avukatcanata.com ile karşılaştım ve hem bireysel hem ticari sözleşmeler konusunda gerçekten çok net açıklamalar sundular. Özellikle elektronik imza ve KVKK uyumu hakkında verdikleri bilgiler sayesinde projemi yasal zemine oturtabildim.
Eğer bu tarz uygulamalar geliştiriyorsanız, mutlaka bir hukukçu görüşü alın. Yanlış bir adım size veya kullanıcınıza ciddi sonuçlar doğurabilir.
Teşekkürler 🍏
Hi, my server in Melbourne Australia is getting weather forecasts from a few places around Australia. When I look at the daily timesteps that I get back, they might be something like this:
"days": [
{
"forecastStart": "2025-06-25T00:00:00Z",
"forecastEnd": "2025-06-26T00:00:00Z",
"daytimeForecast": {
"forecastStart": "2025-06-25T07:00:00Z",
"forecastEnd": "2025-06-25T19:00:00Z",
"overnightForecast": {
"forecastStart": "2025-06-25T19:00:00Z",
"forecastEnd": "2025-06-26T07:00:00Z",}
It doesn't matter where I ask for - Melbourne, Darwin, Perth, it always comes back the same.
The documentation says that daytimeForecast is 7 am to 7 pm local and overnightForecast is 7pm to 7 am local.
However, in a place like Perth 7-19Z is 3 pm to 3 am, not 7 pm to 7 am like advertised.
I can see that for any given date, there are 3 maximum temperature forecasts, a 24 hour max, a daytime max and an overnight max and they differ from each other.
Can anyone help me understand what's happening here?
And furthermore in the example above, the 24 hour forecasts that have, for example this:
"forecastStart": "2025-06-25T00:00:00Z" ... Can the 00:00:00Z be trusted literally? Or is it more the case that it's "2025-06-25" but the HMS got tacked on in a conversion?
Hi everyone,
I’m working on a Capacitor app built with Angular, and I’m trying to call a Swift class directly from the root of the iOS project (next to AppDelegate.swift) without using a full Capacitor plugin structure.
The Swift file is called RtspVlcPlugin.swift and looks like this:
import Capacitor
@objc(RtspVlcPlugin)
public class RtspVlcPlugin: CAPPlugin {
@objc func iniciar(_ call: CAPPluginCall) {
call.resolve()
}
}
In AppDelegate.swift I register it like this:
if let bridge = self.window?.rootViewController as? CAPBridgeViewController {
bridge.bridge?.registerPluginInstance(RtspVlcPlugin())
print("✅ RtspVlcPlugin registered.")
}
The registration message prints correctly in Xcode logs.
But from Angular, when I try to call it like this:
import { registerPlugin } from '@capacitor/core';
const RtspVlcPlugin: any = registerPlugin('RtspVlcPlugin');
RtspVlcPlugin.iniciar({ ... });
I get this error:
{"code":"UNIMPLEMENTED"}
So, even though the plugin is registered manually, it’s not exposing any methods to the Angular/Capacitor runtime.
My question is:
What is the correct way to access a manually created Swift class (in the root of the iOS project) from Angular via Capacitor?
Thanks in advance!
Hi everyone,
I'm developing a Capacitor plugin to display an RTSP video stream using MobileVLCKit on iOS. The Android side works perfectly, but I can’t get the iOS plugin to work — it seems my Swift file is not being detected or recognized, even though I’ve followed the official steps.
What works:
I followed the Capacitor Plugin Development Guide.
I implemented the Android version of the plugin in Java inside the android/ folder. Everything works perfectly from Angular: the plugin is recognized and calls execute correctly.
The issue on iOS:
I implemented the iOS part in Swift, using the official MobileVLCKit documentation.
I initially placed my RtspVlcPlugin.swift file in the plugin’s iOS folder, as the docs suggest.
Then I moved it directly into the main app’s ios/App/App/ folder next to AppDelegate.swift and tried manual registration.
The problem:
Even though I manually register the plugin with:
if let bridge = self.window?.rootViewController as? CAPBridgeViewController {
bridge.bridge?.registerPluginInstance(RtspVlcPlugin())
print("✅ Plugin RtspVlcPlugin registered manually.")
}
It prints the registration message just fine.
BUT from Angular, the plugin is not recognized: Capacitor.Plugins.RtspVlcPlugin has no methods, and I get this error:
"code":"UNIMPLEMENTED"
I also tried declaring @objc(RtspVlcPlugin) and extending CAPPlugin.
I’ve verified RtspVlcPlugin.swift is added to the target and compiled.
The Swift file doesn’t seem to register or expose any methods to Angular.
I even tried adding the code without using a plugin at all — just creating a Swift class and using it via the AppDelegate, but it still doesn't expose any callable methods.
My Swift code (RtspVlcPlugin.swift):
import Capacitor
import MobileVLCKit
@objc(RtspVlcPlugin)
public class RtspVlcPlugin: CAPPlugin, VLCMediaPlayerDelegate {
var mediaPlayer: VLCMediaPlayer?
var containerView: UIView?
var spinner: UIActivityIndicatorView?
@objc func iniciar(_ call: CAPPluginCall) {
guard
let urlStr = call.getString("url"),
let x = call.getDouble("x"),
let y = call.getDouble("y"),
let w = call.getDouble("width"),
let h = call.getDouble("height"),
let url = URL(string: urlStr)
else {
call.reject("Missing parameters")
return
}
DispatchQueue.main.async {
self.containerView?.removeFromSuperview()
let cont = UIView(frame: CGRect(x: x, y: y, width: w, height: h))
cont.backgroundColor = .black
cont.layer.cornerRadius = 16
cont.clipsToBounds = true
let sp = UIActivityIndicatorView(style: .large)
sp.center = CGPoint(x: w/2, y: h/2)
sp.color = .white
sp.startAnimating()
cont.addSubview(sp)
self.spinner = sp
self.containerView = cont
self.bridge?.viewController?.view.addSubview(cont)
let player = VLCMediaPlayer()
player.delegate = self
player.drawable = cont
player.media = VLCMedia(url: url)
self.mediaPlayer = player
player.play()
call.resolve()
}
}
@objc func cerrar(_ call: CAPPluginCall) {
DispatchQueue.main.async {
self.mediaPlayer?.stop()
self.mediaPlayer = nil
self.spinner?.stopAnimating()
self.spinner?.removeFromSuperview()
self.spinner = nil
self.containerView?.removeFromSuperview()
self.containerView = nil
call.resolve()
}
}
public func mediaPlayerStateChanged(_ aNotification: Notification!) {
guard let player = mediaPlayer,
player.state == .playing,
let sp = spinner else { return }
DispatchQueue.main.async {
sp.stopAnimating()
sp.removeFromSuperview()
self.spinner = nil
}
}
}
In the Angular project, I’m using the plugin by manually registering it with registerPlugin from @capacitor/core. Specifically, in the service where I need it, I do the following:
import { registerPlugin } from '@capacitor/core';
const RtspVlcPlugin: any = registerPlugin('RtspVlcPlugin');
After this, I try to call the methods defined in the iOS plugin, like RtspVlcPlugin.iniciar({ ... }), but I get an UNIMPLEMENTED error, which suggests that the plugin is not exposing its methods properly to the Angular/Capacitor environment. That makes me believe the problem lies in how the Swift file is integrated or registered, rather than how it is used from Angular.
I’d appreciate any guidance on how to properly expose a Swift-based Capacitor plugin’s methods so that they are accessible from Angular. Is there any additional registration step or metadata I might be missing on the iOS side?
OS:macOS15.5
CPU:Apple M1 Pro
zsh终端中执行python或pip命令,提示未找到命令,但执行python3或pip3命令,预期也是提示未找到命令,实际结果弹出Install Command Line Developer Tools弹窗安装,网上查阅资料,删除/usr/bin/python3、/usr/bin/pip3、/usr/local/bin/python3、/usr/local/bin/pip3文件即可达到预期,但无权限删除/usr/bin/python3与/usr/bin/pip3文件,尝试过root账号、进行系统恢复模式暂时禁用SIP解决方案,都无法解决;🙏大佬指点一二;
Topic:
Developer Tools & Services
SubTopic:
General
My experience with Swift 6 strict concurrency so far doesn't match my understanding of implicit MainActor isolation semantics.
This is a cross-post from StackOverflow. I will link answers between both forums.
TL;DR
Build succeeds when testing a struct declared in the test module, but fails when the struct is moved to the main module:
Main actor-isolated property … cannot be accessed from outside the actor.
Steps to reproduce
Open up Xcode 26 beta 2 on macOS 26 (probably also ok on current stables).
Create a new Swift app with Swift testing, no storage. Call it WhatTheSwift.
Set the Swift Language Version on all three targets to Swift 6.
Update the default test file to be this:
import Testing
@testable import WhatTheSwift
struct WhatTheSwiftTests {
@Test func example() async throws {
let thing = Thing(foo: "bar")
#expect(thing.foo == "bar")
}
}
struct Thing {
let foo: String
}
That should build fine, and the tests should pass.
Now, move the Thing declaration into its own Thing.swift file in the WhatTheSwift module, and try running the test again. You should see this:
Observations
Marking the test @MainActor allows the test to pass, suggesting the compiler actually wants to isolate Thing.foo to the main actor.
My question
Why? And why only when Thing is in a different module?
In Simulator Korean character system has not working well.
I want to type "", however, if I type the same thing on the simulator's virtual keyboard (Korean), it comes out as ''.
I think this is caused by IME system in ios simulator bug. I think this has been happening since IOS 17.
I can see that iOS beta 2 was released yesterday. I'm not running the beta yet on my actual iPhone, but I wanted to see if an issue I reported in beta 1 was fixed.
Is there a way to update my iOS 26 simulator for beta 2? Usually, there's a new Xcode download that includes the new simulator, but it looks like the most recent Xcode beta release was June 9.
Hi,
I have just updated my MacBook to Tahoe Beta 2, but now I cannot boot the iOS simulator.
Where can I download the next Xcode beta? The Application download page is still showing the Xcode beta 1 build.
Cheers,
Jeff
I need to automate updating to latest iOS betas as part of my ci script, but I can't get it to install iOS 26.0 beta for the life of me, using xcodes or xcodebuild.
I can see the version listed using xcodes runtimes --include-betas, and I tried sudo xcodes runtimes install "iOS 26.0-beta1", but I would get the error
Downloading Runtime iOS 26.0-beta1: 0%
Error: ProcessExecutionError()\
I also tried xcodebuild -downloadPlatform iOS -buildVersion 23A5260l, where I found the specific build id on apples dev images website. But I would get the error
iOS 23A5260l is not available for download.
Specific version download failed, trying downloadPlatform ios latest...
And similar error for trying xcodebuild -downloadPlatform iOS -buildVersion 26.0 or other version ids I found online. But this command would work for any other versions and betas listed on the website.
I was able to install iOS 26.0 through xcodebuild -downloadPlatform iOS, which automatically installed it for me, but this is unideal for my situation, as I want to control which betas to install instead of just the latest one (like iOS 18.6 beta that just came out).
Is anyone else also struggling with these errors?
xcodes version 1.6.2 Xcode version 26.0 Beta (installed and selected through xcode)
We have a .ipa file that we need to side load on iPhone via USB connected to a MAC. IPA file will be on MAC. We can't use enterprise license. We have a business use case where we need to side load the app. Any way to do that or can be reach apple support for this? Please help.
Note: The iPhones attached will not have the Apple ID logged in. There are companies who are side loading the app for business purpose on the customers phone.
Hi! I'm new at developing apps. I built my app with Expo and it's working fine in simulator and my iPhone 14 as well.
But when I try to run the build in my iPhone with TestFlight it crashes instantly :/
This is part of the log:
Incident Identifier: B0ED8DEF-A0F0-4D0C-B3BB-3BB9CAB3242A
Distributor ID: com.apple.TestFlight
Hardware Model: iPhone14,7
Process: colbakapp [83024]
Path: /private/var/containers/Bundle/Application/44211687-140E-4DF3-A577-CB68CE6414B0/colbakapp.app/colbakapp
Identifier: com.colbak.colbakapp
Version: 1.0.0 (3)
AppStoreTools: 16F3
AppVariant: 1:iPhone14,7:18
Beta: YES
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.colbak.colbakapp [18141]
Date/Time: 2025-06-22 13:26:29.0142 -0400
Launch Time: 2025-06-22 13:26:28.6532 -0400
OS Version: iPhone OS 18.5 (22F76)
Release Type: User
Baseband Version: 3.60.02
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: SIGNAL 6 Abort trap: 6
Terminating Process: colbakapp [83024]
Triggered by Thread: 2
Thread 0:
0 libsystem_kernel.dylib 0x00000001f2e4fce4 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x00000001f2e5339c mach_msg2_internal + 76 (mach_msg.c:201)
2 libsystem_kernel.dylib 0x00000001f2e532b8 mach_msg_overwrite + 428 (mach_msg.c:0)
3 libsystem_kernel.dylib 0x00000001f2e53100 mach_msg + 24 (mach_msg.c:323)
4 CoreFoundation 0x00000001a1c42900 __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2637)
5 CoreFoundation 0x00000001a1c411f0 __CFRunLoopRun + 1208 (CFRunLoop.c:3021)
6 CoreFoundation 0x00000001a1c42c3c CFRunLoopRunSpecific + 572 (CFRunLoop.c:3434)
7 GraphicsServices 0x00000001eee21454 GSEventRunModal + 168 (GSEvent.c:2196)
8 UIKitCore 0x00000001a4655274 -[UIApplication _run] + 816 (UIApplication.m:3845)
9 UIKitCore 0x00000001a4620a28 UIApplicationMain + 336 (UIApplication.m:5540)
10 colbakapp 0x00000001046296b0 main + 64 (AppDelegate.swift:6)
11 dyld 0x00000001c8b17f08 start + 6040 (dyldMain.cpp:1450)
Thread 1:
0 libsystem_pthread.dylib 0x000000022c350aa4 start_wqthread + 0
Thread 2 Crashed:
0 libsystem_kernel.dylib 0x00000001f2e5a1dc __pthread_kill + 8
1 libsystem_pthread.dylib 0x000000022c357c60 pthread_kill + 268 (pthread.c:1721)
2 libsystem_c.dylib 0x00000001a9c782d0 abort + 124 (abort.c:122)
3 libc++abi.dylib 0x000000022c2815a0 abort_message + 132 (abort_message.cpp:78)
4 libc++abi.dylib 0x000000022c26fef4 demangling_terminate_handler() + 316 (cxa_default_handlers.cpp:72)
5 libobjc.A.dylib 0x000000019f1e7c08 _objc_terminate() + 172 (objc-exception.mm:499)
6 libc++abi.dylib 0x000000022c2808b4 std::__terminate(void ()()) + 16 (cxa_handlers.cpp:59)
7 libc++abi.dylib 0x000000022c2840d0 __cxa_rethrow + 188 (cxa_exception.cpp:658)
8 libobjc.A.dylib 0x000000019f1e5568 objc_exception_rethrow + 44 (objc-exception.mm:399)
9 colbakapp 0x00000001049f7b68 invocation function for block in facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const, NSInvocation*, NSMutableArray*) + 200 (RCTTurboModule.mm:444)
10 colbakapp 0x00000001049fc538 facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1::operator()() const + 36 (RCTTurboModule.mm:463)
11 colbakapp 0x00000001049fc538 decltype(std::declval<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1&>()()) std::__1::__invoke[abi:ne190102... + 36 (invoke.h:149)
12 colbakapp 0x00000001049fc538 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMu... + 36 (invoke.h:224)
13 colbakapp 0x00000001049fc538 std::__1::__function::__alloc_func<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1, std::__1::allocator<face... + 36 (function.h:171)
14 colbakapp 0x00000001049fc538 std::__1::__function::__func<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1, std::__1::allocator<facebook::... + 104 (function.h:313)
15 libdispatch.dylib 0x00000001a9bbcaac _dispatch_call_block_and_release + 32 (init.c:1575)
16 libdispatch.dylib 0x00000001a9bd6584 _dispatch_client_callout + 16 (client_callout.mm:85)
17 libdispatch.dylib 0x00000001a9bc52d0 _dispatch_lane_serial_drain + 740 (queue.c:3939)
18 libdispatch.dylib 0x00000001a9bc5dac _dispatch_lane_invoke + 388 (queue.c:4030)
19 libdispatch.dylib 0x00000001a9bd01dc _dispatch_root_queue_drain_deferred_wlh + 292 (queue.c:7198)
20 libdispatch.dylib 0x00000001a9bcfa60 _dispatch_workloop_worker_thread + 540 (queue.c:6792)
21 libsystem_pthread.dylib 0x000000022c350a0c _pthread_wqthread + 292 (pthread.c:2696)
22 libsystem_pthread.dylib 0x000000022c350aac start_wqthread + 8
Thread 3:
0 libsystem_pthread.dylib 0x000000022c350aa4 start_wqthread + 0
...
EOF
Topic:
Developer Tools & Services
SubTopic:
General
Hello,
I'm encountering an issue when trying to build and launch a Flutter app on a physical iOS device using Android Studio.
Here is the full log:
`Launching lib/main.dart on (iPhone Name) in debug mode...
Automatically signing iOS for device deployment using specified development team in Xcode project: (Project ID)
Running Xcode build...
Xcode build done. 19.7s
Failed to build iOS app
Could not build the precompiled application for the device.
Error (Xcode): Target debug_unpack_ios failed: Exception: Failed to codesign (Project Names)/build/ios/Debug-iphoneos/Flutter.framework/Flutter with identity (identity ID).
Error launching application on (iPhone Name).`
This only happens when using Android Studio.
When I build the same project using Xcode, it runs fine on the same device.
Background:
I accidentally deleted all Apple accounts from Xcode recently.
In Keychain Access, I had three identical certificates; I deleted the older two and kept the newest one.
I suspect this may be related to provisioning or code signing, but I’m not sure how to resolve it within Android Studio.
Any advice or steps to fix this would be greatly appreciated.
I created a new test project in Xcode using the iOS > App template, enabled automatic signing in Signing & Capabilities, and selected my team.
I then tried building and installing the app on a real device, and it worked successfully.
This confirms that there are no issues with code signing or provisioning on the Apple side.
Thanks in advance!
Topic:
Developer Tools & Services
SubTopic:
General
There is a bug in Unity Plugins: Corehaptics.AssetPickerDrawer throws exceptions and draws incorrectly when fieldInfo or assetType is null (FB17305973). I fixed it and created a pull request: https://github.com/apple/unityplugins/pull/47
It has been months and this bug is really annoying.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Prototyping
Core Haptics
Apple Unity Plug-Ins
Hi, I am having an issue with xcodebuild -showdestinations command.
Steps to reproduce:
Create a new iOS application project in Xcode or use an existing one.
Navigate to this project in a terminal.
Run xcodebuild -project 'your-project-name.xcodeproj' -scheme 'your-scheme' -showdestinations
What I expect:
All destinations available in the Xcode UI should be listed.
What I get:
It depends. For new projects, I consistently get only generic platform destinations and my connected physical device.
When I run the same command on an older project, I sometimes see all the expected destinations. It seems to be a roughly 50/50 chance between the two outcomes.
Is there a way to get consistent results from xcodebuild -showdestinations? What can I do to ensure all destinations are listed reliably?
Here is a more detailed log and a screenshot:
❯ xcodebuild -workspace 'WorkoutDiary.xcworkspace' -scheme 'WorkoutDiary' -showdestinations
Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace WorkoutDiary.xcworkspace -scheme WorkoutDiary -showdestinations
User defaults from command line:
IDEPackageSupportUseBuiltinSCM = YES
2025-06-17 19:13:50.261 xcodebuild[34753:6177985] DVTDeviceOperation: Encountered a build number "" that is incompatible with DVTBuildVersion.
2025-06-17 19:13:50.342 xcodebuild[34753:6177959] [MT] DVTDeviceOperation: Encountered a build number "" that is incompatible with DVTBuildVersion.
Resolve Package Graph
Resolved source packages:
<REDACTED>
Available destinations for the "WorkoutDiary" scheme:
{ platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:<REDACTED>, name:My Mac }
{ platform:iOS, arch:arm64, id:<REDACTED>, name:<REDACTED> }
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
❯ xcodebuild -workspace 'WorkoutDiary.xcworkspace' -scheme 'WorkoutDiary' -showdestinations
Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace WorkoutDiary.xcworkspace -scheme WorkoutDiary -showdestinations
User defaults from command line:
IDEPackageSupportUseBuiltinSCM = YES
2025-06-17 19:13:52.393 xcodebuild[34757:6178035] DVTDeviceOperation: Encountered a build number "" that is incompatible with DVTBuildVersion.
2025-06-17 19:13:52.472 xcodebuild[34757:6178020] [MT] DVTDeviceOperation: Encountered a build number "" that is incompatible with DVTBuildVersion.
Resolve Package Graph
Resolved source packages:
<REDACTED>
Available destinations for the "WorkoutDiary" scheme:
{ platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:<REDACTED>, name:My Mac }
{ platform:iOS, arch:arm64, id:<REDACTED>, name:<REDACTED> }
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
{ platform:iOS Simulator, id:DBFB9613-0261-4544-908A-335570F3C35F, OS:18.3.1, name:iPhone 11 }
{ platform:iOS Simulator, id:A48C309C-231A-4197-A295-900F89C94D86, OS:18.3.1, name:iPhone 16 Pro Max }
I have developed a Swift macro called @CodableInit in the SwiftCodableMacro module, and I’m able to use it successfully in my main project.
Here’s an example usage:
import SwiftCodableMacro
@CodableInit // This is for Codable macros
public class ErrorMonitoringWebPlugin {
public var identifier: UUID = UUID()
// MARK: - Codable
required public init(from decoder:Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
identifier = try values.decode(UUID.self, forKey: .identifier)
}
}
However, when I try to write a unit test for the ErrorMonitoringWebPlugin class, I encounter an issue. Here's the test case:
func testCodableSubjectIdentifierShouldEqualDecodedSubjectIdentifier() {
self.measure {
let encoder = JSONEncoder()
let data = try? encoder.encode(subject)
//Here I am getting this error
Class 'JSONEncoder' requires that 'ErrorMonitoringWebPlugin' conform to 'Encodable'
let decoder = JSONDecoder()
let decodedSubject = try? decoder.decode(ErrorMonitoringWebPlugin.self, from: data!)
XCTAssertEqual(subject.identifier, decodedSubject?.identifier)
}
}
The compiler throws an error saying:
Class 'JSONEncoder' requires that 'ErrorMonitoringWebPlugin' conform to 'Encodable'
Even though the @CodableInit macro is supposed to generate conformance, it seems that this macro-generated code is not visible or active inside the test target.
How can I ensure that the @CodableInit macro (from SwiftCodableMacro) is correctly applied and recognized within the XCTest target of my main project?
I've been messing around with converting my app icons to use Icon Composer. My app has multiple app icons, but I've noticed that I cant seem to set .icon files using the alternate app icon api. I believe this is due to the requirement that alternate app icons live in the Assets Catalogue but .icon files go anywhere in your project. Is there any plan to support this? Or am i missing something?
I was able to successfully set a .icon file for the primary app icon.
I submitted a Feedback (FB17843422) on Monday evening after the keynote about Tahoe beta 1. At the time it still wasn't listed in the "What build does the issue occur on?" dropdown. I selected "I'm not sure" instead hoping I could update it later but as far as I can tell that isn't the case since "Add more information" only lets me add additional comments.
Is there some way for me to do that or is it even necessary?