Posts under Machine Learning & AI topic

Post

Replies

Boosts

Views

Activity

关于我使用Swift和Metal制作的神经网络引擎
我今年18岁。没有机器学习背景,没有上过大学,高中都没去上,没有导师。 几天前我盯着一张纸发呆。突然想:为什么计算机神经网络一定要是2D的?可以模拟生物吗?为什么一定要在平面上算?如果多个平面,岂不是翻倍?如果把六张纸想象成一个魔方,六个面各自承载神经元,八条体对角线变成新的通信通道会怎么样? 我真的很喜欢折腾这些,然后我立刻制定了详细计划,使用AI工具辅助写下了第一个 kernel。跑崩了。我又重新想了一下,和qq群友分享了我的目标,又写。又崩。连续几十次。没有 PyTorch,没有 TensorFlow,没有 CUDA。只有Swift和Metal。因为我的电脑显卡是AMD Vega 64,没装任何框架辅助,因为我想明白最底层的运行方式是什么原理。 这就是CubeNN。 ##以下为AI的详细解答,内容与架构改动太多,我在这里一次讲不清楚 它是什么 一个用魔方几何作为计算架构的神经网络引擎。 标准 Transformer: 把数据排成一行,O(n²) 地互相看 CubeNN: 把数据分布在 14 个面上,只在该看的地方看 6 个标准面 → 块稀疏注意力(粗看全局 + 细看局部) 8 个 X 面对角线 → 跨面信息桥(不做 Attention,只负责传递) 每轮:6 面算 → 投影到 8 X 面 → 上采样精炼 → 融合回 6 面 最关键的是 Cube Cascade——一个树+链级联推理: 树阶段: 1 个魔方 spawn 8 个 → 8 个 spawn 64 个 → 73 个并行探索 GPU 上同时跑,选最优路径 链阶段: 最优叶子无限深度精炼 3-5 步收敛,方差提升 ~7% 怎么实现的 纯 Swift + Metal。零依赖。零框架。 // 大致代码就是这些 import Metal import Foundation let device = MTLCreateSystemDefaultDevice()! let library = try! device.makeLibrary(filepath: "cube_nn.metallib") // ...12 个 GPU kernel,12,000 次 dispatch 关键技术决策: 单 Command Buffer:整个树阶段 73 个魔方的全部 kernel dispatch 打包进一个 CB,0 次 CPU-GPU 同步 Pipeline State 缓存:编码从 1022ms 降到 42ms Buffer 偏移:所有 73 个魔方的 14 个面存进一个连续 buffer,kernel 通过 buffer(15) 传偏移量 FP16:N≥64 时半精度提速 21% 性能 ##经过测试,但是因设备差异可能不准确,仅参考 AMD Radeon RX Vega 64 (2017 年显卡, 14nm, 295W): 规模 神经元 魔方数 耗时 N=32 6,144 73 (树) 435ms N=64 24,576 21 (树) 817ms N=128 98,304 1 116ms N=32 全连接 Attention 每层 201M FLOP → CubeNN 块稀疏 370K FLOP (544× 减少) N=128 全连接需要 32GB 显存(物理上不存在)→ CubeNN 用 192KB N=256 全连接需要 2.2T FLOP → CubeNN 52M FLOP (42,300× 减少) 代码体积:161KB。 对比 PyTorch 的 800MB。 我经历了什么 这个项目最困难的不是写 kernel,是在没有任何人告诉我"能不能做"的情况下,靠反复试错找到路。 第一次试图跑 73 个魔方,GPU 直接 hang 了。花了 3 天定位到是 Command Buffer 堆叠过多。 改了 single encoder 方案,又碰上 SIGILL——Metal 不允许 makeBuffer(length: 0),B=0 时创建了零长度 buffer。 想用 threadgroup memory 做 kernel fusion,结果跨 threadgroup 读不到数据,才明白 LDS 是 per-group 的。 N=64 的 FP16 要手动写 float↔half 转换函数,因为 macOS 11 上 Float16 类型被标为 unavailable。 每一次崩溃都教会我一个 Metal 的底层细节。没有人教我,但 Metal 的报错信息就是最好的老师。 为什么发在 Apple 开发者论坛 因为这是为苹果生态而生的项目。CubeNN 从头到尾只用了两个东西:Swift 和 Metal。它不需要移植就能跑在任何 Apple Silicon Mac 上(API兼容)。如果未来能把部分 kernel 映射到 Neural Engine,效率会再翻几倍。 我想问 Apple 的 Metal 工程师和 Core ML 团队: ** 有没有更好的 GPU 任务调度方式?**目前表现仍然欠佳(对于我这个完美主义者来说),可能改得有点乱了 有没有兴趣评估这个架构在 M4 上的表现? 我手里只有 Vega 64。M4 GPU + ANE方法 跑 CubeNN 会是什么效果? 源代码 ├── run.swift # 统一 CLI,参数化 N/B/depth ├── src/ │ ├── cube_nn.metal # FP16 kernel │ └── cube_nn_fp32.metal # FP32 kernel └── benchmarks/ # 实测数据 如果你读到了这里——谢谢你。一个门外汉靠痴狂的,纯粹到几乎是妄想的主意和Metal走到了这里。我懂的不是很多,如果这个架构有任何价值,我想让它变得更好。任何建议、批评、或者指教,都非常欢迎。
1
0
1k
Jul ’26
Foundation Models: Model-level refusal regression on iOS 27 beta for health app prompts (not guardrailViolation)
I have a health app on the App Store that uses Foundation Models to generate brief narrative summaries from the user's own glucose and menstrual cycle data. No medical advice, just supportive summaries of their own numbers. This has been working reliably on iOS 26.x since early 2026. After updating to iOS 27 beta 2, every prompt is refused. The error is LanguageModelError ("The model refused to answer" / "May contain sensitive content"), not GenerationError.guardrailViolation. I've confirmed: Same device, same code, same prompts. Worked on iOS 26.x, fails on iOS 27 beta 2. Two independent features with different prompt structures and different service architectures are both affected. Using SystemLanguageModel(guardrails: .permissiveContentTransformations) does not help. The classifier passes. The model itself refuses. The prompts contain terms like "luteal phase," "progesterone," "glucose," "time in range," and "diabetes" in the system instructions. This appears to be a model-level sensitivity change in the iOS 27 on-device model that broadly blocks health/medical terminology, even when the use case is summarizing the user's own data. Filed as FB23513774 with the full prompt text, instructions, and source file attached. Is anyone else seeing model-level refusals (not guardrailViolation) on iOS 27 beta for health or medical content? Related threads from iOS 26 betas: Model Guardrails Too Restrictive? Model w/ Guardrails Disabled Still Refusing Using Past Versions of Foundation Models As They Progress
1
0
579
Jul ’26
Inquiry regarding App Intent file handling in Siri
Hello Team, I am writing to seek clarification regarding an issue I am encountering while integrating App Intents within my application. I have configured an App Intent designed to accept an IntentFile as a parameter for processing. When testing this functionality via the Siri interface, I attach the image file and provide the trigger phrase as expected. However, Siri does not seem to recognize or associate the attached image as the required IntentFile. Consequently, the interaction fails to proceed, and Siri continues to prompt me to select a file. Could you please advise if there is a specific configuration requirement or a known limitation regarding how Siri handles file attachments for IntentFile parameters? I would appreciate any guidance on whether this is an issue with my current implementation or if I am missing a necessary step in the setup process. Thanks & Regards Suresh
1
0
774
Jul ’26
Core AI vs LiteRT
I am trying to decide what technology to adopt for local AI inference on mobile devices. I tried the EdgeGallery demo app and was genuinely impressed. For an app using local Gemma 4, LiteRT-LM gives me a shared, OS-managed model on Android via AICore, up-to-date Gemma 4 support, and a working ANE/Core ML delegate on iOS today. What does building on Core AI’s .aimodel pipeline get me that LiteRT-LM doesn’t? Core AI has no cross-app shared memory, and every app has to bring its own model resources regardless. Also, the current model catalog seems to trail LiteRT’s. What am I missing?
0
0
598
Jul ’26
Can any Apple Watch running WatchOS 27 access PCC via Foundation Models?
Apologies, if I've missed the answer already here, I've searched around but can't find it. Foundation models and Private Cloud Compute require Apple Intelligence to be enabled in Settings as mentioned here. At the same time it says that Foundation Models PCC calls are supported on all Apple Watch models that run WatchOS 27. So, will there be a seperate Apple Intelligence setting in WatchOS 27 for those devices? Otherwise if a user has an Apple Watch Series 11 (which does support Apple Intelligence) paired with an iPhone 15 (which doesn't support Apple Intelligence), will they be unable to use the Foundation Models PCC calls from WatchOS in my app? Despite the fact the iPhone isn't involved in these queries anyway?
1
1
847
Jul ’26
Core AI Debugger Beta Questions
Hi guys, I am a new core developer. Recently I am trying the newly released core ai debugger tool and meet some issues. I am not sure whether the related functions of debugger is ready in beta package. Reference Run: aimodel on device versus intermediate dump I used the intermediate exporting api to export the intermediate dump data of MobileNet2.0 and converted the same MobileNet Model to .aimodel. But the compare button is not usable. the suffix of intermediate file suffix is OK(can be selected). The debugger is a GUI so I cannot figure out whether I exported the intermediate data incorrectly. (1st attached png ) on device model run compare I just simply tried the different computing unit and different input for a simple 'add/sub/mul/div' toy model. Especially set the input different but the comparison results seems to be empty I am not sure whether I modify the debugger tool incorrectly. Hope someone sharing experience. My Gratitude.
0
0
568
Jun ’26
Visual Intelligence: controlling the "More results" button and the app result tab (ordering / opt-out)?
I've integrated my app with Visual Intelligence (iOS 26) using the semanticContentSearch schema. Image results are populated via an IntentValueQuery returning my entities, and the "More results" button is backed by an intent declared as: @available(iOS 26.0, *) @AppIntent(schema: .visualIntelligence.semanticContentSearch) struct ShowSearchResultsIntent { static let title: LocalizedStringResource = "Search products by image" static let openAppWhenRun: Bool = true var semanticContent: SemanticContentDescriptor func perform() async throws -> some IntentResult { /* deep-link into in-app search */ } } From WWDC25 (session 275) and WWDC26 (session 297) my understanding is that: the "More results" button is provided automatically by the system once this schema intent is adopted; returning an empty array from the value query lets the system show an empty response; my app appears as a result tab alongside other adopting apps, and the system decides the ordering based on the available image search providers on the device. I have a few questions about how much of this an app can control at runtime: "More results" button Is there any supported way to conditionally show or hide the system "More results" button at runtime (e.g., region, A/B test, server-driven feature flag)? Or is it strictly tied to the static presence of the semanticContentSearch intent? If IntentValueQuery returns an empty array, does the "More results" button still appear? Is there any API to suppress the button while keeping the schema intent declared? App result tab ordering How exactly does the system decide the order of the app result tabs? Is it based on relevance/similarity, app category, user behavior, or something else? Is there anything a developer can do to influence where their tab appears, or is ordering entirely system-controlled? App result tab presence / opt-out Once the integration is implemented, my app's tab appears automatically. Is there a supported way to conditionally opt out of appearing as a result tab at runtime (e.g., based on region or a feature flag)? Or is the only way to not appear to omit the integration at build time (or gate it by OS availability)? Thanks!
0
0
454
Jun ’26
Can output images from imagePlaygroundSheet be used as input for third-party video generation APIs?
I'm developing an iOS app that uses imagePlaygroundSheet to generate images based on AI-generated prompts (not user-typed text). I would like to confirm whether the following usage is permitted under the Apple Developer Program License Agreement: Generate an image using imagePlaygroundSheet within my app Pass the resulting image (obtained via the completion handler URL) as an input to a third-party video generation API (e.g., to create an image-to-video animation) Offer this video generation as a paid feature (consumable in-app purchase) within my app I've reviewed Section 3.2(8) of the ADPLA, which prohibits using "output generated from an Apple model to train, fine-tune, or improve another artificial intelligence model." My understanding is that this clause is specifically about training/improving AI models, not about using the output image as a content input for a separate processing step (e.g., animation). Could someone confirm: Whether passing imagePlaygroundSheet output to a third-party API for further processing (not training) is permitted Whether monetizing a feature that uses this combined output is permitted Thank you in advance for any guidance.
0
0
423
Jun ’26
I got old Siri UI instead
I’m on a base iPhone 17 and I‘ve been approved from the waitlist over two weeks ago and when I use Siri, I get the old Siri from before Apple Intelligence was a thing (Glowy orb at the bottom). Inside Siri settings, it looks like it’s supposed to be set up for the new SirI as it shows the app settings. Here are my observations I have found from using beta 1 to 2. Beta 1: Whenever I have the new Siri “enabled”, there is no app I can type “siri://“ and it‘ll open the Siri open saying that’s there’s an update in progress. But if I type that in when I’m using the previous Siri, the app is there and it’s blank When new Siri is ”enabled” and whenever I ask Siri a question she’ll either think and never stop or output a blank answer. But when I turn Siri back to its previous version and open the “sir://“, it stores the conversation and when I open it, it actually answered my question. Beta 2: When installing beta 2 I said “new Siri“ enabled Once it was done installing, I went to iPhone storage and saw that “Apple Intelligence“ storage is increasing size. But then after a minute, it went back down to 14GB Still gave me the old Siri UI Now the siri app is not accessible when typing “siri://“ Siri mode is now in the camera app but it says it’s unavailable The ChatGPT extension area is now blocked because assets are downloading Whenever I visual intelligence and press ask it says that siri support is downloading I left siri alone for 3 days and nothing happened. Still stuck with old siri The ask siri option is everywhere now and when I press it, nothing happens Right now I’m using the previous version of Siri and hoping this bug will be patched and I can use the new Siri AI in Beta 3. *the screenshot provided shows what happens when I use Siri in beta 2 when it’s enabled.
0
0
630
Jun ’26
LongRunningIntent run from in the app?
If I attempt to use a LongRunningIntent from a SwiftUI Button, using the Button(_:AppIntent:) control, I get the following errors: [LongRunningIntent <<E:<unknown>>>] No IntentContext available performBackgroundTask threw: noContext Intent failed to execute with error: LNPerformActionErrorCodeUnsupportedValueType It runs as expected when run from the Shortcuts app, but fails when run from a button within the app. Feedback ID (with sample app): FB23492034
1
1
589
Jun ’26
IndexedEntities and Siri AI
Currently, I have spotlight entities show up when I search for them using Spotlight on iOS 27. These entities are things that are important for users, like campus buildings, accessible entrances, assignments, and more. However, after getting access to Siri AI, it seems that none of this information at all is available to Siri, yet all of it is sitting there in the spotlight index and viewable with a written query. I was told by an Apple Engineer that creating Indexed and EnumerableEntities, and indexing them via the App Intents framework, should expose information about these items to Siri, so if I query: "[Building name] in Ohio State" it would at least show me what the app has for that information. Presently, Siri uses the web for everything and doesn't pull in any spotlight information for my app, despite either creating wrapper entities or using the API associating with spotlight. With Siri AI, it would be so much more helpful for a disabled user to say "Orton Hall accessible entrance" and Siri to know that there's 1 accessible entrance indexed in spotlight in my app, and then show or open it, instead of querying the web or saying it can't answer the question. It has all available information already in spotlight to answer this question. Currently, as far as I'm aware, something like this simply doesn't work, unless your app conforms to the strict use cases of making reminders or calendar events, all of which aren't useful here. Can a Frameworks engineer please clarify precisely when and how IndexedEntities (paired with an a corresponding macro-annotated OpenIntent) eg: @AppIntent(schema: .system.open) struct OpenBuildingIntent: OpenIntent { @Parameter(title: "Building") var Building: BuildingEntity ... will or will not be visible using Siri AI? To me it seems I have wasted a lot of time porting actions within my app to App Intents, and viewable entities with AppEntity, only to have Siri not be able to use any of this information out of the box.
2
0
1.4k
Jun ’26
App schema domains for trains, flighs, ferrys and othe public transport
Hi everyone, I've submitted a Feedback request (FB23469644) asking to introduce a generic Transportation Journey schema for App Intents. At the moment, there doesn't seem to be a way to donate structured public transportation trips (train, flight, bus, ferry, etc.) to Siri's semantic index. While many travel apps already have rich journey data, there is no common semantic model that represents: Multi-leg journeys Departure and arrival stations/airports/stops Platforms, tracks, gates, terminals Scheduled and real-time departure/arrival information Delays and cancellations Ticket and reservation information This seems like a natural addition to the existing App Intents schemas and would enable Siri, Spotlight, and Apple Intelligence to better understand upcoming journeys across all transportation providers. If you're building a travel or mobility app and have encountered the same limitation, I'd appreciate hearing your thoughts. Any idea if the old Siri event suggestion API gets is indexed by Siri Semantic Index / Siri AI?
3
6
720
Jun ’26
AppIntents and String catalog: how can we support both singular and plural forms for TypeDisplayRepresentation (used by DeleteIntent in the Shortcuts app for example)
Hello, I’m implementing the AppIntents framework in my app. I want to translate the TypeDisplayRepresentation that is used in the Shortcuts app UI like in a DeleteIntent (see my feedback about this: FB23451186 for more context). In the “Accelerating app interactions with App Intents” sample code we can see that this is done using a .stringsdict file, as follows for the “Trail” key (singular and plural): <key>Trail</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@VARIABLE@</string> <key>VARIABLE</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>one</key> <string>Trail</string> <key>other</key> <string>Trails</string> </dict> </dict> I want to use a String catalog instead of a .stringsdict file because all my strings are in a String catalog. I tried to migrate the AppIntents.stringsdict file manually but it failed with an error: “An error occurred when migrating AppIntentsSampleApp/Resources/AppIntents.stringsdict: This stringsdict cannot be migrated: Missing required key 'NSStringFormatValueTypeKey' inside 'Trail' -> 'VARIABLE’” So I manually added a NSStringFormatValueTypeKey like this in the .stringsdict file: <key>Trail</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@VARIABLE@</string> <key>VARIABLE</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>lld</string> <key>one</key> <string>Trail</string> <key>other</key> <string>Trails</string> </dict> </dict> And then I’ve been able to migrate the .stringsdict file into a String catalog. The string catalog looks like this after migration: "Trail" : { "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", "value" : "%#@VARIABLE@" }, "substitutions" : { "VARIABLE" : { "formatSpecifier" : "lld", "variations" : { "plural" : { "one" : { "stringUnit" : { "state" : "translated", "value" : "Trail (Catalog)" } }, "other" : { "stringUnit" : { "state" : "translated", "value" : "Trails (Catalog)" } } } } } } } } This works, which is nice. But I tried to reproduce the same result by having a %#@VARIABLE@ in my LocalizedStringResource defaultValue like this: TypeDisplayRepresentation( name: LocalizedStringResource( "Flower", defaultValue: "%#@VARIABLE@", table: "AppIntents" ), numericFormat: LocalizedStringResource( "\(placeholder: .int) flower", table: "AppIntents" ) ) But the String catalog doesn’t support that apparently, I can’t get a “substitution” object in my catalog, so I have to manually do it using the source code which is not ideal and painful. Is there a way to support this kind of substitution with no actual plural token in the string as we can see for the %#@VARIABLE@ for Trail? Thank you, Regards, Axel
1
0
653
Jun ’26
Bring an LLM provider to the Foundation Models, missing MLX dependencies
On this talk: Bring an LLM provider to the Foundation Models framework URL: https://developer.apple.com/videos/play/wwdc2026/339/ on the coding examples a very peculiar framework is shown: import MLXFoundationModels However I am not able to find it nowhere, there is even a code section with this framework as part of an example. Where is this framework, there are no BETA branches on the MLX framework either. Thanks!
2
0
529
Jun ’26
iOS 27 ImagePlaygroundViewController.Delegate not working?
In the WWDC 2026 sessions it was called out in code that the helper functions would still work, however they don't seem to be working either inside a UIViewRepresentable, nor as a UIKit View as below (also tried as a sheet, to no avail). Otherwise it works. Is there something else I'm missing? import SwiftUI import ImagePlayground @available(iOS 27.0, *) final class ImagePlaygroundPopupController: UIViewController { var sourceImage: UIImage var prompt: String var onComplete: (URL) -> Void var onCancel: () -> Void private var didPresent = false private var playgroundVC: ImagePlaygroundViewController? init( sourceImage: UIImage, prompt: String, onComplete: @escaping (URL) -> Void, onCancel: @escaping () -> Void ) { self.sourceImage = sourceImage self.prompt = prompt self.onComplete = onComplete self.onCancel = onCancel super.init(nibName: nil, bundle: nil) view.backgroundColor = .clear } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) guard !didPresent else { return } didPresent = true let vc = ImagePlaygroundViewController() vc.sourceImage = sourceImage vc.concepts = [.text(prompt)] vc.delegate = self playgroundVC = vc present(vc, animated: true) } } @available(iOS 27.0, *) extension ImagePlaygroundPopupController: ImagePlaygroundViewController.Delegate { func imagePlaygroundViewController( _ imagePlaygroundViewController: ImagePlaygroundViewController, didCreateImageAt imageURL: URL ) { imagePlaygroundViewController.dismiss(animated: true) { self.playgroundVC = nil self.onComplete(imageURL) } } func imagePlaygroundViewControllerDidCancel( _ imagePlaygroundViewController: ImagePlaygroundViewController ) { imagePlaygroundViewController.dismiss(animated: true) { self.playgroundVC = nil self.onCancel() } } } @available(iOS 27.0, *) struct ImagePlaygroundPopupView: UIViewControllerRepresentable { let sourceImage: UIImage let prompt: String let onComplete: (URL) -> Void let onCancel: () -> Void func makeUIViewController(context: Context) -> ImagePlaygroundPopupController { ImagePlaygroundPopupController( sourceImage: sourceImage, prompt: prompt, onComplete: onComplete, onCancel: onCancel ) } func updateUIViewController( _ uiViewController: ImagePlaygroundPopupController, context: Context ) {} }
0
0
512
Jun ’26
AppIntents: how to present a searchable modal picker for an entity relation in an automatic "Find" intent (from EnumerableEntityQuery or EntityPropertyQuery)
Hello, My (fictional) app has multiple app entities like a BookEntity and an AuthorEntity. There is a relationship between them: a book has an author. Because I implement the EntityPropertyQuery for the BookEntityQuery, it creates a “Find Book where...” intent. In this intent, I can filter the data by an author (AuthorEntity). But I can’t find a way to allow the user to select any author using the searchable modal usually presented to “choose” a parameter value from an intent for example. Right now, it shows: a menu with the suggestedEntities() authors if the AuthorEntityQuery implements this function. With no way to search even if the AuthorEntityQuery conforms to the EntityStringQuery. a menu with allEntities() authors if the AuthorEntityQuery conforms to EnumerableEntityQuery and does not implement the suggestedEntities(). With no way to search even if the AuthorEntityQuery conforms to the EntityStringQuery. nothing if suggestedEntities() is not implemented and allEntities() is also not implemented even if the AuthorEntityQuery conforms to the EntityStringQuery. So this means if I implement suggestedEntities(), my users have no way to choose any author not in the suggestions. It’s too limited. if I implement allEntities() but not suggestedEntities(), this could potentially be a lot of entities and it’s not always relevant because then the Shortcuts app with an AuthorEntity parameter will be created for allEntities(), and the UI with always show the full list of allEntities() when I have to pick an author (unless I build a specific DynamicOptionsProvider but this would mean I lose the suggestedEntities() for example. if I just conforms to EntityStringQuery, I can’t select any item at all for this filter (no menu to choose). You can check the attached sample code provided. I checked a bit other apps, for example the Photos app allows you to find a photo based on an album but it lists ALL the albums (which is a lot) with no way to search using string. I also check the Sofa app, it shows the list of SofaListEntity (which implements suggestedEntities() and conforms to EntityStringQuery and EntityQuery). It actually shows all the lists (confirmed by the developer) with no way to search. See attachements from the Sofa developer. Is there a way to support a search for a filter using a relationship conforming to the EntityStringQuery? Is there a way to specify a provider for a @Property of an entity like we can for a @Parameter? For example, I could provide a custom DynamicOptionsProvider for the @Property(title: “Author”) var author which would be independent from the AuthorEntityQuery used elsewhere (parameter intents + Shortcuts). Maybe you can suggest another way to implement this? Maybe I should not rely on a relationship but instead flatten the relationship in the BookEntity to add an “authorName” or “authorID”? I filed this feedback with a sample code: FB23453134 Thanks, Regards, Axel
0
1
372
Jun ’26
DeleteIntent: the singular typeDisplayRepresentation of the AppEntity is used instead of the entities parameter title (plural)
Hello, I'm using a DeleteIntent in my app, but I can't get it to display "Delete {Books}" in the Shortcut apps. It always displays "Delete {Book}". It apparently uses the BookEntity typeDisplayRepresentation instead of using the intent entities parameter title ("Books") in the parameterSummary. For a "normal" AppIntent, the Shortcuts app uses the entities parameter title ("Books") in the parameterSummary. I filed a feedback: FB23451186 Regards, Axel
0
0
328
Jun ’26
Is UISceneAppIntent supported in Designed for iPad apps on macOS?
I'm seeing what appears to be different UISceneAppIntent behavior between iOS and Designed for iPad on macOS, and I'd like to confirm whether this is expected. I'm working on an iOS app that defines an AppIntent conforming to UISceneAppIntent from the AppIntents framework. The intent is handled by a scene delegate conforming to both UIWindowSceneDelegate and AppIntentSceneDelegate. On iOS, everything works as expected: If the app is launched for the first time from Shortcuts, the intent is available via connectionOptions.appIntent in scene(_:willConnectTo:options:). If the app is already running, scene(_:willPerformAppIntent:) is called. However, when running the same iOS app on macOS in Designed for iPad mode, the behavior is different: If the app is launched from Shortcuts, connectionOptions.appIntent is always nil in scene(_:willConnectTo:options:). If the app is already running, scene(_:willPerformAppIntent:) is never called, even though the application is successfully activated. Is this expected behavior? I noticed that the AppIntents framework explicitly marks both AppIntentSceneDelegate and UISceneAppIntent as unavailable on macOS: @available(iOS 26.0, tvOS 26.0, *) @available(macOS, unavailable) @available(watchOS, unavailable) public protocol AppIntentSceneDelegate : UISceneDelegate Since the app is running on macOS in Designed for iPad mode and still uses the iOS binary, I wasn't sure whether these scene-based APIs are expected to work in this environment or whether they are intentionally unsupported. Has anyone from Apple or the community been able to confirm whether this behavior is by design, or whether it should be considered a bug? I'd appreciate any clarification.
1
0
996
Jun ’26
关于我使用Swift和Metal制作的神经网络引擎
我今年18岁。没有机器学习背景,没有上过大学,高中都没去上,没有导师。 几天前我盯着一张纸发呆。突然想:为什么计算机神经网络一定要是2D的?可以模拟生物吗?为什么一定要在平面上算?如果多个平面,岂不是翻倍?如果把六张纸想象成一个魔方,六个面各自承载神经元,八条体对角线变成新的通信通道会怎么样? 我真的很喜欢折腾这些,然后我立刻制定了详细计划,使用AI工具辅助写下了第一个 kernel。跑崩了。我又重新想了一下,和qq群友分享了我的目标,又写。又崩。连续几十次。没有 PyTorch,没有 TensorFlow,没有 CUDA。只有Swift和Metal。因为我的电脑显卡是AMD Vega 64,没装任何框架辅助,因为我想明白最底层的运行方式是什么原理。 这就是CubeNN。 ##以下为AI的详细解答,内容与架构改动太多,我在这里一次讲不清楚 它是什么 一个用魔方几何作为计算架构的神经网络引擎。 标准 Transformer: 把数据排成一行,O(n²) 地互相看 CubeNN: 把数据分布在 14 个面上,只在该看的地方看 6 个标准面 → 块稀疏注意力(粗看全局 + 细看局部) 8 个 X 面对角线 → 跨面信息桥(不做 Attention,只负责传递) 每轮:6 面算 → 投影到 8 X 面 → 上采样精炼 → 融合回 6 面 最关键的是 Cube Cascade——一个树+链级联推理: 树阶段: 1 个魔方 spawn 8 个 → 8 个 spawn 64 个 → 73 个并行探索 GPU 上同时跑,选最优路径 链阶段: 最优叶子无限深度精炼 3-5 步收敛,方差提升 ~7% 怎么实现的 纯 Swift + Metal。零依赖。零框架。 // 大致代码就是这些 import Metal import Foundation let device = MTLCreateSystemDefaultDevice()! let library = try! device.makeLibrary(filepath: "cube_nn.metallib") // ...12 个 GPU kernel,12,000 次 dispatch 关键技术决策: 单 Command Buffer:整个树阶段 73 个魔方的全部 kernel dispatch 打包进一个 CB,0 次 CPU-GPU 同步 Pipeline State 缓存:编码从 1022ms 降到 42ms Buffer 偏移:所有 73 个魔方的 14 个面存进一个连续 buffer,kernel 通过 buffer(15) 传偏移量 FP16:N≥64 时半精度提速 21% 性能 ##经过测试,但是因设备差异可能不准确,仅参考 AMD Radeon RX Vega 64 (2017 年显卡, 14nm, 295W): 规模 神经元 魔方数 耗时 N=32 6,144 73 (树) 435ms N=64 24,576 21 (树) 817ms N=128 98,304 1 116ms N=32 全连接 Attention 每层 201M FLOP → CubeNN 块稀疏 370K FLOP (544× 减少) N=128 全连接需要 32GB 显存(物理上不存在)→ CubeNN 用 192KB N=256 全连接需要 2.2T FLOP → CubeNN 52M FLOP (42,300× 减少) 代码体积:161KB。 对比 PyTorch 的 800MB。 我经历了什么 这个项目最困难的不是写 kernel,是在没有任何人告诉我"能不能做"的情况下,靠反复试错找到路。 第一次试图跑 73 个魔方,GPU 直接 hang 了。花了 3 天定位到是 Command Buffer 堆叠过多。 改了 single encoder 方案,又碰上 SIGILL——Metal 不允许 makeBuffer(length: 0),B=0 时创建了零长度 buffer。 想用 threadgroup memory 做 kernel fusion,结果跨 threadgroup 读不到数据,才明白 LDS 是 per-group 的。 N=64 的 FP16 要手动写 float↔half 转换函数,因为 macOS 11 上 Float16 类型被标为 unavailable。 每一次崩溃都教会我一个 Metal 的底层细节。没有人教我,但 Metal 的报错信息就是最好的老师。 为什么发在 Apple 开发者论坛 因为这是为苹果生态而生的项目。CubeNN 从头到尾只用了两个东西:Swift 和 Metal。它不需要移植就能跑在任何 Apple Silicon Mac 上(API兼容)。如果未来能把部分 kernel 映射到 Neural Engine,效率会再翻几倍。 我想问 Apple 的 Metal 工程师和 Core ML 团队: ** 有没有更好的 GPU 任务调度方式?**目前表现仍然欠佳(对于我这个完美主义者来说),可能改得有点乱了 有没有兴趣评估这个架构在 M4 上的表现? 我手里只有 Vega 64。M4 GPU + ANE方法 跑 CubeNN 会是什么效果? 源代码 ├── run.swift # 统一 CLI,参数化 N/B/depth ├── src/ │ ├── cube_nn.metal # FP16 kernel │ └── cube_nn_fp32.metal # FP32 kernel └── benchmarks/ # 实测数据 如果你读到了这里——谢谢你。一个门外汉靠痴狂的,纯粹到几乎是妄想的主意和Metal走到了这里。我懂的不是很多,如果这个架构有任何价值,我想让它变得更好。任何建议、批评、或者指教,都非常欢迎。
Replies
1
Boosts
0
Views
1k
Activity
Jul ’26
Foundation Models: Model-level refusal regression on iOS 27 beta for health app prompts (not guardrailViolation)
I have a health app on the App Store that uses Foundation Models to generate brief narrative summaries from the user's own glucose and menstrual cycle data. No medical advice, just supportive summaries of their own numbers. This has been working reliably on iOS 26.x since early 2026. After updating to iOS 27 beta 2, every prompt is refused. The error is LanguageModelError ("The model refused to answer" / "May contain sensitive content"), not GenerationError.guardrailViolation. I've confirmed: Same device, same code, same prompts. Worked on iOS 26.x, fails on iOS 27 beta 2. Two independent features with different prompt structures and different service architectures are both affected. Using SystemLanguageModel(guardrails: .permissiveContentTransformations) does not help. The classifier passes. The model itself refuses. The prompts contain terms like "luteal phase," "progesterone," "glucose," "time in range," and "diabetes" in the system instructions. This appears to be a model-level sensitivity change in the iOS 27 on-device model that broadly blocks health/medical terminology, even when the use case is summarizing the user's own data. Filed as FB23513774 with the full prompt text, instructions, and source file attached. Is anyone else seeing model-level refusals (not guardrailViolation) on iOS 27 beta for health or medical content? Related threads from iOS 26 betas: Model Guardrails Too Restrictive? Model w/ Guardrails Disabled Still Refusing Using Past Versions of Foundation Models As They Progress
Replies
1
Boosts
0
Views
579
Activity
Jul ’26
Inquiry regarding App Intent file handling in Siri
Hello Team, I am writing to seek clarification regarding an issue I am encountering while integrating App Intents within my application. I have configured an App Intent designed to accept an IntentFile as a parameter for processing. When testing this functionality via the Siri interface, I attach the image file and provide the trigger phrase as expected. However, Siri does not seem to recognize or associate the attached image as the required IntentFile. Consequently, the interaction fails to proceed, and Siri continues to prompt me to select a file. Could you please advise if there is a specific configuration requirement or a known limitation regarding how Siri handles file attachments for IntentFile parameters? I would appreciate any guidance on whether this is an issue with my current implementation or if I am missing a necessary step in the setup process. Thanks & Regards Suresh
Replies
1
Boosts
0
Views
774
Activity
Jul ’26
Core AI vs LiteRT
I am trying to decide what technology to adopt for local AI inference on mobile devices. I tried the EdgeGallery demo app and was genuinely impressed. For an app using local Gemma 4, LiteRT-LM gives me a shared, OS-managed model on Android via AICore, up-to-date Gemma 4 support, and a working ANE/Core ML delegate on iOS today. What does building on Core AI’s .aimodel pipeline get me that LiteRT-LM doesn’t? Core AI has no cross-app shared memory, and every app has to bring its own model resources regardless. Also, the current model catalog seems to trail LiteRT’s. What am I missing?
Replies
0
Boosts
0
Views
598
Activity
Jul ’26
Can any Apple Watch running WatchOS 27 access PCC via Foundation Models?
Apologies, if I've missed the answer already here, I've searched around but can't find it. Foundation models and Private Cloud Compute require Apple Intelligence to be enabled in Settings as mentioned here. At the same time it says that Foundation Models PCC calls are supported on all Apple Watch models that run WatchOS 27. So, will there be a seperate Apple Intelligence setting in WatchOS 27 for those devices? Otherwise if a user has an Apple Watch Series 11 (which does support Apple Intelligence) paired with an iPhone 15 (which doesn't support Apple Intelligence), will they be unable to use the Foundation Models PCC calls from WatchOS in my app? Despite the fact the iPhone isn't involved in these queries anyway?
Replies
1
Boosts
1
Views
847
Activity
Jul ’26
Core AI Debugger Beta Questions
Hi guys, I am a new core developer. Recently I am trying the newly released core ai debugger tool and meet some issues. I am not sure whether the related functions of debugger is ready in beta package. Reference Run: aimodel on device versus intermediate dump I used the intermediate exporting api to export the intermediate dump data of MobileNet2.0 and converted the same MobileNet Model to .aimodel. But the compare button is not usable. the suffix of intermediate file suffix is OK(can be selected). The debugger is a GUI so I cannot figure out whether I exported the intermediate data incorrectly. (1st attached png ) on device model run compare I just simply tried the different computing unit and different input for a simple 'add/sub/mul/div' toy model. Especially set the input different but the comparison results seems to be empty I am not sure whether I modify the debugger tool incorrectly. Hope someone sharing experience. My Gratitude.
Replies
0
Boosts
0
Views
568
Activity
Jun ’26
Visual Intelligence: controlling the "More results" button and the app result tab (ordering / opt-out)?
I've integrated my app with Visual Intelligence (iOS 26) using the semanticContentSearch schema. Image results are populated via an IntentValueQuery returning my entities, and the "More results" button is backed by an intent declared as: @available(iOS 26.0, *) @AppIntent(schema: .visualIntelligence.semanticContentSearch) struct ShowSearchResultsIntent { static let title: LocalizedStringResource = "Search products by image" static let openAppWhenRun: Bool = true var semanticContent: SemanticContentDescriptor func perform() async throws -> some IntentResult { /* deep-link into in-app search */ } } From WWDC25 (session 275) and WWDC26 (session 297) my understanding is that: the "More results" button is provided automatically by the system once this schema intent is adopted; returning an empty array from the value query lets the system show an empty response; my app appears as a result tab alongside other adopting apps, and the system decides the ordering based on the available image search providers on the device. I have a few questions about how much of this an app can control at runtime: "More results" button Is there any supported way to conditionally show or hide the system "More results" button at runtime (e.g., region, A/B test, server-driven feature flag)? Or is it strictly tied to the static presence of the semanticContentSearch intent? If IntentValueQuery returns an empty array, does the "More results" button still appear? Is there any API to suppress the button while keeping the schema intent declared? App result tab ordering How exactly does the system decide the order of the app result tabs? Is it based on relevance/similarity, app category, user behavior, or something else? Is there anything a developer can do to influence where their tab appears, or is ordering entirely system-controlled? App result tab presence / opt-out Once the integration is implemented, my app's tab appears automatically. Is there a supported way to conditionally opt out of appearing as a result tab at runtime (e.g., based on region or a feature flag)? Or is the only way to not appear to omit the integration at build time (or gate it by OS availability)? Thanks!
Replies
0
Boosts
0
Views
454
Activity
Jun ’26
Can output images from imagePlaygroundSheet be used as input for third-party video generation APIs?
I'm developing an iOS app that uses imagePlaygroundSheet to generate images based on AI-generated prompts (not user-typed text). I would like to confirm whether the following usage is permitted under the Apple Developer Program License Agreement: Generate an image using imagePlaygroundSheet within my app Pass the resulting image (obtained via the completion handler URL) as an input to a third-party video generation API (e.g., to create an image-to-video animation) Offer this video generation as a paid feature (consumable in-app purchase) within my app I've reviewed Section 3.2(8) of the ADPLA, which prohibits using "output generated from an Apple model to train, fine-tune, or improve another artificial intelligence model." My understanding is that this clause is specifically about training/improving AI models, not about using the output image as a content input for a separate processing step (e.g., animation). Could someone confirm: Whether passing imagePlaygroundSheet output to a third-party API for further processing (not training) is permitted Whether monetizing a feature that uses this combined output is permitted Thank you in advance for any guidance.
Replies
0
Boosts
0
Views
423
Activity
Jun ’26
I got old Siri UI instead
I’m on a base iPhone 17 and I‘ve been approved from the waitlist over two weeks ago and when I use Siri, I get the old Siri from before Apple Intelligence was a thing (Glowy orb at the bottom). Inside Siri settings, it looks like it’s supposed to be set up for the new SirI as it shows the app settings. Here are my observations I have found from using beta 1 to 2. Beta 1: Whenever I have the new Siri “enabled”, there is no app I can type “siri://“ and it‘ll open the Siri open saying that’s there’s an update in progress. But if I type that in when I’m using the previous Siri, the app is there and it’s blank When new Siri is ”enabled” and whenever I ask Siri a question she’ll either think and never stop or output a blank answer. But when I turn Siri back to its previous version and open the “sir://“, it stores the conversation and when I open it, it actually answered my question. Beta 2: When installing beta 2 I said “new Siri“ enabled Once it was done installing, I went to iPhone storage and saw that “Apple Intelligence“ storage is increasing size. But then after a minute, it went back down to 14GB Still gave me the old Siri UI Now the siri app is not accessible when typing “siri://“ Siri mode is now in the camera app but it says it’s unavailable The ChatGPT extension area is now blocked because assets are downloading Whenever I visual intelligence and press ask it says that siri support is downloading I left siri alone for 3 days and nothing happened. Still stuck with old siri The ask siri option is everywhere now and when I press it, nothing happens Right now I’m using the previous version of Siri and hoping this bug will be patched and I can use the new Siri AI in Beta 3. *the screenshot provided shows what happens when I use Siri in beta 2 when it’s enabled.
Replies
0
Boosts
0
Views
630
Activity
Jun ’26
LongRunningIntent run from in the app?
If I attempt to use a LongRunningIntent from a SwiftUI Button, using the Button(_:AppIntent:) control, I get the following errors: [LongRunningIntent <<E:<unknown>>>] No IntentContext available performBackgroundTask threw: noContext Intent failed to execute with error: LNPerformActionErrorCodeUnsupportedValueType It runs as expected when run from the Shortcuts app, but fails when run from a button within the app. Feedback ID (with sample app): FB23492034
Replies
1
Boosts
1
Views
589
Activity
Jun ’26
IndexedEntities and Siri AI
Currently, I have spotlight entities show up when I search for them using Spotlight on iOS 27. These entities are things that are important for users, like campus buildings, accessible entrances, assignments, and more. However, after getting access to Siri AI, it seems that none of this information at all is available to Siri, yet all of it is sitting there in the spotlight index and viewable with a written query. I was told by an Apple Engineer that creating Indexed and EnumerableEntities, and indexing them via the App Intents framework, should expose information about these items to Siri, so if I query: "[Building name] in Ohio State" it would at least show me what the app has for that information. Presently, Siri uses the web for everything and doesn't pull in any spotlight information for my app, despite either creating wrapper entities or using the API associating with spotlight. With Siri AI, it would be so much more helpful for a disabled user to say "Orton Hall accessible entrance" and Siri to know that there's 1 accessible entrance indexed in spotlight in my app, and then show or open it, instead of querying the web or saying it can't answer the question. It has all available information already in spotlight to answer this question. Currently, as far as I'm aware, something like this simply doesn't work, unless your app conforms to the strict use cases of making reminders or calendar events, all of which aren't useful here. Can a Frameworks engineer please clarify precisely when and how IndexedEntities (paired with an a corresponding macro-annotated OpenIntent) eg: @AppIntent(schema: .system.open) struct OpenBuildingIntent: OpenIntent { @Parameter(title: "Building") var Building: BuildingEntity ... will or will not be visible using Siri AI? To me it seems I have wasted a lot of time porting actions within my app to App Intents, and viewable entities with AppEntity, only to have Siri not be able to use any of this information out of the box.
Replies
2
Boosts
0
Views
1.4k
Activity
Jun ’26
App schema domains for trains, flighs, ferrys and othe public transport
Hi everyone, I've submitted a Feedback request (FB23469644) asking to introduce a generic Transportation Journey schema for App Intents. At the moment, there doesn't seem to be a way to donate structured public transportation trips (train, flight, bus, ferry, etc.) to Siri's semantic index. While many travel apps already have rich journey data, there is no common semantic model that represents: Multi-leg journeys Departure and arrival stations/airports/stops Platforms, tracks, gates, terminals Scheduled and real-time departure/arrival information Delays and cancellations Ticket and reservation information This seems like a natural addition to the existing App Intents schemas and would enable Siri, Spotlight, and Apple Intelligence to better understand upcoming journeys across all transportation providers. If you're building a travel or mobility app and have encountered the same limitation, I'd appreciate hearing your thoughts. Any idea if the old Siri event suggestion API gets is indexed by Siri Semantic Index / Siri AI?
Replies
3
Boosts
6
Views
720
Activity
Jun ’26
AppIntents and String catalog: how can we support both singular and plural forms for TypeDisplayRepresentation (used by DeleteIntent in the Shortcuts app for example)
Hello, I’m implementing the AppIntents framework in my app. I want to translate the TypeDisplayRepresentation that is used in the Shortcuts app UI like in a DeleteIntent (see my feedback about this: FB23451186 for more context). In the “Accelerating app interactions with App Intents” sample code we can see that this is done using a .stringsdict file, as follows for the “Trail” key (singular and plural): <key>Trail</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@VARIABLE@</string> <key>VARIABLE</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>one</key> <string>Trail</string> <key>other</key> <string>Trails</string> </dict> </dict> I want to use a String catalog instead of a .stringsdict file because all my strings are in a String catalog. I tried to migrate the AppIntents.stringsdict file manually but it failed with an error: “An error occurred when migrating AppIntentsSampleApp/Resources/AppIntents.stringsdict: This stringsdict cannot be migrated: Missing required key 'NSStringFormatValueTypeKey' inside 'Trail' -> 'VARIABLE’” So I manually added a NSStringFormatValueTypeKey like this in the .stringsdict file: <key>Trail</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@VARIABLE@</string> <key>VARIABLE</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>lld</string> <key>one</key> <string>Trail</string> <key>other</key> <string>Trails</string> </dict> </dict> And then I’ve been able to migrate the .stringsdict file into a String catalog. The string catalog looks like this after migration: "Trail" : { "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", "value" : "%#@VARIABLE@" }, "substitutions" : { "VARIABLE" : { "formatSpecifier" : "lld", "variations" : { "plural" : { "one" : { "stringUnit" : { "state" : "translated", "value" : "Trail (Catalog)" } }, "other" : { "stringUnit" : { "state" : "translated", "value" : "Trails (Catalog)" } } } } } } } } This works, which is nice. But I tried to reproduce the same result by having a %#@VARIABLE@ in my LocalizedStringResource defaultValue like this: TypeDisplayRepresentation( name: LocalizedStringResource( "Flower", defaultValue: "%#@VARIABLE@", table: "AppIntents" ), numericFormat: LocalizedStringResource( "\(placeholder: .int) flower", table: "AppIntents" ) ) But the String catalog doesn’t support that apparently, I can’t get a “substitution” object in my catalog, so I have to manually do it using the source code which is not ideal and painful. Is there a way to support this kind of substitution with no actual plural token in the string as we can see for the %#@VARIABLE@ for Trail? Thank you, Regards, Axel
Replies
1
Boosts
0
Views
653
Activity
Jun ’26
Bring an LLM provider to the Foundation Models, missing MLX dependencies
On this talk: Bring an LLM provider to the Foundation Models framework URL: https://developer.apple.com/videos/play/wwdc2026/339/ on the coding examples a very peculiar framework is shown: import MLXFoundationModels However I am not able to find it nowhere, there is even a code section with this framework as part of an example. Where is this framework, there are no BETA branches on the MLX framework either. Thanks!
Replies
2
Boosts
0
Views
529
Activity
Jun ’26
iOS 27 ImagePlaygroundViewController.Delegate not working?
In the WWDC 2026 sessions it was called out in code that the helper functions would still work, however they don't seem to be working either inside a UIViewRepresentable, nor as a UIKit View as below (also tried as a sheet, to no avail). Otherwise it works. Is there something else I'm missing? import SwiftUI import ImagePlayground @available(iOS 27.0, *) final class ImagePlaygroundPopupController: UIViewController { var sourceImage: UIImage var prompt: String var onComplete: (URL) -> Void var onCancel: () -> Void private var didPresent = false private var playgroundVC: ImagePlaygroundViewController? init( sourceImage: UIImage, prompt: String, onComplete: @escaping (URL) -> Void, onCancel: @escaping () -> Void ) { self.sourceImage = sourceImage self.prompt = prompt self.onComplete = onComplete self.onCancel = onCancel super.init(nibName: nil, bundle: nil) view.backgroundColor = .clear } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) guard !didPresent else { return } didPresent = true let vc = ImagePlaygroundViewController() vc.sourceImage = sourceImage vc.concepts = [.text(prompt)] vc.delegate = self playgroundVC = vc present(vc, animated: true) } } @available(iOS 27.0, *) extension ImagePlaygroundPopupController: ImagePlaygroundViewController.Delegate { func imagePlaygroundViewController( _ imagePlaygroundViewController: ImagePlaygroundViewController, didCreateImageAt imageURL: URL ) { imagePlaygroundViewController.dismiss(animated: true) { self.playgroundVC = nil self.onComplete(imageURL) } } func imagePlaygroundViewControllerDidCancel( _ imagePlaygroundViewController: ImagePlaygroundViewController ) { imagePlaygroundViewController.dismiss(animated: true) { self.playgroundVC = nil self.onCancel() } } } @available(iOS 27.0, *) struct ImagePlaygroundPopupView: UIViewControllerRepresentable { let sourceImage: UIImage let prompt: String let onComplete: (URL) -> Void let onCancel: () -> Void func makeUIViewController(context: Context) -> ImagePlaygroundPopupController { ImagePlaygroundPopupController( sourceImage: sourceImage, prompt: prompt, onComplete: onComplete, onCancel: onCancel ) } func updateUIViewController( _ uiViewController: ImagePlaygroundPopupController, context: Context ) {} }
Replies
0
Boosts
0
Views
512
Activity
Jun ’26
AppIntents: how to present a searchable modal picker for an entity relation in an automatic "Find" intent (from EnumerableEntityQuery or EntityPropertyQuery)
Hello, My (fictional) app has multiple app entities like a BookEntity and an AuthorEntity. There is a relationship between them: a book has an author. Because I implement the EntityPropertyQuery for the BookEntityQuery, it creates a “Find Book where...” intent. In this intent, I can filter the data by an author (AuthorEntity). But I can’t find a way to allow the user to select any author using the searchable modal usually presented to “choose” a parameter value from an intent for example. Right now, it shows: a menu with the suggestedEntities() authors if the AuthorEntityQuery implements this function. With no way to search even if the AuthorEntityQuery conforms to the EntityStringQuery. a menu with allEntities() authors if the AuthorEntityQuery conforms to EnumerableEntityQuery and does not implement the suggestedEntities(). With no way to search even if the AuthorEntityQuery conforms to the EntityStringQuery. nothing if suggestedEntities() is not implemented and allEntities() is also not implemented even if the AuthorEntityQuery conforms to the EntityStringQuery. So this means if I implement suggestedEntities(), my users have no way to choose any author not in the suggestions. It’s too limited. if I implement allEntities() but not suggestedEntities(), this could potentially be a lot of entities and it’s not always relevant because then the Shortcuts app with an AuthorEntity parameter will be created for allEntities(), and the UI with always show the full list of allEntities() when I have to pick an author (unless I build a specific DynamicOptionsProvider but this would mean I lose the suggestedEntities() for example. if I just conforms to EntityStringQuery, I can’t select any item at all for this filter (no menu to choose). You can check the attached sample code provided. I checked a bit other apps, for example the Photos app allows you to find a photo based on an album but it lists ALL the albums (which is a lot) with no way to search using string. I also check the Sofa app, it shows the list of SofaListEntity (which implements suggestedEntities() and conforms to EntityStringQuery and EntityQuery). It actually shows all the lists (confirmed by the developer) with no way to search. See attachements from the Sofa developer. Is there a way to support a search for a filter using a relationship conforming to the EntityStringQuery? Is there a way to specify a provider for a @Property of an entity like we can for a @Parameter? For example, I could provide a custom DynamicOptionsProvider for the @Property(title: “Author”) var author which would be independent from the AuthorEntityQuery used elsewhere (parameter intents + Shortcuts). Maybe you can suggest another way to implement this? Maybe I should not rely on a relationship but instead flatten the relationship in the BookEntity to add an “authorName” or “authorID”? I filed this feedback with a sample code: FB23453134 Thanks, Regards, Axel
Replies
0
Boosts
1
Views
372
Activity
Jun ’26
DeleteIntent: the singular typeDisplayRepresentation of the AppEntity is used instead of the entities parameter title (plural)
Hello, I'm using a DeleteIntent in my app, but I can't get it to display "Delete {Books}" in the Shortcut apps. It always displays "Delete {Book}". It apparently uses the BookEntity typeDisplayRepresentation instead of using the intent entities parameter title ("Books") in the parameterSummary. For a "normal" AppIntent, the Shortcuts app uses the entities parameter title ("Books") in the parameterSummary. I filed a feedback: FB23451186 Regards, Axel
Replies
0
Boosts
0
Views
328
Activity
Jun ’26
Is UISceneAppIntent supported in Designed for iPad apps on macOS?
I'm seeing what appears to be different UISceneAppIntent behavior between iOS and Designed for iPad on macOS, and I'd like to confirm whether this is expected. I'm working on an iOS app that defines an AppIntent conforming to UISceneAppIntent from the AppIntents framework. The intent is handled by a scene delegate conforming to both UIWindowSceneDelegate and AppIntentSceneDelegate. On iOS, everything works as expected: If the app is launched for the first time from Shortcuts, the intent is available via connectionOptions.appIntent in scene(_:willConnectTo:options:). If the app is already running, scene(_:willPerformAppIntent:) is called. However, when running the same iOS app on macOS in Designed for iPad mode, the behavior is different: If the app is launched from Shortcuts, connectionOptions.appIntent is always nil in scene(_:willConnectTo:options:). If the app is already running, scene(_:willPerformAppIntent:) is never called, even though the application is successfully activated. Is this expected behavior? I noticed that the AppIntents framework explicitly marks both AppIntentSceneDelegate and UISceneAppIntent as unavailable on macOS: @available(iOS 26.0, tvOS 26.0, *) @available(macOS, unavailable) @available(watchOS, unavailable) public protocol AppIntentSceneDelegate : UISceneDelegate Since the app is running on macOS in Designed for iPad mode and still uses the iOS binary, I wasn't sure whether these scene-based APIs are expected to work in this environment or whether they are intentionally unsupported. Has anyone from Apple or the community been able to confirm whether this behavior is by design, or whether it should be considered a bug? I'd appreciate any clarification.
Replies
1
Boosts
0
Views
996
Activity
Jun ’26