Post

Replies

Boosts

Views

Activity

Reply to Settings.bundle
Did you register UserDefaults: UserDefaults.standard.register(defaults: defaults) // connect to Root.pList This is usually done in func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Feb ’25
Reply to Launching A New Build
The change itself is very simple and rapid: archive a new build (even with no change at all in code), just change version and build numbers in Appstore Connect, reorder the screenshots. If no new screenshot needed, it should take about 5 minutes for each localization submit the new version. After this there is no more work, unless the submission is rejected. So, the raw time is very limited, less than 1 hour. But, as @endecotp pointed out, the real workload may depend on extra tasks like testing, documenting, updating web pages for the app…  Only you can know.
Feb ’25
Reply to Image & Text inside picker.
If you use directly Image, it does not work. You have to use the Image built from a resized UIImage. That would be worth a bug report. Get a solution here: https://www.hackingwithswift.com/forums/swift/remove-or-resize-an-image-when-selecting-an-item-in-a-picker-view/23940 Here is the full code. Fiat 500e is an image in Assets struct ContentView: View { struct Data: Identifiable, Hashable { var id = UUID() var name: String var condition: Bool } @State var selection = "Easy" var datas: [Data] = [Data(name: "Easy", condition: true), Data(name: "Medium", condition: false), Data(name: "Hard", condition: true)] var myImage: UIImage = UIImage(named: "Fiat 500e") ?? UIImage() var resizedImage: UIImage { return myImage.scalePreservingAspectRatio(targetSize: CGSize(width: 50, height: 25)) } var body: some View { Picker("Title: ", selection: $selection) { ForEach(datas, id: \.self) { data in HStack { Text(data.name) if data.condition { Image(systemName: "globe") } else { Image(uiImage: resizedImage) .resizable() .scaledToFit() } } .tag(data.name) .padding() } } } } extension UIImage { func scalePreservingAspectRatio(targetSize: CGSize) -> UIImage { // Determine the scale factor that preserves aspect ratio let widthRatio = targetSize.width / size.width let heightRatio = targetSize.height / size.height let scaleFactor = min(widthRatio, heightRatio) // Compute the new image size that preserves aspect ratio let scaledImageSize = CGSize( width: size.width * scaleFactor, height: size.height * scaleFactor ) // Draw and return the resized UIImage let renderer = UIGraphicsImageRenderer( size: scaledImageSize ) let scaledImage = renderer.image { _ in self.draw(in: CGRect( origin: .zero, size: scaledImageSize )) } return scaledImage } } The image displayed in selection is now resized (it was automatically resized in Picker): In Picker. After selection.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Feb ’25
Reply to Plagiarism
Very nice. How do you use it in your app ? But effectively, I would not do it, it is too close to Apple's design and could be considered as some try to lure people into believing your app is an Apple app.
Topic: Design SubTopic: General Tags:
Feb ’25
Reply to 13 Years Old App Gets Guideline 4.3(a) - Design - Spam Rejection
Did you mention it in the comments to reviewer that the app was created 13 years ago ? However, take care that some recent features may not be considered as spam.
Topic: Design SubTopic: General
Replies
Boosts
Views
Activity
Feb ’25
Reply to Settings.bundle
Did you register UserDefaults: UserDefaults.standard.register(defaults: defaults) // connect to Root.pList This is usually done in func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Replies
Boosts
Views
Activity
Feb ’25
Reply to Launching A New Build
The change itself is very simple and rapid: archive a new build (even with no change at all in code), just change version and build numbers in Appstore Connect, reorder the screenshots. If no new screenshot needed, it should take about 5 minutes for each localization submit the new version. After this there is no more work, unless the submission is rejected. So, the raw time is very limited, less than 1 hour. But, as @endecotp pointed out, the real workload may depend on extra tasks like testing, documenting, updating web pages for the app…  Only you can know.
Replies
Boosts
Views
Activity
Feb ’25
Reply to How to know if a user has received a notification?
Did you look at this (notificatiosns with actions): https://developer.apple.com/documentation/usernotifications/handling-notifications-and-notification-related-actions You would know if user has tapped a button (AFAIU, not if he simply discarder the notification or did not see it)
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Feb ’25
Reply to Is a spam an appreciated participation in the forums ?
In any case, the end result (the post from "App Store Connect Engineer" is a bit nonsense and totally useless.
Replies
Boosts
Views
Activity
Feb ’25
Reply to Xcode 16.2 won't open project
Have you any error message ? What type of project is it ? SwiftUI ? Other ? Do you succeed in opening directly the .xcodeproj file ? May have a look here: https://codecrew.codewithchris.com/t/xcode-project-xcworkspace-has-been-modified/25740
Replies
Boosts
Views
Activity
Feb ’25
Reply to They reject my version because of a Terms of Use link that they ask me to add and this has existed since several versions ago
I requested that they approve my version to solve other details I do doubt they will even consider it. You have to comply first, then they may approve. Did you explain (in the comments to reviewer) why you think you comply ? That's the best way to get your voice heard.
Replies
Boosts
Views
Activity
Feb ’25
Reply to Image & Text inside picker.
If you use directly Image, it does not work. You have to use the Image built from a resized UIImage. That would be worth a bug report. Get a solution here: https://www.hackingwithswift.com/forums/swift/remove-or-resize-an-image-when-selecting-an-item-in-a-picker-view/23940 Here is the full code. Fiat 500e is an image in Assets struct ContentView: View { struct Data: Identifiable, Hashable { var id = UUID() var name: String var condition: Bool } @State var selection = "Easy" var datas: [Data] = [Data(name: "Easy", condition: true), Data(name: "Medium", condition: false), Data(name: "Hard", condition: true)] var myImage: UIImage = UIImage(named: "Fiat 500e") ?? UIImage() var resizedImage: UIImage { return myImage.scalePreservingAspectRatio(targetSize: CGSize(width: 50, height: 25)) } var body: some View { Picker("Title: ", selection: $selection) { ForEach(datas, id: \.self) { data in HStack { Text(data.name) if data.condition { Image(systemName: "globe") } else { Image(uiImage: resizedImage) .resizable() .scaledToFit() } } .tag(data.name) .padding() } } } } extension UIImage { func scalePreservingAspectRatio(targetSize: CGSize) -> UIImage { // Determine the scale factor that preserves aspect ratio let widthRatio = targetSize.width / size.width let heightRatio = targetSize.height / size.height let scaleFactor = min(widthRatio, heightRatio) // Compute the new image size that preserves aspect ratio let scaledImageSize = CGSize( width: size.width * scaleFactor, height: size.height * scaleFactor ) // Draw and return the resized UIImage let renderer = UIGraphicsImageRenderer( size: scaledImageSize ) let scaledImage = renderer.image { _ in self.draw(in: CGRect( origin: .zero, size: scaledImageSize )) } return scaledImage } } The image displayed in selection is now resized (it was automatically resized in Picker): In Picker. After selection.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Feb ’25
Reply to How to convert a function into a variable?
declare quotes as a computed var var quotes: [(quote: String, order: Int)] { var output = [[(quote: String, order: Int)]] () // loop 1 to 4 // Compute each line as you do in getPrice // append to output return output }
Replies
Boosts
Views
Activity
Feb ’25
Reply to Preview crash
We cannot invent line 34…
Replies
Boosts
Views
Activity
Feb ’25
Reply to 📢 My Application Was Rejected Due to Minimal Functionality - But I Believe It is Functional!
This forum is not the right one for a direct request to Apple. Did you contact and appeal the review team ? Note that functional app does not mean it means minimal functionality requirement.
Replies
Boosts
Views
Activity
Feb ’25
Reply to Searchable list with binding causes indexOutOfRange crash on iOS 18 physical device
It crashes also on simulator. Crash comes from: ForEach($viewModel.filteredPeople, id: \.name) { person in Reason is that when you type in search, because of didSet, you update the filtered but the forEach is still using the full array ans waits for a 4th person which does not exist any more.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Feb ’25
Reply to stuck with out-of-date version of the application
That's for the version, but have you checked the build number ? What is the build number of each version ? Build number must always be higher (alphabetical order) than the previous version. Note also that this forum is not the best place to contact Apple. You'd better directly contact support: https://developer.apple.com/contact/topic/select
Replies
Boosts
Views
Activity
Feb ’25
Reply to Plagiarism
Very nice. How do you use it in your app ? But effectively, I would not do it, it is too close to Apple's design and could be considered as some try to lure people into believing your app is an Apple app.
Topic: Design SubTopic: General Tags:
Replies
Boosts
Views
Activity
Feb ’25
Reply to Is a spam an appreciated participation in the forums ?
We continue to get the same spam and the same automatic and irrelevant reply from some App Store Connect Engineer.
Replies
Boosts
Views
Activity
Feb ’25