Dive into the vast array of tools and services available to developers.

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

Device token for DeviceCheck API
Hi all, I'm trying to integrate Apple’s DeviceCheck API into my Flutter iOS app. I already have everything set up on the backend — the Apple private key, key ID, team ID, and DeviceCheck capability. The backend is generating and signing the JWT correctly and making requests to Apple. However, I’m currently stuck on the frontend (Flutter): 👉 How can I generate the device_token required by the DeviceCheck API (via DCDevice.generateToken) in a Flutter iOS app? I understand that DCDevice.generateToken() must be called from native Swift code. I previously attempted to use a MethodChannel to bridge this in Swift, but would prefer not to write or maintain native Swift code if possible. I've looked for a prebuilt Flutter package to handle this, but nothing exists or is up-to-date on pub.dev. Main Question: Is there any Apple-supported way to generate the device_token for DeviceCheck from a Flutter app without writing Swift code manually? If not, is DCDevice.generateToken() the only possible approach, and must I implement this via Swift and Flutter platform channels? Thanks!
0
0
147
Apr ’25
Issue with Custom Error Message on invalidate in CoreNFC APDU Tag Reader Session
Hi everyone, I'm working on an NFC-related app using CoreNFC with APDU commands to read and write tags. I’ve encountered an issue when trying to handle the scenario where the user cancels the NFC session. Here’s what’s happening: When a user cancels the NFC session manually (e.g., by tapping "Cancel"), I see an error log indicating tagReaderSession|userCancelled. However, when I explicitly call session.invalidate(errorMessage: "No NFC tag found") in my code to handle a scenario where no tag is detected, the session still shows the error as userCancelled instead of my custom error message. This behavior is confusing both in terms of debugging and for providing feedback to users, as I expect my custom message to appear instead of the generic "user cancelled" message. func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) { // Session becomes active } func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) { // Handle tag detection logic } func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) { print("Session invalidated with error: \(error.localizedDescription)") } func handleNoTagDetected(session: NFCTagReaderSession) { session.invalidate(errorMessage: "No NFC tag found") } I call handleNoTagDetected(session:) explicitly when no tag is detected, expecting the custom error message to show. However, the system still shows the cancellation error. Has anyone else experienced this behavior? Is this the intended behavior for CoreNFC, or am I missing something in my implementation? Any guidance would be appreciated. Thanks in advance!
0
0
410
Jan ’25
On-demand resource exporting?
I'm a newbie to on-demand resources and I feel like I'm missing something very obvious. I've successfully tagged and set up ODR in my Xcode project, but now I want to upload the assets to my own server so I can retrieve them from within the app, and I can't figure out how to export the files I need. I'm following the ODR Guide and I'm stuck at Step #4, after I've selected my archive in the Archives window it says to "Click the Export button", but this is what I see: As shown in the screenshot, there is no export button visible. I have tried different approaches, including distributing to appstore connect, and doing a local development release. The best I've been able to do is find a .assetpack folder inside the archive package through the finder, but uploading that, or the asset.car inside it, just gives me a "cannot parse response" error from the ODR loading code. I've verified I uploaded those to the correct URL. Can anyone walk me through how to save out the file(s) I need, in a form I can just upload to my server? Thanks, Pete
0
0
76
May ’25
Apple account credential failure
% eas build --profile development --platform ios To upgrade, run npm install -g eas-cli. Proceeding with outdated version. Found eas-cli in your project dependencies. It's recommended to use the "cli.version" field in eas.json to enforce the eas-cli version for your project. Learn more Found eas-cli in your project dependencies. It's recommended to use the "cli.version" field in eas.json to enforce the eas-cli version for your project. Learn more Found eas-cli in your project dependencies. It's recommended to use the "cli.version" field in eas.json to enforce the eas-cli version for your project. Learn more Found eas-cli in your project dependencies. It's recommended to use the "cli.version" field in eas.json to enforce the eas-cli version for your project. Learn more Loaded "env" configuration for the "development" profile: no environment variables specified. Learn more Specified value for "ios.bundleIdentifier" in app.json is ignored because an ios directory was detected in the project. EAS Build will use the value found in the native code. ✔ Using remote iOS credentials (Expo server) If you provide your Apple account credentials we will be able to generate all necessary build credentials and fully validate them. This is optional, but without Apple account access you will need to provide all the missing values manually and we can only run minimal validation on them. ✔ Do you want to log in to your Apple account? … yes › Log in to your Apple Developer account to continue ✔ Apple ID: … XXXXXX@YYYY › The password is only used to authenticate with Apple and never stored on EAS servers Learn more ✔ Password (for XXXXXX@YYYY: … ********************** › Saving Apple ID password to the local Keychain Learn more ✖ Logging in... Invalid username and password combination. Used ' XXXXX@YYYY' as the username. › Removed Apple ID password from the native Keychain ? Would you like to try again? › no / yes
0
1
544
Dec ’24
AR location errors on cellular + WiFi model iPad with device connected to Wi-Fi
I am developing an Augmented Reality (AR) navigation application for the iPad, utilizing the ARCL library to place Points of Interest (POIs) in the real world. The application's behavior varies significantly based on the device's networking configuration: Cellular Network (Expected Behavior): On an iPad with a cellular modem, when using the cellular network, all POIs are placed accurately with correct orientation. Wi-Fi Only (Expected Behavior): On a Wi-Fi-only model (no GPS chip), POI placement is inaccurate, confirming the need for an external GPS receiver for that hardware configuration. Cellular + Wi-Fi (Anomalous Behavior): The iPad is a cellular model (equipped with GNSS/GPS). The device is connected to a Wi-Fi network (enforced via an MDM profile, preventing the user from disabling Wi-Fi). When actively connected to this specific Wi-Fi network, the AR POIs consistently display with an incorrect orientation and placement, even though the device hardware has a dedicated GPS chip. The placement error strongly suggests that the device's determined location or heading is erroneous. It appears that the active Wi-Fi connection is somehow interfering with or overriding the high-accuracy GNSS/GPS data, leading to a flawed Core Location determination that negatively impacts the ARCL world tracking and anchor placement. Has anyone experienced a scenario where an active Wi-Fi connection on a cellular iPad model causes Core Location to prioritize less accurate location data (potentially Wi-Fi-based location services) over the device's built-in GNSS/GPS, resulting in severe orientation errors? We observed that on Apple map(native application) as well it is showing wrong location and orientation when it is connected to WiFi
0
0
64
1d
Trouble setting up watches to use TestFlight that are AWFK configured
I am developing a simple watch app and I use my personal watch for development with Xcode. Personal watch is series 10 gps only. I have two other watches that I want to use for testing the app, but not needing them to be connected to Xcode. The test watches have cellular option, and I need a cell plan per watch because the watches need to be standalone, not counting initial setup. To get the standalone cell plan the watches need to be configured using AWFK. Here is what I have tried/current issues. I switch between all three watches on my phone using the watch app. Originally tried to put test watches in developer mode, thinking I would connect to Xcode, developer mode is not available when watch is setup using AWFK. Pushed the watch app to apple connect, setup TestFlight group, added the test users and my phone user, accepted invites TestFlight is installed on my phone, I see the testflight setup for the watch app I set a test watch using watch app on the phone, run install for the test app from TestFlight on the phone, spinner moves for awhile then goes back to Install. I am not able to get the watch app installed on the test watches from the phone. Is what I am attempting to do supported? I haven't found much specific documentation on this. If I pair the test watches as regular watches, set them to developer mode, can I pair them again as AWFK and will developer mode survive the switch? Or is there something really simple that I'm overlooking? Appreciate any help that can be extended.
0
0
64
1d
UI tests blocked by “bash requesting screen access” popup in Mac OS 15
On macOS, I get a system popup when running UI tests in GitHub saying: “bash” is requesting to bypass the system private window picker and directly access your screen and audio. How can I prevent these login and screen access popups from appearing during automated UI tests? Is there an official setup or configuration for running IntelliJ UI tests in CI environments (macOS, Linux, Windows) to avoid such dialogs? My builds run in GitHub Actions VMs, so I can’t manually grant these permissions, and they block the tests.
0
0
64
Nov ’25
[Unreal Engine] File missing if packaged with command line
Hello! I am trying to automate iOS builds for my Unreal Engine game using Unreal Automation Tool, but I cannot produce a functionnal build with it, while packaging from XCode works perfectly. I have tracked down the issue to a missing file. I'm using the Firebase SDK that requires a GoogleService-Info.plist file. I have copied this file at the root of my project, as the Firebase documentation suggests. I have not taken any manual action to specify that this file needs to be included in the packaged app. The Firebase code checks the existence of this file using NSString* Path = [[NSBundle mainBundle] pathForResource: @“GoogleService-Info” ofType: @“plist”]; return Path != nil; If I package my app from XCode using Product -> Archive, this test returns true and the SDK is properly initialized. If I package my app using Unreal Engine's RunUAT.sh BuildCookRun, this test returns false and the SDK fails to initialize (and actually crashes upon trying). I have tried several Unreal Engine tricks to include my file, like setting it as a RuntimeDependecies in my projects Build.cs file. Which enables Unreal Engine code to find it, but not this direct call to NSBundle. I would like to know either how to tell Unreal Engine to include files at the root of the app bundle, or what XCode does to automatically include this file and is there a way to script it? I can provide both versions .xcarchive if needed. Thanks!
0
0
128
Sep ’25
C compilation problem
Hi Would someone happen to know how to solve the problem when installing Concorde.jl in julia: (@v1.11) pkg> add Concorde Resolving package versions... No Changes to ~/.julia/environments/v1.11/Project.toml No Changes to ~/.julia/environments/v1.11/Manifest.toml Precompiling project... ✗ Concorde 0 dependencies successfully precompiled in 2 seconds. 238 already precompiled. 1 dependency errored. For a report of the errors see julia> err. To retry use pkg> precompile (@v1.11) pkg> build Concorde Building Concorde → ~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/5d9f1b1a480235ffdd3c8ab8cab011aa9afe81af/build.log ERROR: Error building Concorde, showing the last 100 of log: x ./concorde/TOOLS/prob2tsp.c x ./concorde/TOOLS/showres.c ... x ./concorde/VERIFY/Makefile.in x ./concorde/README loading cache ./config.cache checking host system type... Invalid configuration darwin': machine darwin' not recognized checking for prespecified compiler options... no checking for gcc... (cached) gcc checking whether the C compiler (gcc -fPIC -O2 -g ) works... no configure: error: installation or configuration problem: C compiler cannot create executables. ERROR: LoadError: failed process: Process(bash -c "CFLAGS='-fPIC -O2 -g' ./configure --with-qsopt=/Users/poss/.julia/packages/Concorde/VRfqN/deps/qsopt --host=darwin", ProcessExited(1)) [1] It seems to be related to the M3 processor as I have the same error on another Mac with that processor, while the M2 I tried on could install the package properly. It is related to my C compiler, but the latter works, despite the error "checking whether the C compiler (gcc -fPIC -O2 -g ) works... no" poss@Mac-de-Michael ~ % gcc --version Apple clang version 16.0.0 (clang-1600.0.26.6) Target: arm64-apple-darwin24.1.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin poss@Mac-de-Michael ~ % gcc -fPIC -O2 -g test.c Best, Michaël.
0
0
219
Feb ’25
Apple Developer certificate Revoke
I have received email about your development certificate has been revoked, but couldn't identify who did that, due to this revocation one of our enterprise application stopped working. So posting here to seek some suggestion on following 1.) Identification of Revoking Party: Though I have already raised a support ticket to Apple still waiting for their reply. Is it possible for Apple to send logs or account activity logs that from which account or who did the revocation? 2.) How much does Apple take to reply to the support tickets. 3.) No one else received email in my development team. Is it because the certificate which I created is revoked that's the reason only I have received email? 4.) May I know what are the other scenarios that certificate can be revoked other than a human error? 5.) Is there a way for us to internally monitor activity within our developer account, such as identifying who has been actively logged in and updating certificates?
0
0
435
Jan ’25
Fairplay 4.x Certificate Revocation
I created a fairplay.cer file using the below commands : openssl genrsa -out private_key.pem 1024 openssl req -new -key private_key.pem -out request.csr Here, I manually entered the Country, Organization, etc. I was supposed to use the below commands to make the same : openssl genrsa -aes256 -out privatekey.pem 1024 opensslreq-new-sha1-keyprivatekey.pem-outcertreq.csr-subj "/CN=SubjectName /OU=OrganizationalUnit /O=Organization /C=US" Owing to this, I am unable to create a .p12 file through Keychain Access. I thus want to generate a new fairplay.cer file for Fairplay 4.x. I want to revoke the certificate in order to generate a new one (as it has a limit of 1 certificate for Fairplay) Requesting developer support from Apple. Have raised multiple requests over the past 4 days.
0
0
400
Dec ’24
Problem with simulator (Asked again)
I already asked this, although I want to ask again so it boots and gets more people; When I try to run my project on the simulator, it tells me there is a bug. It is not in the code I wrote, but I believe in the compiler. It would work perfectly, say the build succeeded, but the phone turns white and stops there. I don't know how to debunk it, what to do! Picture of what happens with the phone: Picture of the debugging area: Picture of my code: If I need to add more things, please let me know. Have a great day!
0
0
359
Dec ’24
Running tests on multiple simulators and local mock servers
Hello, I have a question about running tests on multiple simulators. Currently, my company has a WDIO+Appium test suite with XCUITEST driver that runs on a single simulator through a mockttp proxy (we are intercepting and mocking some of the responses from our APIs and pass through the rest). In order to route the traffic we are currently using 'networksetup -setsecurewebproxy '. Everything works as expected. With growing number of tests we'd like to scale number of simulators on a single host to 3-5. We have a working setup but the problem are system-wide proxy settings routing traffic from multiple simulators, which we can't distinguish by UDID or any other means, we know of. We can spin multiple mock servers on the same machine but we are struggling to find the way to route the traffic on a simulator basis. In the end, both options are viable: 1 mock server running for multiple simulators N number of mock servers for N number of simulators Has anyone had the same/similar problem? How to approach this? We are currently running on Sequoia OSX and platform version 18.6. Thanks!
0
0
31
1w
Xcode Cloud - Base Configuration Reference
Hello, I'm building this mobile app using Quasar - Capacitor on iOS. The app is working perfectly, but I'm encountering an issue whenever I push the rep I get this error: "Error Unable to open base configuration reference file '/Volumes/workspace/repository/ios/App/Pods/Target Support Files/Pods-App/Pods-App.release.xcconfig'. App.xcodeproj:1" I've tried every possible solution and made sure that everything is set perfectly. Can anyone please help me with that? Thanks in advance, appreciate you 🫶🏻
0
0
143
Oct ’25
Workbench Ad Tester not returning preview URLs
Apologies if this isn't tagged right but dev tools and services seemed the most appropriate since this is related to the workbench Ad Tester tool. I'm seeing a behavior where the preview link is not being generated. Specifically, I am seeing a POST request to the following URL consistently fail: https://iadworkbench.apple.com/adtester/api/v1/ads/previewLink?orgId=1127861 Variations/scenarios I have tried so far: All possible ad format choices on all possible devices All options for the placement type Both third party and uploaded creative sources Uploaded creative sources appear to be failing to upload as well A simple div with a "hello world" content fails as a third party creative source Multiple apple accounts I created a new account specifically to test if my primary apple ID was experiencing issues with this Multiple browsers I have tried multiple versions of Chrome/Firefox/Safari I tested with and without browser extensions to determine whether an extension was interfering or not Clearing session/local storage along with cookies I also created new profiles in browsers to verify that I was getting a fresh browser environment In all of these cases, the API request to generate a preview link is consistently failing with a 500 error code. It's worth noting that the web preview option works, but this isn't a truly accurate test environment and can't be solely relied on when testing ad content. I don't know exactly when this started happening as I have not used it in the last couple of weeks but I have used the workbench ad tester extensively in the past the same way I have been trying with my current test without issue. That coupled with the fact that the request for the preview link consistently fails in all of the test scenarios I've outlined above leads me to believe there is a problem with the API that is responsible for generating the preview links.
0
0
90
Apr ’25
On Demand Resources does not show an error
I am integrating On Demand Resources into my Unity game. The resources install without any problems if the internet connection is stable: all resources are installed. While testing various scenarios without an internet connection, I encountered the following problem: if I turn off the internet during installation, I don't get any error messages, but if I turn the internet back on, the download no longer continues (and I still don't get an error). If I reopen the application with a stable internet connection, the download will always be at 0%. Please tell me what I am doing wrong. #import "Foundation/Foundation.h" #if ENABLE_IOS_ON_DEMAND_RESOURCES #import "Foundation/NSBundle.h" #endif #include <string.h> struct CustomOnDemandResourcesRequestData; typedef void (*CustomOnDemandResourcesRequestCompleteHandler)(struct CustomOnDemandResourcesRequestData* handler, const char* error); #if ENABLE_IOS_ON_DEMAND_RESOURCES struct CustomOnDemandResourcesRequestData { NSBundleResourceRequest* request; }; extern "C" CustomOnDemandResourcesRequestData* CustomOnDemandResourcesCreateRequest(const char* const* tags, int tagCount, CustomOnDemandResourcesRequestCompleteHandler handler) { NSMutableArray* tagArray = [NSMutableArray array]; for (int i = 0; i < tagCount; i++) { const char* tag = tags[i]; if (tag != NULL) { [tagArray addObject:[NSString stringWithUTF8String:tag]]; } } NSSet* tagSet = [NSSet setWithArray:tagArray]; CustomOnDemandResourcesRequestData* data = new CustomOnDemandResourcesRequestData(); data->request = [[NSBundleResourceRequest alloc] initWithTags:tagSet]; [data->request beginAccessingResourcesWithCompletionHandler:^(NSError* error) { dispatch_async(dispatch_get_main_queue(), ^{ const char* errorMessage = error ? [[error localizedDescription] UTF8String] : NULL; handler(data, errorMessage); }); }]; return data; } extern "C" void CustomOnDemandResourcesRelease(CustomOnDemandResourcesRequestData* data) { [data->request endAccessingResources]; delete data; } extern "C" float CustomOnDemandResourcesGetProgress(CustomOnDemandResourcesRequestData* data) { return data->request.progress.fractionCompleted; } extern "C" float CustomOnDemandResourcesGetLoadingPriority(CustomOnDemandResourcesRequestData* data) { float priority = (float)data->request.loadingPriority; return priority; } extern "C" void CustomOnDemandResourcesSetLoadingPriority(CustomOnDemandResourcesRequestData* data, float priority) { if (priority < 0.0f) priority = 0.0f; if (priority > 1.0f) data->request.loadingPriority = NSBundleResourceRequestLoadingPriorityUrgent; else data->request.loadingPriority = (double)priority; } extern "C" const char* CustomOnDemandResourcesGetResourcePath(CustomOnDemandResourcesRequestData * data, const char* resource) { NSString* resourceStr = [NSString stringWithUTF8String: resource]; NSString* path = [[data->request bundle] pathForResource: resourceStr ofType: nil]; if (path == nil) { return NULL; // или другое значение по умолчанию } const char* result = strdup([path UTF8String]); // копируем строку return result; // в C# нужно будет освободить память } extern "C" void CustomOnDemandResourcesFreeString(const char* str) { free((void*)str); } #else // ENABLE_IOS_ON_DEMAND_RESOURCES struct CustomOnDemandResourcesRequestData { }; extern "C" CustomOnDemandResourcesRequestData* CustomOnDemandResourcesCreateRequest(const char* const* tags, int tagCount, CustomOnDemandResourcesRequestCompleteHandler handler) { CustomOnDemandResourcesRequestData* data = new CustomOnDemandResourcesRequestData(); if (handler) handler(handlerData, NULL); return data; } extern "C" void CustomOnDemandResourcesRelease(CustomOnDemandResourcesRequestData* data) { delete data; } extern "C" float CustomOnDemandResourcesGetProgress(CustomOnDemandResourcesRequestData* data) { return 0.0f; } extern "C" float CustomOnDemandResourcesGetLoadingPriority(CustomOnDemandResourcesRequestData* data) { return 0.0f; } extern "C" void CustomOnDemandResourcesSetLoadingPriority(CustomOnDemandResourcesRequestData* data, float priority) { } extern "C" const char* CustomOnDemandResourcesGetResourcePath(CustomOnDemandResourcesRequestData * data, const char* resource) { return NULL; } extern "C" void CustomOnDemandResourcesFreeString(const char* str) { } #endif // ENABLE_IOS_ON_DEMAND_RESOURCES
0
0
71
Oct ’25
Development and testing on different machines
Hi developers, I'm searching for a kind of way of working to develop my apps on a different machine than testing and final building. For development I have a MacBook Pro m4 and for testing I want to outsource this to a Mac mini m1. I was searching for a solution and also contacted the support, but the answer wasn't really helpful. Any ideas how to setup this configuration to automate this kind of tests? Thanks a lot!
0
0
340
Jan ’25