To answer my 2nd question with real devices:
-- iPhone 7 (iOS 15.8.3)
-- Watch 1st gen (Series 0) (watchOS 4.3.2)
I could see the NSLog()s that were added to the progress observer, and that progress.fractionCompleted reached 1.0 ✅
All callbacks were executed properly and the file transfers were successful, and the files (images) showed up on the Watch UI ✅
Conclusion
WCSessionFileTransfer's property progress can be safely run on iOS and even gets updated from watchOS 4 ✅
Post
Replies
Boosts
Views
Activity
Used real devices:
-- iPhone 7 (iOS 15.8.3)
-- Watch 1st gen (Series 0) (watchOS 4.3.2)
Could not attach the Xcode debugger to the Watch, but it did to the iPhone.
Tested both the original code and the fix with the progress observer. In both cases on iOS session:didFinishFileTransfer:error: was called in the debugger, and the transferred files became visible on the Watch UI. ✅
Conclusion
There seems be an Xcode Simulator issue where session:didReceiveFile: is not called ❌
I can confirm that the bug is still present on iOS 17.6.1 and watchOS 10.6.1.
The work-around with WCSessionFileTransfer progress observer is still resolving the issue.
Thank you for this precise work-around and reporting it to Apple.
What a shame for Apple, to have this as a known issue in the Release Notes of Xcode 15.1, but deliberately failing to resolve it in Xcode 15.2.
Especially since it's just a folder name somewhere in their code.
Since version 15.7.1 has been released, we see a decrease in crashes in Firebase Crashlytics. Also when filtering on iOS version, 15.7.1 is not in the list.
This seems a good indication that Apple has finally resolved this issue in 15.7.1.
The Apple documentation of SKStoreProductViewController clearly mentions it doesn’t support subclassing or embedding:
Prevent Exceptions
The SKStoreProductViewController class doesn’t support subclassing or embedding, and must be used as-is.
I'm on MacBook Pro 16 2021 with M1 Pro and macOS 12.1. The second step after changing the security setting is essential:
And after you bootup, you have to again go to system--->security&preferences and there will be an "allow" button you have to click there which will again make you reboot.
Now rvictl -s <udid> returns:
Starting device <udid> [SUCCEEDED] with interface rvi0
That is really weird. It works here since the first Xcode 13 and macOS 12 betas. We now run with production Xcode 13.1 and macOS 12.1 without a glitch.
Although I must admit that we still use Objective-C and no Swift.
I don't recall if we did run this Swift sample project from Apple successfully, or immediately rewrote the relevant MEComposeSessionHandler logic into ObjC.
Hi Sark,
Did you notice that there is an if condition in the (my modified) sample?
You should send your test email to an email address that ends with "@example.com" to trigger the condition and show the errorDescription in the system Alert.
Maybe delete your post (after copying it to your Clipboard) and create a new post without the tag?
To be honest, I've no idea.
Nor do I understand why Apple does provide limited to no documentation for this new Framework.
Or why Apple doesn't post any response in the dev forum posts about MailKit.
Or why Apple doesn't provide any feedback that I reported by email (as requested in the WWDC video) or the NoFeedback Assistant.
One would assume that it would be in their best interest when developers can use this Framework to make innovative Mail Extensions.
BTW, can you please mark my answer as resolved?