App Clips

RSS for tag

Provide a way to quickly access and experience what your app has to offer. An app clip is a small part of your app that lets users start and finish an experience in seconds, even before downloading your app.

App Clips Documentation

Posts under App Clips tag

102 Posts
Sort by:
Post not yet marked as solved
3 Replies
478 Views
Hi everyone, I have 3 domains (only for development) + 1 domain for production. For example: 3 domains: (for development) https://beta1.example.com https://beta2.example.com https://beta3.example.com 1 domain: (for production) https://example.com I configured universal links for app clips with these domains and uploaded the same apple-app-site-association file to these 4 domains. However, I found that when I add advanced App Clip Experiences to AppStore connect, there are only app clip experiences of 1 domain validated successfully. (For example, only app clip experiences like https://beta3.example.com/id validated successfully, the other app clip experiences of https://beta1.example.com , https://beta2.example.com and https://example.com were invalid with the message “This URL is not contained in your app’s associated domains. Update associated domains or use a different URL.” (regardless of the domains in each build) . I suppose that app clip experiences of 4 domains should be validated successfully. Would anybody please help me?
Posted Last updated
.
Post not yet marked as solved
1 Replies
38 Views
Hello We're trying to use App Store Connect API to create our advanced app clips experiences but we fail as the WWDC video code is incorrect. The request format to create the appClipAdvancedExperiences is not clear at all in the documentation, and while we first had some tips in the error messages, the last we have now is Error 500 - UNEXPECTED ERROR - "An unexpected error occurred." - "An unexpected error occurred on the server side. If this issue continues, contact us at https://developer.apple.com/contact/." which is not very helpful. Can someone help us with this? Thanks S.
Posted
by SebC99.
Last updated
.
Post not yet marked as solved
0 Replies
246 Views
Hello, I'm trying to setup my App Clip Experience URL and the App Store Connect always gives me an error saying: "URL is not compatible with App Clip Codes" I'm using the same format as mentioned on Apple docs and It's not working with multiple query items or multiple path components // Works - https://appclip.example.com/shop?p=123 - https://appclip.example.com/shop/local // Does not work // One path, multiple queries - https://appclip.example.com/shop?p=123&p1=456&p2=789 // Multiple path, single query - https://appclip.example.com/shop/local?p=123 Does anyone know if this is supposed to work that way? Thank you
Posted Last updated
.
Post not yet marked as solved
0 Replies
56 Views
Hello,  We release an App Clip back in December 2020, and everything was working just fine for the longest time. However, sometime relatively recently, not exactly sure when it started, the Domain URL Status started showing this “Cannot Reach AASA File” error; and consequently, the App Clip invocation fails now.   The API Validation Tool is saying “Error cannot parse app site association file” as the reason.   We have not made any changes in the App / App Clip, and the associated domain is still set as appclips:mobileapp.caesars.com     The Apple App Site Association file hasn’t been changed either, and the format still matches that specified on https://developer.apple.com/documentation/app_clips/associating_your_app_clip_with_your_website. The AASA file returns no problem in a browser and from curl command as you can see below: Last login: Tue Jul 12 09:11:11 on console curl -v https://mobileapp.caesars.com/.well-known/apple-app-site-association *  Trying 192.230.66.155:443... * Connected to mobileapp.caesars.com (192.230.66.155) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/cert.pem * CApath: none * (304) (OUT), TLS handshake, Client hello (1): * (304) (IN), TLS handshake, Server hello (2): * (304) (IN), TLS handshake, Unknown (8): * (304) (IN), TLS handshake, Certificate (11): * (304) (IN), TLS handshake, CERT verify (15): * (304) (IN), TLS handshake, Finished (20): * (304) (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / AEAD-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: C=US; ST=Nevada; L=Las Vegas; O=Caesars License Company, LLC; CN=*.caesars.com * start date: Jul 28 00:00:00 2020 GMT * expire date: Oct 14 12:00:00 2022 GMT * subjectAltName: host "mobileapp.caesars.com" matched cert's "*.caesars.com" * issuer: C=US; O=DigiCert Inc; CN=DigiCert SHA2 Secure Server CA * SSL certificate verify ok. * Using HTTP2, server supports multiplexing * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x12b810400) > GET /.well-known/apple-app-site-association HTTP/2 > Host: mobileapp.caesars.com > user-agent: curl/7.79.1 > accept: */* >  * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! < HTTP/2 200  < content-type: application/json < last-modified: Tue, 29 Mar 2022 17:01:12 GMT < accept-ranges: bytes < etag: "8fb84c988e43d81:0" < server: Microsoft-IIS/10.0 < x-powered-by: ASP.NET < p3p: CP="DEVa TAIa CURa STA NAV COM PUR ADMa IND OUR CONa" < date: Tue, 12 Jul 2022 14:13:38 GMT < content-length: 94 < set-cookie: TLTUID=14DC54AD87C0CE8FE7D996B6462E29DA; Domain=caesars.com; Expires=Sun, 03-Mar-2024 14:13:38 GMT; Path=/ < set-cookie: TLTSID=CE56628D3C96FCC7119B576D984C3119; Domain=caesars.com; Path=/ < set-cookie: visid_incap_2158031=HUn4aDqCSo+WP67o1FH52pGBzWIAAAAAQUIPAAAAAAB3XfZ+ShjpzS05c/MsxAjO; expires=Wed, 12 Jul 2023 06:18:20 GMT; HttpOnly; path=/; Domain=.caesars.com < set-cookie: nlbi_2158031=q84xFZbqUDGbu15TtwLJSwAAAABBaYw0KJNNHWaeJ2p5/DNV; path=/; Domain=.caesars.com < set-cookie: incap_ses_979_2158031=w4MXYaAK4R7YuhVx/BuWDZGBzWIAAAAA8Dt1Yyj9qc8nFNp3F96Kxg==; path=/; Domain=.caesars.com < x-cdn: Imperva < x-iinfo: 11-18630097-18630107 NNNY CT(35 74 0) RT(1657635217346 57) q(0 0 0 1) r(0 0) U12 <  {  "appclips": {   "apps": [    "YXFZ76LPGW.com.caesars.playbytr.Clip"   ]  } * Connection #0 to host mobileapp.caesars.com left intact Again, this was all working without any problems and just suddenly stopped for some reason without any apparent explanation. I’ve looked at similar issues reported in the forums with no luck helping solve this issue yet. Any guidance/help would be greatly appreciated!
Posted
by Steepz.
Last updated
.
Post not yet marked as solved
0 Replies
30 Views
When sending an App Clip URL via messages (message sent by the server), the URL is not recognized as an App Clip. However, when sending the same link directly via messages, the URL is recognized as an AppClip. Is it possible to somehow solve this problem and distribute a link to the AppClip through "Messages" by the server?
Posted Last updated
.
Post not yet marked as solved
0 Replies
50 Views
I have successfully integrated the App Clip into my project by following the documentation.. I also added meta tags to display the smart banner on the site and in the iMessage. When distributing a link via iMessage, the App Clip smart banner is displayed correctly. Is it possible to do the same, but so that the message with the link to the App Clip is sent through the webserver? How to do it?
Posted
by Dethklok.
Last updated
.
Post not yet marked as solved
0 Replies
50 Views
Is there a way we can control the checking of iOS version when scanning the QR code? I would like to redirect the user to a certain web page if iOS version does not meet the required version. Instead of showing the error message from Apple This app clip requires iOS 15.0 or later, I would like to immediately redirect the user to the URL. I checked the documentation and the WWDC videos if there's any configuration to be done but I couldn't find anything.
Posted
by jacquedev.
Last updated
.
Post not yet marked as solved
0 Replies
42 Views
Pre-Condition: Main app is not yet launched/installed. Scenario: Scan the QR code. Launch app clips. Minimize app clips (just go to home screen). Install main app if necessary. Launch the main app. Expected Result: Main app should not display app clips' screen. Actual Result: Main app displayed app clips' screen. Is there a solution to prevent this from happening? Note: App clips and app have the same App Groups entitlement and enabled under Capabilities tab.
Posted
by jacquedev.
Last updated
.
Post not yet marked as solved
0 Replies
86 Views
We have been having problems with our app clip not working when sharing through iMessage. The app and app clip are published and work correctly when scanning a QR code that points to the URL: https://www.coderus.com/locations?loc=1 however if this same URL is shared through the iMessage app, a link to the website displays and not the app clip card. We have confirmed that: AASA file is available and has the type application/json Both devices are above iOS 14 Both devices are in each other's contacts The website has the meta tag for the smart app clip banner The website has a meta tag for the og:image Launch experiences have been configured on AppStoreConnect - as said before, the QR codes work correctly The link leads to a 404 page, I wasn't sure if there needs to be an actual page that the link points to as app clips seem to work fine without when scanning the QR code through the camera app.
Posted Last updated
.
Post marked as solved
6 Replies
1.9k Views
The following code can connect to the host successfully on iOS Simulator. But the code fails to connect on an iOS device. I has checked the WLAN and Cellular Data are both allowed for the app clip. I also try NSURLSession to access to a web site. NSURLSession is successful to get the data on both iOS simulator and iOS devices. Do we allow to use socket streams in App Clips? Xcode Version 12.0 beta (12A6159) iOS 14 Beta: 14.0 But the code fails to connect on   CFReadStreamRef readStream;   CFWriteStreamRef writeStream;       //create socket connection   CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)@"www.baidu.com", 443, &amp;readStream, &amp;writeStream);   NSInputStream* inputStream = (__bridge_transfer NSInputStream*)readStream;   NSOutputStream* outputStream = (__bridge_transfer NSOutputStream*)writeStream;       [inputStream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL            forKey:NSStreamSocketSecurityLevelKey];   // and open the streams   [inputStream open];   [outputStream open]; Console output: [connection] nw_socket_connect [C1.1:1] connectx(5, [srcif=0, srcaddr=&lt;NULL&gt;, dstaddr=61.135.169.121:443], SAE_ASSOCID_ANY, 0, NULL, 0, NULL, SAE_CONNID_ANY) failed: [65: No route to host] [connection] nw_socket_connect [C1.1:1] connectx failed (fd 5) [65: No route to host] [] nw_socket_connect connectx failed [65: No route to host] [connection] nw_socket_connect [C1.2:1] connectx(5, [srcif=0, srcaddr=&lt;NULL&gt;, dstaddr=61.135.169.125:443], SAE_ASSOCID_ANY, 0, NULL, 0, NULL, SAE_CONNID_ANY) failed: [65: No route to host] [connection] nw_socket_connect [C1.2:1] connectx failed (fd 5) [65: No route to host] [] nw_socket_connect connectx failed [65: No route to host] [connection] nw_connection_get_connected_socket [C1] Client called nw_connection_get_connected_socket on unconnected nw_connection TCP Conn 0x280200370 Failed : error 0:65 [65]
Posted
by hale_xie.
Last updated
.
Post marked as solved
9 Replies
2.1k Views
Our users faced the problem with App Clips usage, and some of them can't use this experience due to the next problem: There is a billing problem with a Previous Purchase View and correct the problem in your billing info. If you cancel , you may not be able to buy until this billing issue has been resolved. When some of our users tried to open App Clips card, they were getting billing problem popup, but at the same time they could download app from App Store without any problem. This popup blocks any possibilities for further actions with App Clips. Moreover, all information are correct and right. What we discover in one iPhone, is that it has pending payment for iCloud storage, but don't charge. But any possibilities to fix this user don't have. How can we fix it? Ask you for help :(
Posted
by BODIMO.
Last updated
.
Post not yet marked as solved
4 Replies
620 Views
When I try to upload my App and App Clip to App Store Connect from my XCode project (XCode 13.3), I get the following error message : App Store Connect Operation Error Invalid required device capabilities. The UIRequiredDeviceCapabilities values [arkit] in the Info.plist of app clip 'Wilkins Avenue Lancome Holiday.app/AppClips/WilkinsAvenueLancomeHolidayClip.app' must match the UIRequiredDeviceCapabilities values [arkit] in the Info.plist of the app. Match the device capabilities between your app and app clip. With error code STATE_ERROR.VALIDATION_ERROR.90845 for id cd915e8a-4777-4c9a-9dee-af3a92b0175b However, I have double checked my info.plist files in both my App and App Clip and they both specify the ARKit capability in the UIRequiredDeviceCapabilities field, as you can see in these screenshots : https://drive.google.com/drive/folders/1sHVl86EH0YhS9vlK5vNPz44xnSqipbXY?usp=sharing It is worth noting that both the App and AppClip work fine when I build & run them on my iPhone.
Posted Last updated
.
Post not yet marked as solved
2 Replies
243 Views
Hello All, The issue: After uploading the app version which is containing the app clip target to App Store Connect & checking TestFlight tab -> this build details -> Build MetaData -> App Clip -> Domain Status -> View Status, it keeps giving me "Bad JSON Content" for my build domain either for CACHE STATUS or DEBUG STATUS. It seems that my AASA file couldn't be validated for some reason that I don't know.  Steps I tried to solve the issue by them : 1- Add the associated domain twice, one with prefix appclips: & the other one with applinks: prefix for both parent & app clip targets. 2- Update the AASA file to include supporting for iOS 13+ & upload this file to the .well-known directory. 3- On server, force type to 'application/json' in the .htaccess file in the .well-known directory. My Configurations: Server Side 1- The Content-Type for the AASA file is set to application/json. 2- Server allows AASA-Bot and CFNetwork as user agents. 3- AASA file is uploaded on the .well-known directory on this server without any redirects. Xcode Side Invocation url domain is added to both app clip & parent targets’ Associated Domains as the following: appclips:fully-qualified-domain applinks:fully-qualified-domain Web App Side Requesting this url https://fully-qualified-domain is redirecting to either https://fully-qualified-domain/login if the user is not logged in or to https://fully-qualified-domain/home if the user is already logged in. Any help is appreciated, thanks in advance!
Posted
by hagarAli.
Last updated
.
Post marked as solved
5 Replies
884 Views
I added the NSFaceIDUsageDescription property to the Info.plist file, but my App Clip never prompts the user for Face ID permissions and context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &amp;error) returns the following error: Error Domain=com.apple.LocalAuthentication Code=-6 "User has denied the use of biometry for this app." UserInfo={NSLocalizedDescription=User has denied the use of biometry for this app.} Is Face ID intentionally forbidden on App Clips (perhaps due to security reasons)? It is not listed as one of the limitations in this documentation (Choosing the Right Functionality for Your App Clip - https://developer.apple.com/documentation/app_clips/choosing_the_right_functionality_for_your_app_clip) though.
Posted
by mgk.
Last updated
.
Post not yet marked as solved
0 Replies
87 Views
AppClip is being created. AppClip's Associated Domains has "appclips:example.com" added. appclips:example.com" and "applinks:example.com" are added to the installed version. The apple-app-site-association is now listed as follows. {     "applinks": {         "apps": [],         "details": [{             "appID": "TeamID.com.sample.myapp",             "paths": ["*"]         }]     },     "appclips": {         "apps": ["TeamID.com.sample.myapp.Clip"]     } } The configuration seems fine, but is there something wrong?
Posted Last updated
.
Post not yet marked as solved
0 Replies
151 Views
My app clip needs to access the camera so need to redirect users to the settings if access is denied, however the regular method of calling let url = UIApplication.openSettingsURLString; if let appSettingsURL = URL(string: url) { UIApplication.shared.open(appSettingsURL) } doesn't seem to take app clips into account and just lands people in the base Settings page. It works fine if directly deploying to a device, but when testing via TestFlight it's installed under the AppClips subsection instead. Is there a way to get users directly into Settings -> AppClips -> AppName?
Posted
by JJY.
Last updated
.
Post not yet marked as solved
0 Replies
95 Views
I  am trying to set the AppClip invocation for my App which is already released on app store. I need an url such that it provides me a jobId e.g.: https://example.com/task?jobId=00001. My use case is that I send the sms with the url https://example.com/task?jobId=00001 to the user, the user clicks on the url and the app gets started. Then for the other user I send the next url with corresponding jobId. I did setup the AASA file for my domain (contains the JSON with "applinks" and "appclip" objects) which is valid, also the Domain status is valid on App Store Connect. There is a default experience set with title, subtitle, image and action. I also configured an advance experience for the url https://example.com/task. However, my app clip doesn't get invoked if I access the url from either sms text or safari. :( I do not have a web page for https://example.com/task therefore I haven't set up the meta data for this. Is it possible to invoke the AppClip this way? It is really important for me that the URL is dynamic and I pass that jobId every time for each individual booking. I already read at least twice Apple documentation about AppClip and I could not find the problem.
Posted Last updated
.