TipKit not showing via TestFlight

My TipKit views are showing in Previews, when I run on a Simulator, and on a physical device (running iOS 17 Beta), but if I archive and upload to TestFlight, I do not see them (on devices running iOS 17 Beta)...

Anyone else encounter this?

I am using the Xcode 15 GM (15A240d). I tried manually adding the framework into the target.

I am worried that if I submit for Review it will not show on devices when released... Am I just supposed to trust that it will work via the App Store? 🫣

Answered by AppleCare Staff in 772310022

Just a quick update that this issue should be fixed in the iOS 17.2 developer beta. Please give it a try if you're testing any of the recent developer betas. Thanks again, @josepaul228 @nathanielblumer-busbud @nadastudio.

I have plugged in a test device (running iOS 17 Beta) and see the following in Console... though I'm not sure what to make of it:

  • Did set recordURI for Tip.(unknown context at $1024d8c0c).FilterSortFeatureTip (that is the name of one of my Tips)
  • found no value for key com.apple.TipKit.DisableDisplayFrequency in CFPrefsSearchListSource<0x283350360> (Domain: com.busbud.busbud, Container: (null))
  • found no value for key com.apple.TipKit.TipDisplayDuration in CFPrefsSearchListSource<0x280bb0990> (Domain: com.busbud.busbud, Container: (null))

Hi @nathanielblumer-busbud, Is it possible that you may have already dismissed this tip on your test device during previous runs of the app? Once dismissed, the tip won't come back - unless you delete and reinstall the app. To eliminate this possibility, can you try deleting the app from your test device, reinstalling it from TestFlight and then see if you can get the tips to appear?

Hi @nathanielblumer-busbud, I created a minimal "Hello World" app with a TipKit tip, and uploaded it to TestFlight. I then downloaded it to my personal iPhone from TestFlight. The tip appeared just fine and worked as expected. The tip also appeared in Xcode Previews and the iOS simulator. As far as I can tell, it's behaving correctly and there are no known issues that would affect TipKit on TestFlight builds.

As a next step, I suggest you try doing the same. Create a brand new Xcode project with the minimal code needed to show a tip. For this minimal app, use the same bundle ID as your existing app and publish it to TestFlight. Then download it from TestFlight and validate that the tip appears. If it does, then you can eliminate TestFlight as a factor in your tip not appearing. You can then investigate whether there is some UI or logic change in your TestFlight/production builds that may be preventing the tip from appearing.

Hope this is helpful.

Hello, we have exactly the same issue as @nathanielblumer-busbud.

We developed a tip in our UIKit application, and everything it's working as expected in debug mode on physical devices and simulators. But when we distribute the app in appcenter (adhoc distribution) the tip it's never displayed.

My config is:

if #available(iOS 17.0, *), isTipKitEnabledUseCase.isEnabled {
            #if DEBUG
                try? Tips.resetDatastore()
            #endif

            try? Tips.configure([
                // One tip per day
                .displayFrequency(.daily)
            ])
        }

And then we have this set of rules and options for the tip:

var rules: [Rule] {
        #Rule(RankingViewController.didAccessRanking) {
            // Tip will only display when the didAccessRanking event has been donated 45 or more times in the last two weeks.
            // TODO: This should be 42 instead of 4 (temporal testing values)
            $0.donations.donatedWithin(.weeks(2)).count >= 4
        }

        #Rule(ReferenceFiltersViewController.didViewRankingReferenceFilters) {
            // TODO: This should be 16 instead of 1 (temporal testing values)
            $0.donations.count <= 1
        }

        #Rule(RankingSortingTip.didViewRankingSortingTip) {
            // Tip will only display when the didViewRankingSortingTip event has not been donated in the last week.
            // TODO: This should be a week instead a minute (temporal testing values)
            $0.donations.donatedWithin(.minutes(1)).count < 1
        }
    }

    var options: [TipOption] = [
        MaxDisplayCount(3),
        IgnoresDisplayFrequency(false)
    ]

I check all the project configuration and build settings and can't really understand what it's going on 🥵

@melsam @nathanielblumer-busbud Same here. No matter what I do, tips don't show if it is the TestFlight build. I can build and install that same binary directly from xcode, and tips appear; however, if then go to TF and download the same binary, they don't (The order doesn't matter, and uninstalling also does not work).

There's an exception in the device console, have we a way to reveal the private message?

This exception is produced in the screen where I donate to the didAccessRanking event in the viewDidLoad of the controller. This donate function does not throws or return any error to see what it's happening in debug mode

Hi @nathanielblumer-busbud could you follow the instructions in Testing a release build to debug the issue.

Sure  @melsam, I just did the test and removed the implementation of the rules array from my tip and by doing that, the tip is displayed as expected the first time I access to the screen. I also did another test and left just one of the rules and it does not working, it seems that the issue is related to the donations then. I've also tried both ways to do a donation: Task { await RankingViewController.didAccessRanking.donate() } and RankingViewController.didAccessRanking.sendDonation() and it does not work

Thank you for sharing the additional information @josepaul228 , @nadastudio , @nathanielblumer-busbud. This does seem related to the event donations. I was able to reproduce the issue when a tip uses rules based on donations. We're investigating the issue and will have an update soon.

Our engineers have reviewed the issue and have determined that it is a bug for which there is no known workaround at this time.

The cause of the issue has been identified and engineering believes that some of the bug fixes in the upcoming iOS updates may address the issue.

Thank you for your understanding.

Accepted Answer

Just a quick update that this issue should be fixed in the iOS 17.2 developer beta. Please give it a try if you're testing any of the recent developer betas. Thanks again, @josepaul228 @nathanielblumer-busbud @nadastudio.

Faced with the same issue... Waiting for updates from Apple... Also, have rules and donates ... One thing that makes me happy is that I'm not alone on this ....

The issue seems to be resolved for me in iOS 17.2.1.

TipKit not showing via TestFlight
 
 
Q