Post not yet marked as solved
393
Views
I need to update a 3 year old iPhone-only, portrait only (NOT universal) camera/photo app that worked with iOS 8 that contains a Share extension that now (with 10.0???) crashes at times (but works many other times), and I'm trying to debug the issues and update to iOS 9.0.The first issue I found and fixed was the lack of Privacy strings for access to the camera and photo library.But I also found that the extension does not work with Photos on an iPad with layout issues (in the Simulator so far). As the docs say, extension targets must be made for iPhone/iPad and my build setting for the target extension are set to 1,2, and I use Auto Layout.The storyboard, the Extension scene, a View Controller Scene, all view controllers, views and subviews all are set for Auto Layout as well as Safe Area Layout Guides, but the only devices shown in IB are iPhones with no iPads available, when selecting other devices no change is seen in size, and the iPhone is constrained to portrait mode. I've tried setting the main app as Universal, allowing every orientation, building, and still no iPad icons in IB to test the UI for the extension (and Landscape doesn't work either). I built a blank iPhone only app with an app extension, turned off traits and the iPads show up but the orientation would not switch to Landscape (like my app).Is there a way to get IB to show and allow both iPads/iPhones, particularly iPads, and change orientation during development for app extensions (because they're supposed to adapt to all devices and orientations)?
Post marked as solved
292
Views
My app was originally multi-lingual but I want it limited to English. The new app uploaded fine, validated, etc. but when I Submit for Review there was "one or more errors" and the only thing on the page was a white on red circle on the English (U.S.) in the upper right hand corner of the page. There is no explanation of what that means or what I need to do and just languages I do not want to localize.I still have "junk" in my code from the preiviously accepted version which includes InfoPlist.strings group that contain 5 languages including English, as well as Localizable.strings group that include files for Base and English.Under Project -> Info there still remains 5 Localizations with Use Base internationalization checked.So, I would prefer not to experiment and keep creating new builds, archiving, uploading, choosing build, etc. over and over, and then at the last moment only to find the error mark next to English again.Does anyone know what I should delete, what needs to be left (e.g. Base localizable strings vs. English strings which are identical), or wil removing the localizations in Project Info will be enough to satisfy the unknown need of the submission?
Post marked as solved
352
Views
Have a single view controller that operates for both an iPhone storyboard and an iPad storyboard. The view controller scenes for each include a UIView subclass with writeable properties necessary to create a special view.I can successfully set the properties for the subclass in the view controllers viewDidLoad for the iPhone but the properties are not successfully set for the iPad and the subclass obviously does not perform as designed. Included below are abstracted console listings (for simulators) that show the iPhone the subclass is inited with coder slightly before the viewDidLoad for both devices, so I would think I was safe. When I test the subclass without the rest of the app, it works for both devices in the simulators.So, again (because I think I used to know this), when can you reliably set properties for storyboard objects within a scene?iPhone 8 (setting subclass properties works in viewDidLoad)
2017-11-07 14:05:53.191484 initWithCoder: (UIView subclass)
2017-11-07 14:05:53.191915 setUpView (UIView subclass)
2017-11-07 14:05:53.221606 [MC] Lazy loading NSBundle MobileCoreServices.framework
2017-11-07 14:05:53.222767 [MC] Loaded MobileCoreServices.framework
2017-11-07 14:05:53.304210 viewDidLoad (Main View Controller)
2017-11-07 14:05:54.104553 viewWillAppear: (Main View Controller)
2017-11-07 14:05:54.124889 viewWillLayoutSubviews (Main View Controller)
2017-11-07 14:05:54.128485 layoutSubviews (UIView subclass)
2017-11-07 14:05:54.128630 layoutSubviews (UIView subclass)
2017-11-07 14:05:54.129017 viewWillLayoutSubviews (Main View Controller)
2017-11-07 14:05:54.144486 drawRect: (UIView subclass)
iPad Air 2 (setting subclass properties does NOT work in viewDidLoad)
2017-11-07 14:09:14.184502 [MC] Lazy loading NSBundle MobileCoreServices.framework
2017-11-07 14:09:14.185708 [MC] Loaded MobileCoreServices.framework
2017-11-07 14:09:14.218208 initWithCoder: (UIView subclass)
2017-11-07 14:09:14.218519 setUpView (UIView subclass)
2017-11-07 14:09:14.229662 viewDidLoad (Main View Controller)
2017-11-07 14:09:14.410150 viewWillAppear: (Main View Controller)
2017-11-07 14:09:14.419288 viewWillLayoutSubviews (Main View Controller)
2017-11-07 14:09:14.423142 layoutSubviews (UIView subclass)
2017-11-07 14:09:14.423248 layoutSubviews (UIView subclass)
2017-11-07 14:09:14.423658 viewWillLayoutSubviews (Main View Controller)
2017-11-07 14:09:14.441233 drawRect: (UIView subclass)
Post not yet marked as solved
5.1k
Views
Updating an old app and for all kinds of reasons NOT using AutoLayout. My code works fine without any "magic" numbers about screen size, checking for individual sizes or devices, etc. and it works fine for everything EXCEPT iPhone X. So, I need to confine two sides of my main view to a safe areas (landscape - notch side and bottom) and the problem is that one of my custom views is created during the app's view life cycle, and the safeAreaInsets that I need to use are not around when I need them to create the view.I've seen code around where depending on whether iOS 11 is available, constraints can be added programmatically to limit the view to the safe area and if not iOS 11 just stick to the sides (or do nothing).Two questions. 1) can working constraints be added programmatically to a NON-AutoLayout environment, in other words, are the safe area guides even there and will constraints work when not using AutoLayout, and 2) is there any other way to *simply* deal with iPhone X (without AutoLayout in IB and the safe area guides)?
Post not yet marked as solved
305
Views
I created a rounded rectangular image (actually several @2x, @3x) with say a corner radius of 20 points @1x. This image has an inside shadow on the upper top and left with a gradient going from light color on top to dark color at the bottom. I want the image to stretch both horizontally and vertically.In the attributes inspector, I sliced it for Horizontal and Vertical and automatically it figured out the caps at 20 points left, right, top, and bottom with width of 1. I set the Center to Tiles (and also Stretches first) with the same result that the corners are all fine but there is no gradient with just the light color almost to the bottom (where the 20 point caps are) and from that point down, there is just the dark color horizontal area. Not at all what I expected as the center area did not capture any of the existing gradient from top to bottom.I've tried every permutation I can think of, Tiles, Stretches, widths, cap sizes, all without success. So, can gradient images be sliced?
Post not yet marked as solved
882
Views
For a lot of reasons on a 2014 landscape-only app needing an update, I cannot use a storyboard file, and will have to use an asset catalog for my launch images (or not?). However, when I choose Launch image Inspector for the iPhone, iOS 8.0 or later and choose Landscape, I expect to see a slot appear for iPhone Landscape, iOS 8,9, Retina HD 4.7" but none appears. I *think* I need this for an iPhone 8 and I created a png named Default-Landscape-667h@2x.png, and there is NO slot.I've tried putting it in the Portrait slot, where there is a Retina HD 4.7" slot, and of course I get the compiler warning:Ambiguous Content: LaunchImage.launchimage/Default-Landscape-667h@2x.png is 1334x750 but should be 750x1334.Which, yeah, I know, so where is the Landscape slot for Retina HD 4.7" ?
Post not yet marked as solved
1k
Views
I'm trying to fix a minor alignment bug in iOS 11-only in a 2014 V1.0 app. I seem to be able to develop the code in Xcode 9 without errors, but when I tried to debug on my iPhone 6S device (which I did not have in 2014) I get these errors:"MyApp" requires a provisioning profile with the In-App Purchase feature. Select a provisioning profile for the "Debug" build configuration in the project editor.Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.0'And in the General tab of the Target I have:Signing (Debug)There is Provisioning Profile: None, Team: None, Signing Certificate: Noneand"MyApp" requires a provisioning profile with the In-App Purchase feature.Select a provisioning profile for the "Debug" build configuration in the project editor.Signing (Release)Apparently I do have a MyApp IAP Distribution Provisioning Profile which is selectedbut Team: None, Signing Certificate: NoneSigning for "MyApp" requires a development team.Select a development team in the build settings editor that matches the selected profile "XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX".So, it's been a while (obviously) since I've had to deal with this and when I went to the Developer Certificate Utility website, it seems with the exception of 2 or 3, ALL my provisioning profiles have expired. Although I do have a valide AppID for this app.So, was all this simplified in the last several years? Under Signing, there is a checkbox to Automatically Manage Signing. Do I check that and all of this goes away? Or do I have to do this all manually (again)?
Post marked as solved
685
Views
I have 2014 v1.0 universal app that has a slight view misalignment with iOS 11 (not with 10 and below). I don't know if this was before AutoLayout or not, but at the time the only issue was to take advantage of 568x320pt (landscape only app) vs. 480x320, so basically I hacked/hard coded the changes usingCGFloat mainScreenHeight = [[UIScreen mainScreen] bounds].size.height;CGFloat mainScreenWidth = [[UIScreen mainScreen] bounds].size.width;to make the fix (basically checking whether the width was 568), and it seemed to work with iOS 7-10 with ALL devices until 11.Anyway, I'm digging into the old code, found the hack, spent HOURS and hours thinking and trying to do it all with AutoLayout, and finally decided to back to the hack.The problem now is that no matter what device I use in the simulator, the code above ALWAYS returns 568x320 instead of 667x375, 414x736, etc.. And with the exception of the X (the embedded scrollview doesn't line up exactly at the start) my tweaked hard-code seems to fix the issue on all the newer devices (on the simulator). What am I missing here? Why does Xcode always return the point size for a 4" device?
Post not yet marked as solved
214
Views
I created three overlapping graphics in Illustrator at 375x375 points, and exported them as PDFs (all measuring 375x375). Imported them into Xcode 8.3.2 as single scale assets. I put each into the storyboard as image view values, added constraints to keep to the overlapping views in the middle and away from the leading, trailing horizontal edges. In the storyboard they are all overlapping and lined up perfectly, all with the same constraints.When I try to see how they look on various devices, the graphics all look as designed for the 4S, SE, and 6. But when I try the 7 plus, one, just one of the graphics somehow scales larger by about 20 points in diameter! The other two remain perfectly aligned and proportional. And that bizarre storyboard appearance for the 7 plus is the same in the simulator. When I tried adjusting the constraints for the 7 plus, that of course (for me) screwed up all of the other devices. I was expecting a class size change for the 7 plus but the class is the same for all the iPhone devices (all wC hR).Does anyone have any ideas what causes this, or what I can do to fix this?It sure seems like an Xcode bug to me.
Post not yet marked as solved
300
Views
I'd just like to add my voice to the chorus of complaints about creating Sticker Packs with animation.I understand that keeping sticker size small is critical to performance, but after spending DAYS with Xcode 8.3, Motion, ImageOptim, PNG Animator, etc. I've discovered that it is nearly impossible to create anything other than the simplest of animations. I bought Motion because I thought that was "Approved" as there are Apple webpages explaining how to use Motion for animated sequences. Even Apple's examples using Motion go way beyond the size limits. And Xcode 8.3 now catches previously posted "solutions" that somehow bypassed the size limit and now I have to use other apps to shrink the Motion output.I finally produced an animation by changing frame rate to 10fps, with only two seconds of animation, with resultant PNG sizes of less than 90KB for each image. That does not allow for much creativity and almost eliminates using much color in the animation.I guess my question is, what guidelines (frame rate, # of colors used, size, objects in the animation, etc.) and workflows do other animated sticker developers use to stay under the size limits? Does anyone actually use Motion anymore for this purpose (as implied by Apple)?
Post not yet marked as solved
228
Views
I'm putting together a promotional Sticker Package for a national tribute band (friends of mine) and they've supplied me the artwork, graphics, logos, etc. My package is ready to submit but I would prefer the process to be smooth without burps by reviewers regarding the band's trademarks, copyrights, etc.In the guidelines this is what is written:"(v) You must have all the necessary copyright, trademark, publicity rights, and permissions for the content in your stickers, and shouldn’t submit anything unless you’re authorized to do so. Keep in mind that you must be able to provide verifiable documentation upon request."What is sufficient "verifiable documentation"? Notarized? Signature guarantee? email? phone number?And can I submit whatever with the submission (never bothered looking for such things before)?