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.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
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 {
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
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.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
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:
In any case, the end result (the post from "App Store Connect Engineer" is a bit nonsense and totally useless.
Topic:
Developer Tools & Services
SubTopic:
Developer Forums
Tags:
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
Topic:
Developer Tools & Services
SubTopic:
Xcode
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.
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
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:
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
}
Topic:
Programming Languages
SubTopic:
Swift
We cannot invent line 34…
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
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.
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
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:
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
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
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.
We continue to get the same spam and the same automatic and irrelevant reply from some App Store Connect Engineer.
Topic:
Developer Tools & Services
SubTopic:
Developer Forums
Tags:
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.
- Replies
- Boosts
- Views
- Activity
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 {
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
- Replies
- Boosts
- Views
- Activity
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.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
- Replies
- Boosts
- Views
- Activity
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
In any case, the end result (the post from "App Store Connect Engineer" is a bit nonsense and totally useless.
Topic:
Developer Tools & Services
SubTopic:
Developer Forums
Tags:
- Replies
- Boosts
- Views
- Activity
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
Topic:
Developer Tools & Services
SubTopic:
Xcode
- Replies
- Boosts
- Views
- Activity
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.
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
- Replies
- Boosts
- Views
- Activity
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
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
}
Topic:
Programming Languages
SubTopic:
Swift
- Replies
- Boosts
- Views
- Activity
We cannot invent line 34…
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
- Replies
- Boosts
- Views
- Activity
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.
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
- Replies
- Boosts
- Views
- Activity
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
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
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
- Replies
- Boosts
- Views
- Activity
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.
- Replies
- Boosts
- Views
- Activity
We continue to get the same spam and the same automatic and irrelevant reply from some App Store Connect Engineer.
Topic:
Developer Tools & Services
SubTopic:
Developer Forums
Tags:
- Replies
- Boosts
- Views
- Activity