9 Replies
      Latest reply: Feb 16, 2017 1:26 AM by eskimo RSS
      fazal_Developer Level 1 Level 1 (0 points)

        Is there a way in iOS to check if user has installed a particular app on his device?

        I am using one of my app (Promoting App) to promote my other apps. When a user installed one of my other apps, I want to record this install in my app (Promoting App).

        • Re: How to track app installation in iOS
          eskimo Apple Staff Apple Staff (6,075 points)

          Are both of these apps published by the same team?

          Share and Enjoy

          Quinn “The Eskimo!”
          Apple Developer Relations, Developer Technical Support, Core OS/Hardware
          let myEmail = "eskimo" + "1" + "@apple.com"

            • Re: How to track app installation in iOS
              fazal_Developer Level 1 Level 1 (0 points)

              No, they are not from the same team.

                • Re: How to track app installation in iOS
                  zibin Level 1 Level 1 (0 points)

                  i think you may use the “idfa” for tracking with the permission by user

                  • Re: How to track app installation in iOS
                    eskimo Apple Staff Apple Staff (6,075 points)

                    No, they are not from the same team.

                    That makes things harder.  Let’s say app A wants to tell whether app B is installed.  Presumably you control app A and can make changes to it.  Do you control app B?  Can you make changes to that?

                    Share and Enjoy

                    Quinn “The Eskimo!”
                    Apple Developer Relations, Developer Technical Support, Core OS/Hardware
                    let myEmail = "eskimo" + "1" + "@apple.com"

                      • Re: How to track app installation in iOS
                        fazal_Developer Level 1 Level 1 (0 points)

                        No, I don’t have any type of control over App B.

                        Can somehow App B save something in any shared directory (if iPhone allows), so that app A can check if app B has been installed and opened. (They may not be from the same team).

                          • Re: How to track app installation in iOS
                            eskimo Apple Staff Apple Staff (6,075 points)

                            No, I don’t have any type of control over App B.

                            Can somehow App B save something in any shared directory …

                            If you don’t have any control over app B, how are you going to convince it to save some data in a shared location?  Regardless, the iOS sandbox won’t allow this; there is no place on the file system when app B can write that app A can read.

                            The traditional approach for this sort of this is to have app B publish a URL scheme that app A can look for using +[UIApplication canOpenURL:].  However, if you have no control over app B then this will only work if app B already publishes a unique URL scheme.

                            IMPORTANT There have been some recent privacy-related changeds in this space; watch WWDC 2015 Session 703 Privacy and Your App for the details.

                            Share and Enjoy

                            Quinn “The Eskimo!”
                            Apple Developer Relations, Developer Technical Support, Core OS/Hardware
                            let myEmail = "eskimo" + "1" + "@apple.com"

                              • Re: How to track app installation in iOS
                                fazal_Developer Level 1 Level 1 (0 points)

                                As per my knowledge, for

                                +[UIApplication canOpenURL:]

                                To work,

                                App 'A' has to declared in his Info.plist App ‘B’ 's URL Scheme

                                Right?

                                 

                                What if App ‘A’ has not declared App B's URL Scheme?

                                App ‘A’ only has the knowledge of App ‘B’ ‘s Bundle Identifier and its Apple ID.

                                  • Re: How to track app installation in iOS
                                    eskimo Apple Staff Apple Staff (6,075 points)

                                    What if App ‘A’ has not declared App B's URL Scheme?

                                    I’m not sure why that would be an issue.  Given that you control app A, why can’t you just change it to reference app B’s URL scheme?

                                    It sounds like your end goạl is for app A to be able to test for the presence of arbitrary apps without exposing that test to App Review via its Info.plist.  If that’s the case you’re are not going to be able to achieve that goạl; the WWDC session I referenced above clearly explains why that’s the case.  Attempting to work around privacy restrictions like this generally doesn’t end well.

                                    Share and Enjoy

                                    Quinn “The Eskimo!”
                                    Apple Developer Relations, Developer Technical Support, Core OS/Hardware
                                    let myEmail = "eskimo" + "1" + "@apple.com"