Post not yet marked as solved
This error only occurs in device with 17.4.1 OS. Can anyone please help me in this ?
Post not yet marked as solved
When using an ASWebAuthenticationSession to log in, with prefersEphemeralSession = false to enable SSO, the system presents an alert asking if the user wants to allow "SomeApp" to Sign In with "someauthprovider.xyz".
The system presents exactly the same alert when you want to log out, and it is confusing for users.
It's my understanding that the system does this because the alert really means "would you like to allow this app to let some page access Safari's shared cookie vault?" in lay terms, and is not distinguishing between create, read, update, or delete.
It would be splendid if Apple changes this dialog depending on the operation. I would also like to know if there is any other way to fix this.
Post not yet marked as solved
We've been using network framework for peer to peer connectivity since iOS 15. Since the introduction of iOS 17 we've been getting the following for our NWListener when attempting to establish a connection with any multipathServiceType enabled. We're not doing anything special here. On iOS 17.x devices (we've tested 17.1, 17.2, 17.4) we simply enable multipath services by adding the multipath capability and then setting multipathServiceType to .handover or .interactive on our NWParameters. The devices never connect when we try establish an NWConnection. This works on all non-iOS 17.x devices.
This is reproducible using the Apple Peer-to-Peer NWConnection TicTacToe sample code.
Post not yet marked as solved
We have a relatively simple app that using Network.Framework, NWConnection, NWEndpoint to setup TCP connections with nearby devices also using the app. It's actually been working great for a while now but we've recently noticed with iOS 17.4/17.4.1 that we're spontaneously getting:
nw_proto_tcp_route_init [C6:3] no mtu received
sometimes the [C6:3] will be [C7:3] or another similar code. We may also occasionally see No route to Host appear in our console logs though this isn't definite. After this point the connection is effectively lost but we don't actually receive any updates on our NWConnection stateUpdateHandler to action on. It's sort of dead in the water so to speak.
We've reproduced this issue with multiple devices on iOS 17.4.x and in multiple network settings (in office, cafe, home networks...etc). Nothing seems to make a difference. Any ideas on how to fix or workaround this?
I saw a similar issue here: https://developer.apple.com/forums/thread/669519 but the original author never followed up and it's around 3 years old. I've captured a sysdiagnose log and can submit an issue if it warrants filing a bug report.
Post not yet marked as solved
I am trying to determine the installation source of my iOS app.
According to the documentation https://developer.apple.com/documentation/appdistribution/distributing-your-app-on-an-alternative-marketplace#Customize-your-app-depending-on-the-installation-source, MarketplaceKit AppDistributor static property current should be used.
But build fails due to the error 'Cannot find 'AppDistributor' in scope'.
Is MarketplaceKit available for apps that install from an alternative app marketplace?
Post not yet marked as solved
We are using and iOS version 17.4.1 and 17.5(beta) , and when are we facing the issue for local network permission in our app.
Success scenario steps:
Don't allow the local network permission in our App
Allow it manually in app setting for local network permission(works only in first install of the App)
We are able to call the API successfully
Error scenario steps:
Allow the local network permission popup to app when asked for permission
Call the API successfully
Uninstall the app and install the same app again and don't allow the local network permission
API call fail's
Manually change the local network permission to allow in app settings
Still the API call fails even if we allow the local network permission
Conclusion : We are getting API error when re-install the app and if it is not allowed local network permission as well as when we allow the local network permission. Looks like caching issue.
Note: Even if uninstall and install multiple time and allow the local network permission from 2nd time onward API keeps on failing , but these scenario work perfectly fine on iOS 16 version and below. Even the existing app stopped working after updating iOS version to 17 and above.
Also we found alternatively when we uninstall the app and restart the device and install it back again it works fine for the first time as a fresh install.
Additionally : We are not calling local network permission explicitly, when the API call is happening this is native popup coming on iOS
Post not yet marked as solved
I have managed enterprise app. universal link is working as expected from the safari but when I tried the same functionality from the managed edge browser, edge does not detect the universal link.
Unable to open our managed app from the edge browser, although from the safari it's working as expected.
Unable to open our managed app from the outlook/Team. although from a non-manged app, we can open our managed app.
Does edge browser support universal link?
iOS version : 17.4.1
Post not yet marked as solved
I prepare an app to migrate from ObservableObject to Observable, from EnvironmentObject to Environment(MyClass.self) and so so forth.
That works OK, very simple.
But, that forces to run on macOS 14 or more recent.
So I would like to have it conditionally, such as:
if macOS 14 available
@Environment(ActiveConfiguration.self) var activeConfiguration: ActiveConfiguration
otherwise
@EnvironmentObject var activeConfiguration: ActiveConfiguration
The same for the class declaration:
if macOS 14 available
@Observable class ActiveConfiguration {
var config = Configuration()
}
otherwise
class ActiveConfiguration : ObservableObject {
@Published var config = Configuration()
}
Is there a way to achieve this (I understand it is not possible through extensions of Macros, as we can do for modifiers) ?
Could I define 2 classes for ActiveConfiguration, but then what about @Environment ?
Post not yet marked as solved
I got this SSML from w3. org. AVSpeechUtterance(ssmlRepresentation:) is not complying with the contour. It doesn't change hz.
<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
xml:lang="en-US">
<prosody contour="(0%,+20Hz) (10%,+30%) (40%,+10Hz)">
good morning
</prosody>
</speak>
override func viewDidLoad() {
super.viewDidLoad()
guard let localUtterance = AVSpeechUtterance(ssmlRepresentation: self.speechSML) else {
print("SML did not work.")
return
}
self.utterance = localUtterance
self.utterance.voice = self.voiceNoelle
}
self.synthesizer.speak(self.utterance)
Post not yet marked as solved
I have a question regarding the way iOS handles app permissions. Why doesn't Apple provide a feature to review the reasons an app gave for requesting certain permissions after the initial authorization?
There are instances where permissions were granted a long time ago or perhaps inadvertently, and now I can't recall why the app needed those permissions in the first place.
This feature could be helpful for users trying to understand and manage their privacy settings more effectively. Thank you for any insights or information
Post not yet marked as solved
I have been trying to enable in app purchase in sandbox environment but instead it keeps performing transactions in Xcode.
Also Apple says in its docs to set up sandbox tester account in Settings > App store without signing out from the non sandbox account, and says the sign in will appear as soon as we perform a transaction on device, but it does not worked for me
I have ensured and tried following things:
Created sand box tester id
Storekit configured , all the plans fetched
Has development team
Tried signing in Sandbox account
Checked whether I am testing in production or development build by if else (It was in development)
Tested on real device
Please help me get through this
Post not yet marked as solved
When users updated iOS to 16.6.1 or 17 app is stucked on splash screen.
Howdy, I have a ***** feeling that the answer to my question is "Y'all cain't do that!", but I figure I'll ask, anyway.
THE SAD STORY (GET YOUR HANKY):
We have an app that implements Sign [up|in] with Apple. It does it pretty well, with no password visible to the user, and a pretty smooth UX.
The issue is what happens when users bork their install. We don't think it will happen often, but want to be able to give the user the best way out, if possible.
With the regular (non-SiiA) method, they bonk on a "Forgot Password" button, and the app sends them a new password.
We can't do that, with SiiA. The password is stored in the app (in the keychain, so it's very persistent, and shared across devices), and it would a Very Bad Security Hole, to allow users to simply send a new password to the server (the other method generates a rando in the server), which is what would happen, with our method of handling the password. It would also be equally bad, if the server could simply send a new password to the user, directly to their device (the other method sends an email, based on the sign-in information on the server).
So the user needs to delete their keychain data completely, which we can easily do, but that does not deal with their SiiA stuff, stored on Apple's server.
This is what Apple tells us to do, to delete that.
WHICH BEGS THE QUESTION:
My question is: Is there a URL scheme that I can use to directly open that panel?
If so, it would allow us to create a screen that helps the user to do all the deletions (on the device, our server, and the Apple server).
Post not yet marked as solved
OS17.5 downloaded and now cannot call/receive/txt android phones. called carrier they checked their end found no problems. Also getting no Emails on phone.
Post not yet marked as solved
Hello, When Apple officially released iOS16 to users in Sept and Oct this year, our custom device that uses a nRF52832 Nordic based BLE chip would no longer hold the connection for more that 90 seconds before disconnecting.
Through other forums and documentation, we realized that with iOS16, Apple changed their requested Connection Intervals and we had to modify them on our product to solve.
[Previously Worked with iOS15 & below] Connection Interval for Product: Min 7.5ms - Max 15ms
Does not work with iOS16.0
Does work with iOS16.1 & iOS16.1.1
[Had to Change for iOS16.0, 16.0.1, 16.0.2, 16.0.3] Connection Interval for Product: Min 15ms - Max 30ms
However, with the release of iOS16.1 in November, our original connection interval parameters work again. Does anyone know what Apple changed for iOS16.1 for the connection intervals? Why does iOS16.1 accept 7.5-15ms intervals when iOS16.0 doesn't? There are no changes to the connection interval requirements on the Apple Design Guidelines as of the last revision Oct26th,2022.
Would really appreciate if anyone can share more info on the BLE change logs for iOS16.1.
Thanks for the help!
Post not yet marked as solved
Hi,
I have 2 questions:
the api for L2CAP is only for BLE or can also work for BR/EDR? (currently didn't manage to connect with BR/EDR)
I use https://github.com/bluekitchen/CBL2CAPChannel-Demo on iPhone with le_credit_based_flow_control_mode from blue kitchen and the throughput was very low. I also tried to use L2TEST from Bluez (which uses L2CAP BASIC MODE) but it failed to connect
Can anybody help how to increase throughput? The best result I received was 18 kilobyte/second.
Thank you
Post not yet marked as solved
Hi all,
I ran into an XCUITest issue where my tests fail randomly with the message that my app "has not loaded accessibility"
I run the tests in my scheme in random order and with every run, some other random test fails and a test that previously failed would later pass. So I know it's not my test as-such that is causing the problem.
There seems to be a 60s wait for accessibility to load, and I have not found any information how I could extend the timeout or convince accessibility to load faster.
I found some older posts, but no real solution was found there either.
This completely blocks my test execution since I cannot get a single run in where the tests all pass (and I only have 10 tests in that scheme). I ran the scheme against an iOs sim and against a real iOS device and I get the same random accessibility errors on either execution platform. I've tried iOS17.2 & 17.4 and get the same behavior.
Strange enough, the test actually keeps running (and technically passes all the checks and asserts in the actual test) after the accessibility error, but then XCTest marks it as failed because of the early accessibility error.
Any ideas what I could try or what the reason could be?
Thanks!
--
I'm using XCode Version 15.3 (15E204a) and test iOS17.2 and iOS17.4
Test Case '-[MyScheme.MyTestClass testMyFunction]' started.
t = 0.00s Start Test at 2024-04-19 01:32:09.225
t = 0.02s Set Up
t = 0.02s Open com.myCompany.myApp
t = 0.03s Launch com.myCompany.myApp
t = 0.25s Wait for accessibility to load
t = 60.30s Capturing diagnostic spindump
/Users/some/path/goes/here/MyTestCase.swift:120: error: -[MyScheme.MyTestClass testMyFunction] : Application 'com.myCompany.myApp' has not loaded accessibility
t = 60.34s Waiting 60.0s for "test" Button to exist
t = 61.38s Checking `Expect predicate `exists == 1` for object "test" Button`
t = 61.39s Checking existence of `"test" Button`
... more stuff happening in the test here ...
Post not yet marked as solved
Hello,
I'm working on developing an app for a client, whose core functionality includes the ability to share images. One of the specific features required is for users to be able to select a contact within our app and send an image directly to that contact's chat on WhatsApp, without going through the standard iOS Share Sheet.
As far as I understand, iOS offers a great integration for sharing content through activity view. However, due to specific project requirements, we are exploring the possibility of sending images directly to a third party app (in this case, WhatsApp) without using activity view, initiating the attempt to share programmatically.
Is it technically possible to implement this functionality under current iOS development guidelines?
If possible, could you please guide me on which APIs or methods would be suitable to perform this action directly?
Are there any special considerations or permissions we should take into account to implement this functionality without violating App Store regulations or third party terms of service such as WhatsApp?
Post not yet marked as solved
Summary:
Need help with Certificates, Identifiers and Profiles settings to allow two apps to use Sign in with Apple.
Background:
We have a web application (React, static JavaScript) that allows users to sign in with Apple, Google or Microsoft via OAuth/OIDC.
We are developing a mobile application using React Native and Expo.
Both the web application and the mobile application use the same backend (Django).
For the mobile application, we added Google and Microsoft sign in via the same web-based OAuth/OIDC flow. For Sign in with Apple, we are using the expo-apple-authentication package to get the required native sign in experience.
We have two active app identifiers:
org.terraso.terraso; web app; primary Apple ID
org.terraso.test.Terraso-LandPKS; mobile apple; Group with an existing primary App ID (selected (1), the web app)
We have one services identifier:
org.terraso.app; primary ID is web app (app identifier 1) above; URLs have been configured
We have one app group:
group.org.terraso (seems unused)
On our backend app, we have code:
https://github.com/techmatters/terraso-backend/blob/abc655e83eaca849e2bc24389946cc4f0bcd9d48/terraso_backend/apps/auth/providers.py#L84
and APPLE_CLIENT_ID is set to org.terraso.app (which matches the services identifier above
In my local development environment, I have tried a few different combinations of IDs attempting to get this to work using the iOS simulator:
(i) backend client id: org.terraso.app
mobile app bundle Id: org.terraso.test.Terraso-LandPKS
result: error: jwt.exceptions.InvalidAudienceError: Audience doesn't match
(ii) backend: org.terraso.app
mobile app: org.terraso.app
result: clicking "Sign In" in Apple ID dialog is a no-op (no errors from client or server)
(iii) backend: org.terraso.test.Terraso-LandPKS
mobile app: org.terraso.test.Terraso-LandPKS
result: works (but I can't use that in production, because the client ID is wrong)
How can I configure Sign in with Apple to allow both the web app, the mobile app (and possible additional mobile apps) to work with the same backend?
Do I need to us app groups? When do you use app groups vs "group with an existing primary apple id"?
Post not yet marked as solved
We have been using a Supervision Identity successfully over the last few years to allow us to Xcode debug on managed devices. Something has changed in the last few months which we are finding it hard to find a consistent solution to. We can't determine whether it's Xcode 15/iOS version related. Behaviour we see documented below
All Macs with the Supervision Identity installed can open the device in Apple Configurator without need for trust acknowledge on the device. Configurator can open and stream the device console.
All problematic devices are also registered as a development device with Apple.
We have hit and miss connectivity in Finder, On failure it indicates that the trust prompt on the device needs to be accepted. No trust prompt is displayed
Developer Mode on the device can't be enabled until we attempt to connect to Xcode
Devices that pair successfully in Xcode do so almost immediately. If a device pairs in Xcode it is also visible in the native macOS Console application
If a device fails to pair in Xcode we get a spinner and the message
"Xcode has already started pairing with 'iPhone-X'. Select Trust on iPhone-X to complete pairing".
The macOS console app reports
"The user has not responded to the pairing request on 'iPhone-X' In neither case is a trust prompt displayed on a device.
We are not able to Xcode pair any managed device running iOS 17.x. This includes devices that were successfully paired on iOS16.x then upgraded
iOS16.x devices that pair with one Mac successfully will not pair with another Mac with the same Supervision Identity installed.
The same behaviour is seen on Ventura and Sonoma Macs
Clearing Trusted Computers in IOS Developer Mode has no effect
None supervised iOS devices pair successfully on iOS 16 and 17
Has anyone else witnessed similar issues and found a work around ?