Post not yet marked as solved
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?
Post not yet marked as solved
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.
Post not yet marked as solved
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
Post not yet marked as solved
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!
Post not yet marked as solved
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?
Post not yet marked as solved
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?
Post not yet marked as solved
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.
Post not yet marked as solved
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.
Post not yet marked as solved
Do you need to be paying apple the 99$ a year for developing an app clip from a nfc or can you do this on a free account ?
Post not yet marked as solved
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.
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, &readStream, &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=<NULL>, 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=<NULL>, 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]
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 :(
Post not yet marked as solved
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.
Post not yet marked as solved
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!
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: &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.
Post not yet marked as solved
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?
Post not yet marked as solved
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?
Post not yet marked as solved
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.
Post not yet marked as solved
We have verified that UniversalLink cannot be used with AppClip.
However, the documentation does not clearly state this.
Can I use UniversalLink with AppClip?
Post not yet marked as solved
We have created a couple of app clips on App Store Connect. We are now trying to create many more app clips using the APIs provided by apple. These APIs require the id of the app clip to associate the relationship with the appclipAdvancedExperience.