Gotten rejected twice (so far) for this. I wish the reviewers would point you to a resource that actually helps.
I've tried using the StoreKit modifier: .storeButton(.visible, for: .policies) which shows both links but the links do not work in the app when I tap them -- I get an error that says "Cannot Connect".
Now, I've manually put in links to the terms and privacy pages from my own website and re-submitted. No idea if that'll work. Just throwing everything at the wall to see what sticks at this point.
I've got important updates hanging because of this and it is frustrating to say the least.
Post
Replies
Boosts
Views
Activity
Thank you both so much! This helped a lot. Just to add, you can also encode without using a container like this:
JSONEncoder().encode(
myAttributedString,
configuration: AttributeScopes.MyAppAttributes.self
)
Getting a similar error – AUIOClient_StartIO failed (561145187)
(when trying to start a recording in a share extension)
Maybe this might help: https://developer.apple.com/documentation/avfaudio/avaudiosession/errorcode/cannotstartrecording
This error type usually occurs when an app starts a mixable recording from the background and it isn’t configured as an Inter-App Audio app.
For anyone else passing through. I use an enum with associated values for $navigationModel.selection like so:
@Observable
final class NavigationModel {
...
enum SelectedItem: Hashable {
case folder(Folder.ID)
case tag(Tag.ID)
}
...
var selection: SelectedItem?
...
}
In my sidebar view:
List(selection: $nabvigationModel.selection) {
Section {
ForEach(folders) {
Text(folder.name)
.id(folder.id)
}
} header: { Text("Folders") }
Section {
ForEach(tags) {
Text(tag.label)
.id(tag.id)
}
} header: { Text("Tags") }
}
NavigationSplitView:
NavigationSplitView {
SidebarView()
} detail: {
switch navigationModel.selection {
case .folder(let id):
// fetch folder with ID & render...
case .tag(let id):
// fetch tag with ID & render...
default:
Text("No Selection"
}
}
UPDATE:
I made an appeal and received a call from the review team clarifying things. So it turns out the UI used to select the alternate icons specifically needs to be in the main app itself and the app settings (Settings bundle) does NOT count as "within the app" (the part that was confusing to me originally).
There were other acceptable scenarios like if an alternate icon is tied to a paid bundle. But the biggest tip for me was that when / if you're confused about the rejection / review of your app, you can simply request for a call and someone will reach out via phone call to explain what is wrong and what you need to do.
This is (sorta) happening to me on my 2019 Intel MBP. I don't get alerts but I see it in Console crash report logs.
Happens when my app crashes with:
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Termination Reason: SIGNAL 4 Illegal instruction: 4
Terminating Process: exc handler [34765]
So after a couple of days I found (by total coincidence) that you need to go to the "Agreements" tab, accept the "Paid Apps" agreement and fill out necessary forms (tax info, bank info e.t.c). This is not intuitive at all imo. There should have been some kind of prompt to complete these forms instead of having your approved app sit there indefinitely for unknown reasons.
Workaround for anyone else passing through:
extension URL {
var isDirectory: Bool {
let resourceKeys = Set<URLResourceKey>([.isDirectoryKey])
guard let resourceValues = try? self.resourceValues(forKeys: resourceKeys),
let isDirectory = resourceValues.isDirectory
else {
return false
}
return isDirectory
}
}
I've restarted my Mac with no luck. And then I tried restarting Xcode and archiving our app all over again and still nothing. Logging in to App Store connect in Safari is fine but Xcode isn't working for me. I'm just going to wait a while and try again.
UPDATE:
Now working. So here's what I did:
In Xcode, I went to Settings > Accounts
There was a notice saying my session had expired so I logged in again.
Tried uploading my build and it worked this time.
Here is what worked for me: I had a lot of previous builds (> 72) so I "Expired" about 30 to 40 of the oldest and uploaded a new build (with new version code).
Steps:
Go to your iOS builds
Scroll down to the old ones
Click on a version code
Click on "Expire Build" button (red button, upper right hand corner)
Repeat for as many builds as you can
Go back to Xcode and bump the version code then create a new archive
Upload
Profit