I'm the developer of a third-party keyboard app, Snippety - Snippets Manager, which is designed for using snippets rather than regular typing.
One of my users has encountered a strange issue: after installing my keyboard (even when it is not actively in use), the predictive text bar starts showing suggestions in Polish. This happens despite the Polish language not being installed on the device. The issue resolves as soon as my keyboard is uninstalled from the system settings.
Interestingly, my application (including the keyboard) does not support the Polish language, nor is Polish specified anywhere in the app. The app was developed and published from macOS in English. This seems to be an iOS bug.
The only language-related configuration in my keyboard is the PrimaryLanguage key in the Info.plist file, which I set to "mul" because the keyboard is not intended for typing. I also tried setting it to "mis", but the issue persists.
The video presenting this issue on an iPhone 15 simulator running iOS 17.5:
https://www.dropbox.com/scl/fi/xjdyucxpmv1cv0mnmwzvd/prdictive-text-issue.mp4?rlkey=aphznpdti08pz8xl84ojbyxz3&dl=0
Info.plist for my keyboard:
My project settings:
Steps to reproduce:
Configure iOS to use English language only, with English keyboard
Enable predictive text feature in the system
Install Snippety keyboard
Use the regular keyboard & start typing "dzie"
Actual result:
Polish predictions appear even though the Polish language is not installed or declared by the keyboard.
Expected result:
The predictive text should present predictions based on system settings.
What is even more weird, I discovered that when I add the keyboard in system settings, it automatically installs Polish language in the system settings. I even changed PrimaryLanguage to "de" (German) in Info.plist but it still installs Polish.
See: https://www.dropbox.com/scl/fi/aiv5g4z331zwy827zj47v/incorrect-language-installed.mp4?rlkey=16v5gqmb6mj8yuyyd7jwmjnsw&dl=0
Any ideas what could be wrong?
I also created a ticket: #FB13949087
I also found a similar issue from 2018 (O_O) reported here: https://stackoverflow.com/questions/53069262/ios-adds-new-preferred-language-when-installing-my-3rd-party-keyboard
Post
Replies
Boosts
Views
Activity
I created my macOS app icon using the resources provided on the website for macOS Sonoma (Production Templates): https://developer.apple.com/design/resources/
However, when I check my app icon on the App Store, it has an incorrect size. Although, it is presented correctly in the Dock.
Any ideas on how to fix that? Should I export the icon without padding that is by default set for the export? I used the Sketch template.
I also reported it using Feedback Assistant: #FB13811586
My application uses "paid" monetization model. I think in the productivity category it works quite well. However, when I advertise my application, 50% of the questions are: "is there a free trial?" and I would love to provide a free trial to potential customers, but the App Store doesn't allow me to do that. I don't understand why this feature is not available.
I even started considering migration to in-app purchases, but it's quite a big deal. I managed to establish quite a good profit and I'm worried how it would affect my positioning and results. On top of that, I really like the paid up-front model, because it solves many issues and doesn't need any extra implementation on my side.
I'm starting this thread to hear what you think about that and how many people are looking for this feature. I also created a feature request in Feedback Assistant: #FB13810170
Xcode Cloud is experiencing many problems with repository connection lately. Previously I had some issues with GitHub which disappeared after some time. And yesterday suddenly it stopped working with my Bitbucket repository.
Now even if I try to add the repository again I always get 504 error:
Why it is so unstable :(?
What machines are used for Xcode Cloud builds? I couldn't find any information on that in the documentation.
Is Xcode Cloud using M1/M2? Or is it going to use Apple CPU in the future?
My custom controls stopped working after updating Xcode to 12.1 from 12.
It works in application project, but it doesn't work in Widget Extension.
Sample view that stopped working:
struct WidgetsEntryView : View {
		var body: some View {
				Circle()
						.trim(from: 0, to: 0.75)
		}
}
If you remove trim it renders correctly. With trim nothing appears. It worked before.
How does providing localized descriptions for iOS application affect its positioning in search results?
Of course, it will increase visibility for localized keywords, but let's assume that a German Apple Id is looking for an English keyword.
Will the application be higher in results if it provides German localization (even if the search phrase is in English and does not occur in German localization)?
In general, what is taken into account when presenting search results in the App Store? (only content for the user's current region assigned to Apple ID?).
If I have "some position" in search results in X region and I will remove localization for Y region will it have any impact on my position in X?
Is it only internal setting for convenience of using App Store Connect admin panel or does it have any impact on app listing? Could it change the position of the app in search results?
I'm trying to figure out what exactly should I do in getSnapshot method. However, it is not easy. In Apple's documentation, there is a very general description and in their demo app its implementation is also very simple.
There is one obvious use-case when we need to return TimelineEntry for widget gallery preview when context.isPreview = true. However, what should be done when context.isPreview = false?
Should I return there the last entry prepared in getTimeline method?
Should I verify if the configuration has changed between calls of getTimeline and getSnapshot?
My widget is using data from API. Should I call it in getSnapshot or only in getTimeline?
If I don't have cached entry, what should I return then? Placeholder entry?
Why they need getSnapshot if they could just take the entry from Timeline?
Currently, I'm returning here either preview entry or the last cached entry during getTimeline also checking if it matches the new configuration. However, I'm not sure if this is the correct approach.