Posts

Post not yet marked as solved
1 Replies
628 Views
Is there any way to configure a Storyboard Launch Screen to ignore and upscale for some devices? Or to have a Storyboard Launch Screen only for iPad and manage iPhone with Launch Images? With Launch Images, it was possible to select which devices you wanted to detect and customize for by including the LaunchImage for that device and omitting others.With LaunchImages, I omit the iPhone 6/7/8 LaunchImage to allow the UI to be upscaled from the iPhone 5 since they have the same aspect ratio. I do use larger image assets though for upscaled devices. I include iPhone X/XR/11 LaunchImages so that I can detect those devices and customize the UI for their taller aspect ratios.With the new requirements that all apps have to be edge-to-edge, I have to move to a Storyboard Launch Screen to eliminate the 2 mm border around the UI on the iPad Pro because there is no option for an iPad Pro LaunchImage, and therefore no way to detect when I'm on that device and adapt the UI. It appears that selective upscaling is not possible with Storyboards and that LaunchImages are ignored once you add a Storyboard Launch Screen.My apps are Universal, but sales are 97% iPhone and less than .1% iPad Pro.When I switch to Storyboards nearly every device UI is severely messed up now. Unless there is a way to continue to upscale some devices it means substantial work, testing, and additional code complexity just to get all of them to look exactly the way they did before switching to Storyboards Launch Screens. I'm pretty sure there's no way to upscale for some devices with Storyboards, but maybe someone else has come up with something.
Posted
by bbrockit.
Last updated
.
Post not yet marked as solved
3 Replies
1.2k Views
There is a serious flaw in the data sharing permissions flow that gives apps access to personal data before the user has granted permission. This is because the data-sharing permission request has been moved from the presentation of the media picker to the delegate method called after the items have been picked. This gives apps access to personal media metadata even if permission is denied by the user.It's also very obvious to the user that something is wrong because they tap "add music" or "add photos" on an app they just installed and instead of seeing the data-sharing permission request that they're used to seeing they now go straight to the media picker and can select items.In iOS <=12 if your app wanted to access the user's personal media the user was asked to grant Data Sharing Permissions when the MPMediaPickerController was presented:Use taps a button to "Add Music" from their iTunes library to a playlist in the app, this triggers the creation and presentation of a media picker controller. But before it displays their media library it shows the Data Sharing Request dialog where the user can tap "Don't Allow" or "OK"MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];picker.delegate = self;picker.allowsPickingMultipleItems = YES;[[mainViewController] presentViewController: picker animated: YES completion:nil];>>> Here is where the user would see the data sharing permission request in iOS 12--before they or the app actually see the media selection.* In iOS 13, however, the data-sharing permission request does not appear until the app's didPickMediaItems delegate method is called (it's a delegate used by MPMediaPickerController). So the app is able to browse the user's data before permission has been granted.- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {>>> Here is where the user is asked to grant data sharing permission in iOS 13But the users' privacy has already been violated at that point. And because the items have already been selected, the app is able to access the media metadata even if the user Denies the data sharing request.
Posted
by bbrockit.
Last updated
.
Post not yet marked as solved
1 Replies
624 Views
Since June 3rd we've been allowed to submit apps to App Store for internal and external testing with TestFlight. I'm running XCode 11 Beta 6 on the required MacOS Catalina 10.5 Beta 6.There's no detail provided with error:App Store Connect Operation ErrorAn error occurred uploading to the App Store.
Posted
by bbrockit.
Last updated
.
Post not yet marked as solved
1 Replies
632 Views
When using the MPMusicPlayerController - ApplicationMusicPlayer the iTunes/Apple Music audio pauses when the app enters the background. In all previous iOS versions it would continue to play when the app was backgrounded.Our apps are used for therapy and combine iTunes audio with binaural audio. The binaural audio continues to play in the background, but the iTunes audio now pauses. A test app demonstrating the issue has been submitted to the Feedback Assistant (ticket 6946855).I've tried different approaches and ensured that the applicationMusicPlayer is being used on the app's main thread but nothing is changing this behavior.It would be really helpful if an Apple dev could chime and confirm whether this is an iOS bug or if MPMusicPlayerController - ApplicationMusicPlayer will no longer play in the background by design.If it has been taken away I'd ask/beg that the decision be reconsidered. End users don't usually respond well to losing features they've relied on for years and typically blame the app developer with 1-star reviews that can destroy an app.Beta 7 also still has a bug that was first introduced in Beta 6 where the MPMediaItemPropertyPlaybackDuration property is zero. (Feedback Assistant ticket 6963688)
Posted
by bbrockit.
Last updated
.
Post not yet marked as solved
0 Replies
1k Views
A number of my apps' customers are sight-impaired so I do a fair amount of accessibility testing with VoiceOver. The App Store app has a major accessibility problem dating back to the iOS 11 app store re-design with the majority of categories buried in favor of positioning "Games" on the main tab bar. Apple needs to make the app store categories equally accessible again in iOS 13.The Games category is 1 tap away, but navigating to Education takes 3 taps and 3 page scrolls. When using VoiceOver this makes it extremely difficult to find even if you know where to look, and impossible if you don't know. A sight-impaired user is not going to instinctively know where that category is buried, so they're effectively excluded from access to it and 15 other categories like Medical, News, and Finance, that are only accessible from the full categories list.Prior to iOS 11, there was a "Categories" button on the main Tab bar at the bottom of the App Store--tapping that button took the user to a full list of all 23 categories. It made access to all categories equally accessible to all users directly from the main App Store screen, which is important because it's a legal ADA requirement that the design is equally accessible to users with physical or mental disabilities.With iOS 11, that "Categories" button was replaced with a "Games" tab linking directly to the Games category, and the link to the full categories list was moved 3 page-scrolls down under the "Apps" tab and was renamed to just a "See all" link positioned to the far-right of a heading labeled "Top Categories". The Top Categories section only displays 6 categories and leaves out key categories like "Education", so users need to tap "See All" to get there. When designing for Accessibility labeling a key navigational button "See all", burying it 3 pages down, and having it reference some other static text makes it impossible to navigate. To make the App Store accessible again the "Categories" button should be returned to the main tab bar, or at least positioned at the Top of the "Apps" tab and clearly labeled.
Posted
by bbrockit.
Last updated
.
Post not yet marked as solved
2 Replies
3.3k Views
UISegmentedControl is using darkened image color for both selected/unselected segments - iOS 13 beta 6. I'm using UIImages in a UISegmentedControl that displays play/pause/stop controls: // play, pause, stop buttons are white on transparent background. Issue is that all are displayed as black. segmentedControl = [[UISegmentedControl alloc] initWithItems: [NSArray arrayWithObjects: [UIImage imageNamed:@"play.png"], [UIImage imageNamed:@"pause.png"], [UIImage imageNamed:@"stop.png"], nil]]; segmentedControl.backgroundColor = [UIColor blackColor];The image is white on transparent background. On iOS <=12 the image would be displayed unchanged in unselected segments of a UISegmentedControl--but it would be darkened automatically for any selected segment, so it would standout from the selected segment color (white).On iOS 13 beta 1-6 all the segments, selected and unselected, are using a darkened variant. So the white play/stop/buttons are being displayed as black on a black background--so they're invisible in a dark mode UI.Has anyone else encountered this issue?It’s logged as FB 6944724 through Feedback assistant.
Posted
by bbrockit.
Last updated
.
Post not yet marked as solved
1 Replies
760 Views
I'm using MPMediaPickerController in my app to select an Apple Music track. In the mediaPicker:didPickMediaItems I get track duration from the MPMediaItemPropertyPlaybackDuration property but it's always zero in iOS 13 beta 6.This issue just started appearing in beta 6. My apps rely on this duration being accurate and it was correct in the earlier iOS 13 betas.- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection { if (mediaItemCollection) { for (MPMediaItem *chosenMediaItem in mediaItemCollection.items) { NSNumber *mediaTrackDurationNumber = [chosenMediaItem valueForProperty:MPMediaItemPropertyPlaybackDuration]; // MPMediaItemPropertyPlaybackDuration is a NSTimeInterval so storing as a double double duration = [mediaTrackDurationNumber doubleValue]; NSLog(@"media item duration = %f", duration); // Always prints 0 } }}.. Code is from a sample app attached to FB 6963688 and submitted through Feedback Assistant.Is there another way to retrieve the MPMediaItem duration?
Posted
by bbrockit.
Last updated
.
Post not yet marked as solved
3 Replies
1.3k Views
I'm using MPMusicPlayerController - ApplicationMusicPlayer with the "play audio" background mode enabled under Capabilities. When I load and play an iTunes Music track with the applictionMusicPlayer the audio stops when the screen locks or the app goes into the background. My test app also plays bundled audio simultaneously, and that audio continues playing when the screen locks but not the Apple/iTunes music. The issue is in all the betas I've tested.Has anyone else encountered this? Is there a new option that would affect this or is this just an iOS 13 Beta bug? For any interested Apple devs there is a sample app submitted through Feedback Assistant demonstrating this bug. (FB6946855)
Posted
by bbrockit.
Last updated
.
Post not yet marked as solved
1 Replies
897 Views
Is the Feedback Assistant the correct place to report iOS 13 bugs? https://feedbackassistant.apple.com/I ask because it repeatedly reports an error when trying to post a bug report and has failed all morning. It also seems to be lacking fields like device, OS and beta version that would normally be seen on a bug reporting form.I have multiple SDK bugs to report along with sample projects to demonstrate them, but it's hard to report bugs to Apple when their bug reporting tool has bugs itself.
Posted
by bbrockit.
Last updated
.