Hi all,
I’m running into a persistent linker error when building my Unity 6 project (IL2CPP, iOS target) that calls a Swift method via an Objective-C++ wrapper. Despite following all known steps, I keep getting:
Undefined symbols for architecture arm64:
"_placeGeoAnchor", referenced from:
_GeoAnchorTrigger_placeGeoAnchor in libGameAssembly.a
...
ld: symbol(s) not found for architecture arm64
I’m trying to place a persistent AR anchor at real-world GPS coordinates (so that the same asset can appear at the same location for a returning user). Since I’m targeting iOS, I can’t use Google’s geospatial anchors (but I sooo wish I could--please apple I beg of you stop being so selfish lol).
I've already done these things:
Swift file is added to Unity-iPhone target.
.mm and .h files are in Unity-iPhone target under Compile Sources.
Bridging header is set to Unity-iPhone-Bridging-Header.h.
Generated header name is correct (GeoTest-Swift.h).
Build Active Architecture Only set to No.
Function has attribute((visibility("default"))).
Unity project uses IL2CPP scripting backend.
Yet I'm still getting the same linker error — it appears Unity (via IL2CPP) references the function, but Xcode doesn't link it.
It’s something small that’s being missed with how IL2CPP links native symbols? Or maybe I need to explicitly include something in Link Binary With Libraries? I’ve verified symbol visibility and targets repeatedly.
I’ve built AR features in Unity before (for Quest), but this is my first time trying to bridge C# → Objective-C++ → Swift in this way for a geolocation-based AR anchor for an iphone.
I'm going crazy, I’ve been stuck on this for 12+ hours now, so any insight or nudge would be deeply appreciated.
SPECS:
Macbook Pro M4 Pro--Sequoia 15.4
Unity 6000.0.45f1
IPhone 11 iOS 18.4
Xcode 15
Dive into the vast array of tools, services, and support available to developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I've discovered what appears to be a system-level memory leak when pressing any key in Swift UI projects. This issue occurs even in a completely empty SwiftUI project with no custom code or event handlers.
When monitoring with Instruments' Leaks tool, I observe multiple memory leaks each time any key is pressed. These leaks consist primarily of:
NSExtraData objects (240 bytes each)
NSMenuItem objects (112 bytes each)
Other AppKit and Foundation objects
Has anyone else encountered this issue? How can I fix this behavior? While the leaks are small (about 5-6KB per keypress), they could potentially accumulate in applications where keyboard input is frequent.
Hey, Since I set up push notifications for my Flutter app following this tutorial https://documentation.onesignal.com/docs/flutter-sdk-setup, my Flutter app no longer builds for iOS in the CD pipeline. I get the following error:
[17:24:47]: ▸ ProcessException: Process exited abnormally with exit code -6:
[17:24:47]: ▸ Command line invocation:
[17:24:47]: ▸ /Applications/Xcode_15.4.app/Contents/Developer/usr/bin/xcodebuild -list
[17:24:47]: ▸ User defaults from command line:
[17:24:47]: ▸ IDEPackageSupportUseBuiltinSCM = YES
[17:24:47]: ▸ 2025-03-10 17:24:46.855 xcodebuild[13337:34491] [MT] DVTAssertions: ASSERTION FAILURE in DevToolsCore/Xcode3Core/LegacyProjects/Frameworks/DevToolsCore/DevToolsCore/ProjectModel/DataModel/References/SynchronizedGroups/PBXFileSystemSynchronizedAbstractGroup.m:28
[17:24:47]: ▸ Details: Assertion failed: IDEFileSystemSynchronizedGroupsAreEnabled()
[17:24:47]: ▸ Object: <PBXFileSystemSynchronizedRootGroup>
[17:24:47]: ▸ Method: +allocWithZone:
[17:24:47]: ▸ Thread: <_NSMainThread: 0x60000026c200>{number = 1, name = main}
[17:24:47]: ▸ Hints:
[17:24:47]: ▸ Backtrace:
[17:24:47]: ▸ 0 -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
[17:24:47]: ▸ 1 _DVTAssertionHandler (in DVTFoundation)
[17:24:47]: ▸ 2 _DVTAssertionFailureHandler (in DVTFoundation)
[17:24:47]: ▸ 3 _DVTAssertionWarningHandler (in DVTFoundation)
My pipeline looks like this:
name: iOS Build and Deploy to App Store with Custom Version
on:
workflow_dispatch:
inputs:
version:
description: 'Version number'
required: true
default: '1.0.0'
env:
FLUTTER_CHANNEL: "stable"
RUBY_VERSION: "3.2.2"
jobs:
build_ios:
name: Build iOS
runs-on: macos-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
working-directory: 'daytistics/ios'
- name: Clean up vendor
working-directory: 'daytistics/ios'
run: rm -rf vendor
- name: Install Bundler Gems
working-directory: 'daytistics/ios'
run: bundle install
- name: Run Flutter tasks and get pub packages
uses: subosito/flutter-action@v2.16.0
with:
flutter-version-file: 'daytistics/pubspec.yaml'
channel: ${{ env.FLUTTER_CHANNEL }}
cache: true
- name: Get Flutter Packages
working-directory: ./daytistics
run: flutter pub get
- name: Install Bundler Gems
working-directory: 'daytistics/ios'
run: |
bundle install
bundle exec pod repo update # Add this line
# Remove the "Reinstall CocoaPods" step entirely
- name: Pod Install
working-directory: 'daytistics/ios'
run: bundle exec pod install
- name: Clean Flutter build
working-directory: ./daytistics
run: flutter clean
- name: Create .env file
working-directory: ./daytistics
run: touch .env
- uses: maierj/fastlane-action@v3.1.0
with:
lane: 'release_app_store'
subdirectory: daytistics/ios
options: '{
"version_number": "${{ github.event.inputs.version }}",
"env_vars": ["SUPABASE_URL", "SUPABASE_ANON_KEY", "POSTHOG_API_KEY", "SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID", "SENTRY_DSN"]
}'
env:
ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}
ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}
ASC_KEY_P8_BASE64: ${{ secrets.ASC_KEY_P8_BASE64 }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
APP_BUNDLE_ID: ${{ secrets.APP_BUNDLE_ID }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SUPABASE_URL: ${{ secrets.SUPABASE_URL }}
SUPABASE_ANON_KEY: ${{ secrets.SUPABASE_ANON_KEY }}
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }}
SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID: ${{ secrets.SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
Everything works as expected in the simulator. However, I think that the problem isn't related to the pipeline. Instead I think it is related to the "Signing Capabilities" in X-Code:
https://i.sstatic.net/E0tSetZP.png
https://i.sstatic.net/oC1xG0A4.png
Thanks for your help!
If I install RealmSwift into an ios app using SPM, I have no problems.
However if I install it into an ios framework, then when building there is this error:
error: missing required modules: 'Realm.Private', 'Realm', 'Realm.Swift'
I have discovered that if I change the import statement from:
import RealmSwift
to
private import RealmSwift
then doing that makes this build error goes away (but doing that isn't a feasible workaround as I would like to publicly export classes stored in Realm from the framework).
There's no point in posting issues with Realm on their support board as its being deprecated and its tumble weeds on their forum.
But I would be very interested in hearing from the Apple expects explanation or speculation on:
why is importing the same framework via SPM into a framework xcode project resulting in different behavior then when importing it into an app?
why would changing import to private import make the build error go away?
TIA
My app has a Watch app companion, and a Widget.
are this settings correct to distribute these to TestFlight and Apple Store ?
Topic:
Developer Tools & Services
SubTopic:
Xcode
Hello Elf Team,
I sent the game a day ago and reached out for a quick review to meet my company's event deadline, but I am still waiting for the review to begin. I contacted via the contact form but have not received any response. Is there anyone from the forum who can help expedite this or provide advice on how to proceed?
Thank you!
Hi, I requested the https://itunes.apple.com/lookup?id=6482849843&country=us for getting the information of Goods puzzle sort challange , but the screenshotUrls in the response was empty. Is iTunes search API has issue with getting the screenshot urls ? Is there any plan to update it ?
Topic:
Developer Tools & Services
SubTopic:
General
I have an issue when i use external tester with a public link and emails.
Test fly is well installed but when i have to open the app, it just charge as seen in the screen.
I built an app in Python with Kivy and I'm trying to bring it over to iOS. I made an Xcode project out of it that builds successfully, but it fails to install in the simulator or onto a device. There's an error about symlink, but I'm not sure how to fix it. Any advice would be appreciated.
Domain: IXUserPresentableErrorDomain
Code: 1
Failure Reason: Please try again later.
Recovery Suggestion: invalid symlink at /Users/seanaldous/Library/Developer/CoreSimulator/Devices/96414FA1-78EF-4B59-979C-EAFB318C9653/data/Library/Caches/com.apple.mobile.installd.staging/temp.509ha0/extracted/sert.app/YourApp/.venv/bin/python3
User Info: {
DVTErrorCreationDateKey = "2025-04-08 15:09:36 +0000";
IDERunOperationFailingWorker = IDELaunchiPhoneSimulatorLauncher;
SimCallingSelector = "installApplication:withOptions:error:";
}
--
Unable to Install “sert”
Domain: IXUserPresentableErrorDomain
Code: 1
Failure Reason: Please try again later.
Recovery Suggestion: invalid symlink at /Users/seanaldous/Library/Developer/CoreSimulator/Devices/96414FA1-78EF-4B59-979C-EAFB318C9653/data/Library/Caches/com.apple.mobile.installd.staging/temp.509ha0/extracted/sert.app/YourApp/.venv/bin/python3
--
invalid symlink at /Users/seanaldous/Library/Developer/CoreSimulator/Devices/96414FA1-78EF-4B59-979C-EAFB318C9653/data/Library/Caches/com.apple.mobile.installd.staging/temp.509ha0/extracted/sert.app/YourApp/.venv/bin/python3
Domain: MIInstallerErrorDomain
Code: 70
User Info: {
FunctionName = "-[MIFileManager validateSymlinksInURLDoNotEscapeURL:error:]_block_invoke";
LegacyErrorString = InvalidSymlink;
SourceFileLine = 1161;
}
--
Event Metadata: com.apple.dt.IDERunOperationWorkerFinished : {
"device_identifier" = "96414FA1-78EF-4B59-979C-EAFB318C9653";
"device_model" = "iPhone17,3";
"device_osBuild" = "18.3.1 (22D8075)";
"device_platform" = "com.apple.platform.iphonesimulator";
"device_thinningType" = "iPhone17,3";
"dvt_coredevice_version" = "397.28";
"dvt_coresimulator_version" = "993.7";
"dvt_mobiledevice_version" = "1759.81.1";
"launchSession_schemeCommand" = Run;
"launchSession_state" = 1;
"launchSession_targetArch" = "x86_64";
"operation_duration_ms" = 32680;
"operation_errorCode" = 1;
"operation_errorDomain" = IXUserPresentableErrorDomain;
"operation_errorWorker" = IDELaunchiPhoneSimulatorLauncher;
"operation_name" = IDERunOperationWorkerGroup;
"param_debugger_attachToExtensions" = 0;
"param_debugger_attachToXPC" = 1;
"param_debugger_type" = 3;
"param_destination_isProxy" = 0;
"param_destination_platform" = "com.apple.platform.iphonesimulator";
"param_diag_113575882_enable" = 0;
"param_diag_MainThreadChecker_stopOnIssue" = 0;
"param_diag_MallocStackLogging_enableDuringAttach" = 0;
"param_diag_MallocStackLogging_enableForXPC" = 1;
"param_diag_allowLocationSimulation" = 1;
"param_diag_checker_tpc_enable" = 1;
"param_diag_gpu_frameCapture_enable" = 0;
"param_diag_gpu_shaderValidation_enable" = 0;
"param_diag_gpu_validation_enable" = 0;
"param_diag_guardMalloc_enable" = 0;
"param_diag_memoryGraphOnResourceException" = 0;
"param_diag_mtc_enable" = 1;
"param_diag_queueDebugging_enable" = 1;
"param_diag_runtimeProfile_generate" = 0;
"param_diag_sanitizer_asan_enable" = 0;
"param_diag_sanitizer_tsan_enable" = 0;
"param_diag_sanitizer_tsan_stopOnIssue" = 0;
"param_diag_sanitizer_ubsan_enable" = 0;
"param_diag_sanitizer_ubsan_stopOnIssue" = 0;
"param_diag_showNonLocalizedStrings" = 0;
"param_diag_viewDebugging_enabled" = 1;
"param_diag_viewDebugging_insertDylibOnLaunch" = 1;
"param_install_style" = 2;
"param_launcher_UID" = 2;
"param_launcher_allowDeviceSensorReplayData" = 0;
"param_launcher_kind" = 0;
"param_launcher_style" = 0;
"param_launcher_substyle" = 0;
"param_runnable_appExtensionHostRunMode" = 0;
"param_runnable_productType" = "com.apple.product-type.application";
"param_structuredConsoleMode" = 1;
"param_testing_launchedForTesting" = 0;
"param_testing_suppressSimulatorApp" = 0;
"param_testing_usingCLI" = 0;
"sdk_canonicalName" = "iphonesimulator18.2";
"sdk_osVersion" = "18.2";
"sdk_variant" = iphonesimulator;
}
--
System Information
macOS Version 15.3.2 (Build 24D81)
Xcode 16.2 (23507) (Build 16C5032a)
Timestamp: 2025-04-08T08:09:36-07:00
Topic:
Developer Tools & Services
SubTopic:
Xcode
I've been using XCode for development in C++ for several years. Suddenly, today it started having the following problem: Any time I try to compile my code, (even if I just finished successfully compiling it), it spends several minutes running CLangStatCache. This is according to the result of "Perform Action... Build with Timing Summary". Furthermore, if I first delete the ".../DerivedData/SDKStatCaches.noindex" folder, the problem goes away and it compiles immediately. However, it creates a new folder with a 32 Mb file in it, and then has the same problem the next time unless I delete that folder again. I do not want to have to delete this file every time I compile my code. Is there some way to turn this off? What happened that is different today from any other day in the last several years? I did just download and install the latest System software update, including XCode... Did that break something?
I want to install the latest Xcode development software on my Mac, but the xip files won't open. I keep getting the following message:
There was a problem while reading the contents of "Xcode_15 xip":
Data is corrupted
I have tried several unarchiver packages, and keep getting this message. I have also downloaded several other Xcode versions with the same result. Any idea what is going on here and/or how to fix it?
Topic:
Developer Tools & Services
SubTopic:
Xcode
I’m creating code that performs asynchronous processing using the Promises library (https://github.com/google/promises). In this context, when building the app in Xcode 15.4 and Xcode 16.2, the behavior differs between the two.
I’m using version 2.1.1 of the library. Also, I’ve tried using the latest version, 2.4.0, but the result was the same.
Has anyone encountered the same issue or know an effective solution?
Here's a simple code that reproduces this issue.
@IBAction func tapButton(_: UIButton) {
_ = getInfo()
}
func getInfo() -> Promise<Void> {
Promise(on: .global(qos: .background)) { fulfill, _ in
self.callApi()
.then { apiResult -> Promise<ApiResult> in
print("\(#function), first apiResult: \(apiResult)")
return self.callApi() // #1
}
.then { apiResult in
print("\(#function), second apiResult: \(apiResult)") // #2
fulfill(())
}
}
}
func callApi() -> Promise<ApiResult> {
Promise(on: .global(qos: .background)) { fulfill, _ in
print("\(#function), start")
self.wait(3)
.then { _ in
let apiResult = ApiResult(message: "success")
print("\(#function), end")
fulfill(apiResult)
}
}
}
struct ApiResult: Codable {
var message: String
enum CodingKeys: String, CodingKey {
case message
}
}
The Swift Language version in the build settings is 5.0.
The console output when running the above code is as follows:
When built with Xcode 15.4:
2025/03/21 10:10:46.248 callApi(), start
2025/03/21 10:10:46.248 wait 3.0 sec
2025/03/21 10:10:49.515 callApi(), end
2025/03/21 10:10:49.535 getDeviceInfo(), first apiResult: ApiResult(message: "success")
2025/03/21 10:10:49.535 callApi(), start
2025/03/21 10:10:49.536 wait 3.0 sec
2025/03/21 10:10:52.831 callApi(), end
2025/03/21 10:10:52.832 getDeviceInfo(), second apiResult: ApiResult(message: "success")
The process proceeds from #1 to #2 after completing the code comment in #1.
When built with Xcode 16.2:
2025/03/21 09:45:33.399 callApi(), start
2025/03/21 09:45:33.400 wait 3.0 sec
2025/03/21 09:45:36.648 callApi(), end
2025/03/21 09:45:36.666 getDeviceInfo(), first apiResult: ApiResult(message: "success")
2025/03/21 09:45:36.666 callApi(), start
2025/03/21 09:45:36.666 wait 3.0 sec
2025/03/21 09:45:36.677 getDeviceInfo(), second apiResult: Pending: ApiResult
2025/03/21 09:45:39.933 callApi(), end
The process does not wait for the code comment in #1 to finish and outputs the #2 print statement first.
Additionally, even with Xcode 16.2, when changing the #2 line to "print("(#function), second apiResult: (apiResult.message)")", the output becomes as follows. From this, it seems that referencing the ApiResult type, which is not a String, might have some effect on the behavior.
2025/03/21 10:05:42.129 callApi(), start
2025/03/21 10:05:42.131 wait 3.0 sec
2025/03/21 10:05:45.419 callApi(), end
2025/03/21 10:05:45.437 getDeviceInfo(), first apiResult: ApiResult(message: "success")
2025/03/21 10:05:45.437 callApi(), start
2025/03/21 10:05:45.437 wait 3.0 sec
2025/03/21 10:05:48.706 callApi(), end
2025/03/21 10:05:48.707 getDeviceInfo(), second apiResult: success
Thank you in advance
Topic:
Developer Tools & Services
SubTopic:
Xcode
I am a developer working on an iOS enterprise application. When I deployed the release version to my device, it crashes upon startup. It works fine in debug mode on my device.
The app is an upgraded version of Xamarin Form to .NET MAUI.
I have attached a crash report.
I would appreciate any help/insights on how to resolve.
--John
I am currently enrolled in the Apple Developer Program as an individual, but I would like to convert my account to an organization. I couldn’t find clear instructions on how to do this.
Has anyone gone through this process before? What steps do I need to take, and are there any specific requirements I should be aware of?
I’d really appreciate any guidance or advice. Thanks in advance!
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
We had a work card attached to our developer's account.
team ID 924RUYJZ34
dev ID 8771bf7b-31a9-4602-baae-02580fe5b6c4
Funds are debited from this card in other services, there are no problems with it, the amount in the account is sufficient.
Our membership subscription did not renew automatically. The applications are blocked. We can't renew our subscription, there's no Renew button anywhere.
There is no way to extend it on any device, web version, or anywhere else. We can't even cancel and re-arrange it, all the functions don't work.
Please help us, how can we renew our subscription?!
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Tags:
Subscriptions
Developer Program
My application targets iOS 15+. Attempting to build and run it on my iPhone SE (orphaned at iOS 15.6) results in "Failed to prepare the device for development."
I'm building with Xcode 15.2.
What is the expected procedure here?
I had submitted an app for mac for Notarization.
After i had submitted the app it stated, "Team is not yet configured for Notarization".
After few days i noticed that i am unable to access the features of my membership.
Although i had an active membership.
I have been trying to contact support from Feb 11 but no reply.
Kindly help !
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Hey, I am using the terminal a lot. Since I updated to Sonoma (so, really a long time ago). My prompt or more precise the hostname always changes between three states. Sometimes it is username@Macbook-Pro-of-XXX, sometimes username@MacbookPro and sometimes it's username@xxxxxxxx-yyyy-zzzz-aaaa-bbbbbbbbbbbb. The latter is probably my UUID. Does anyone have a clue why this randomly changes?
I have a swift project with a Watch companion.
Since the update of Xcode in 16.3 version after updating MAcOs , Watch OS, iOS to the latest version . It is quasi impossible for me to make Xcode work with my series 10 Watch. I have a lot of alert box, messages in the "device & Simulator" tool like this
Previous preparation error: A connection to this device could not be established.; Timed out while attempting to establish tunnel using negotiated network parameters.
And many message telling me that Xcode is preparing the Watch , then that it has lost the connexion.
I have to wait some minutes after EACH run of the App to test it again. This is very annoying .
Some of the alerts I have :
And the best to know , is that I can run the APP outside of Xcode , it works, Connects to the iPhone, fetch data and so. the iPhone sees the Watch without and problem.
Reboots can solve for a few minutes the problem. But that is not a solution.
Topic:
Developer Tools & Services
SubTopic:
Xcode
I'm attempting to create a proof of concept of a static library, distributed as an XCFramework, which has two local XCFramework dependencies.
The reason for this is because I'm working to provide a single statically linked library to a customer, instead of providing them with the static library plus the two dependencies.
The Issue
With a fairly simple example project, I'm not able to access any code from the static library without the complier throwing a "No such module" error and saying that it cannot find one of the dependent modules.
Project Layout
I have an example project that has some example targets with basic example code.
Example Project on Github
Target: FrameworkA
Mach-0 Type: Dynamic
Build Mergable Library: Yes
Skip Install: No
Build Libraries For Distribution: Yes
Target: FrameworkB
Mach-0 Type: Dynamic
Build Mergable Library: Yes
Skip Install: No
Build Libraries For Distribution: Yes
XCFrameworks are being generated from these two targets using Apple's recommendations. I've verified that the mergable metadata is present in both framework's Info.plist files.
Each exposes a single struct which will return an example String.
Finally I have my SDK target:
Target: ExampleKit
Mach-0 Type: Static
Build Mergable Library: No
Create Merged Binary: Manual
Skip Install: No
Build Libraries For Distribution: Yes
The two .xcframework files are in the Target's folder structure as well. The "Link Binary With Libraries" build phase includes them and they're Required.
Inside of the ExampleKit target, I have a single public struct which has two static properties which return the example strings from FrameworkA and FrameworkB.
I then have another script which generates an XCFramework from this target.
Expectations
Based on Apple's documentation and the "Meet Mergable Libraries" WWDC session I would expect that I could make a simple iOS app, link the ExampleKit.xcframework, import ExampleKit inside of a file, and be able to access the single public struct present in ExampleKit. Unfortunately, all I get is "No such module FrameworkA".
I would expect that FrameworkA and FrameworkB would have been merged into ExampleKit? I'm really unsure of where to go from here in debugging this. And more importantly, is this even a possible thing to do?