iOS UIActionsheet and flickr sdk conflict - ios

We are using flickr ios sdk in order get photos. And app should start to download
images when user clicks to uiactionsheet item. After clicking item the current controller pops from navigation stack. And after that the app crashes and I see only [LFHTTPRequest(PrivateMethods) readStreamHasBytesAvailable] message.
When we use some view instead of actions sheet all work very well.
I read that this is a flickr's bug but I haven't found any solution for this.

Related

TwitterKit doesn't have interface to control redirection to native twitter app

Currently I use TWTRTweetView from TwitterKit to display the tweets. When I tap on the tweet, the iOS system's popup shows up "MyAppName" wants to open "Twitter", and gives 2 buttons, Cancel and Open respectively.
Then the problem is no matter which button I press on, it will redirect to the twitter native app.
Ok, I have downloaded their source code and looking into it. And I drew a flow diagram to illustrate the issue.
As the diagram shows, the twitter SDK will try to call the deep link on tap first, if user taps "cancel" on the apple's default pop up, then the SDK will try the second attempt by calling universal link. This will cause the issue as I described in the question, which is even user taps on "cancel", my app still redirects to twitter app.

How to dismiss iOS camera Access popup?

My app requests access to the iPhone/iPad camera. This results in the native iOS popup to appear, asking for user confirmation.
Is there a way in which I can dismiss this iOS popup (so before the user has made the OK / Don't Allow choice)?
For recent versions of iOS this popup automatically appears when you request write or read access for iOS Photo Library or use some of the AVFoundation framework components.
You can not dismiss it programmatically but you sure can create your own alert before showing the system one so you can have more control over what the user does.
It is the case in many 3rd party apps because when the user declines the access, it's not easy to ask them to go to settings and re-enable it from there. One of the easiest examples to implement would be something like this.

Firebase Analytics Continuously Tracks UINavigationController

I'm transitioning from Google Analytics to Firebase Analytics. Unlike Google Analytics, Firebase automatically tracks screen views, which is great! But, instead of tracking the screen, it continuously attempts to track the UINavigationController. I get the following error log twice every time I navigate to a different view controller.
[Firebase/Analytics][I-ACS031006] View controller already
tracked. Class, ID: UINavigationController, -1770652405567491888
Is there some configuration required when you have a navigation controller? How do I get automatic screen tracking working in this scenario?
UPDATE: I haven't found a solution to this yet, but I at least found the cause of the problem. It looks like Firebase doesn't understand your view controller hierarchy if your initial view controller is a Tab Bar Controller. My initial view controller in my main story board is a Tab Bar Controller. If I take this out, I get good screen tracking reporting from my app.
UPDATE: It looks like I've found an OK solution to this, but I'm still wondering if someone has a better idea. Since Firebase sees all of the view controllers under my Tab Bar Controller as the same UINavigationController, I can call setScreenName manually in viewDidAppear for all of them.
Analytics.setScreenName(screenName, screenClass: screenClass)
This is OK because it's not any worse than Google Analyics, but it's not ideal because the system still tries to track the UINavigationController twice for every view controller and I'm also not getting the benefit of automatic screen tracking. I looked into trying to remove the Tab Bar Controller from Firebase as some folks seem to have done, but it looks like those methods have been removed from the current (v4.0.0) version of the Firebase SDK.
Screen is automatically tracked in Google Analytics for Firebase. You can see it in the user engagement card in the Main dashboard. This has been introduced in Firebase Version 3.8.0 for iOS. More in track screen doc. Quoting from the doc:
Events that occur on these screens are automatically tagged with the parameter firebase_screen_class (for example, menuViewController or MenuActivity) and a generated firebase_screen_id. If your app uses a distinct UIViewController or Activity for each screen, Analytics can automatically track every screen transition and generate a report of user engagement broken down by screen.
However, you can also track screens manually using the setCurrentScreen() method. The details on this screen should be available in the user engagement card when you select the ScreenName from the dropdown, all the screens manually tracked in the code should be displayed there with the breakdown of duration on average.
Please note that the setScreenName is not an event, it is rather an event parameter that goes with the event that is tracked in the logEvent() method call.

Not able to come back to my app from Instagram after sharing photo using iPhone hooks

I want to share/post photo on Instagram from my app and I could do it using iPhone hooks which opens Instagram app.
But I couldn't find way to come back to my app after sharing photo.
Let me know if it is supported by Instagram. If not then please suggest alternative way for same.
This isn't supported with the instagram app, but in IOS 9 they introduced a button on the left of the status bar which says "back to.." to go back to whatever app opened this one. A rather nice unpublicised addition if you ask me

UIImagePickerController selects the wrong picture (or crashes) in iOS7 after deleting image

I have an app that uses a UIImagePickerController to allow a user to select a profile picture. I've noticed a bug in iOS7 where it selects the incorrect image if you delete an image from your photo stream while the UIImagePickerController is active.
To observe this bug in action you can use the Facebook app or any app which uses a UIImagePickerController such as the Twitter app.
Open Facebook iOS app --> tap profile pic --> tap "choose existing" --> minimize Facebook app --> open the Photos app --> delete some photos from the start of the photo stream --> go back to Facebook iOS app --> try selecting a photo --> the selected photo is NOT the photo that was tapped (or, if you tap the last image, the app crashes, presumably due to an array index out of bounds error).
It seems as though in iOS7 the UIImagePickerController doesn't refresh the photo stream when the app comes into the foreground. Obviously this bug could cause some serious user experience problems.
Hopefully Apple puts through a fix to this bug ASAP, but in the meantime I was wondering if anyone has any workarounds to this bug? The last thing I want is someone using my app to accidentally upload a photo that they would never want seen on the Internet.

Resources