Hi,
I'm not sure why but when my fileURL is .jpg file and I drop the file from my app to Finder folders it make the dropped file as .jpeg
Is there a way to fix it?
[.onDrag {
if FileManager.default.fileExists(atPath: file.path) {
// Provide the file as an item for dragging
let fileURL = URL(fileURLWithPath: file.path)
let itemProvider = NSItemProvider(contentsOf: fileURL)
// Remove the file extension in the suggestedName
let baseNameWithoutExtension = fileURL.deletingPathExtension().lastPathComponent
itemProvider?.suggestedName = baseNameWithoutExtension
return itemProvider ?? NSItemProvider()
} else {
// Handle the case where the file no longer exists
print("File no longer exists at path: \(file.path)")
return NSItemProvider()
}
})
General
RSS for tagDive into the vast array of tools and services available to developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
After combing the forums and release nodes, here are some extra notes to help other developers using Apple-Hosted Background Assets. I don't promise I got this perfect, but it may help direct you.
AssetPack.Status is an OptionSet (not an enum!) - Critical API detail missing from guide
It's a bitmask where values can be combined
2⁰ (1) = available to download
2¹ (2) = update available
2² (4) = up to date
2⁶ (64) = downloaded
Example: status value 69 = 0b1000101 = available + up to date + downloaded
Use .contains() method to check specific flags
AssetPack.version property - Undocumented feature
Auto-assigned by App Store Connect for Apple-hosted packs
Increments with each upload of same asset pack ID
No file deduplication across asset packs
Same file in two packs = counts twice toward 200GB limit
Best practice: create separate pack for shared files
Shared namespace path requirements
Asset pack ID is NOT part of file path
Each file must have unique relative path across ALL app's asset packs
Example: Foo/10/239/414.png and Bar/10/239/414.png are distinct and won't collide
Additional url(for:) bugs beyond iOS 26.1 fix
iOS 26 Beta 5: "item with same name already exists" error
Workaround: Request URL for directory, then manually append filename
TestFlight-only availability - Major limitation not mentioned!
Apple-hosted packs currently ONLY work for internal testers on TestFlight or from App Store.
Won't work from Xcode until "later this year"
HTTP 400 errors expected for non-TestFlight installs
ba-serve port workaround
URL override port bug exists on multiple device types
Use ba-serve -p 443 instead of custom ports
Why as an IDE, many developers want to use the functions are not available, such as code formatting, if the function is not available, why not even a plug-in center, I have been using IDEA for code development, with Xcode development, feel very inconvenient to use
Hi,
I’m trying to free up space on my computer and have uninstalled Xcode. However, I noticed that many large files remain on the filesystem even after uninstalling it.
The largest remaining files (~33 GB) are iOS Simulator images located at:
/System/Volumes/Data/Library/Developer/CoreSimulator/Volumes
I attempted to delete them using root privileges, but it seems that these system files are mounted as read-only.
I’m reaching out to ask for guidance to ensure that these files do not contain anything important for macOS, and that it’s safe to remove them before getting in recovery mode.
Thank you very much for your advice!
Inside our app, after login (user side), getting grey screen on homepage.
Topic:
Developer Tools & Services
SubTopic:
General
In the availability and pricing section, we have reviewed the plans and we will be upgrading to 50 or 100 million calls/month but before we do, we have a couple questions.
Does the API have rate limit or throttling?
Do you have additional weather forecast endpoints like hail, radar, or pollen forecast? I see in this thread https://developer.apple.com/forums/thread/795642 that air quality is not available
Thanks
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!
Trying to publish my .NET MAUI app via the transporter after migrating it from Xamarin (using the App Store Connect feature directly within visual studio 2022 has never worked for me) and getting this error.
Validation failed (409)
Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 10.0. To support older versions of iOS, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file.
I have setup my maui app to use the asset catalog with the .pngs setup as bundled resources and I have also tried using the .svg method, both resulting in this error.
When I zip and unzip my .ipa file I can see the asset catalog as part of the payload (C:\Archives\AIM_MAUI\Payload\AIM_MAUI.app\AppIcon.appiconset)
Here is the contents of the Contents.json file
{
"images" : [
{
"filename" : "icon_40.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "icon_60.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"filename" : "icon_58.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "icon_87.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"filename" : "icon_80.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "icon_120.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"filename" : "icon_120.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"filename" : "icon_180.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"filename" : "icon_20.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"filename" : "icon_40.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "icon_29.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"filename" : "icon_58.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "icon_40.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"filename" : "icon_80.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "icon_76.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"filename" : "icon_152.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"filename" : "icon_167.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"filename" : "icon_1024.png",
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
I have tried manually using the actool tool from Xcode 16.4 to create the Assets.car file that is seeming to be missing and leading to this issue but even that can't compile the icons (or even a simple sample appicon.appiconset from Xcode with a singular .png added) and I am beginning to think there's an issue with the actool itself. I have tried reinstalling Xcode and every time the actool is just a partial download or a stub of the tool and not the real tool (actool size on my Mac is only 170kb and per my research it should be at least a couple mb)
Is there any workaround?
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?
I'm running the latest iOS 26 beta 5 on my iPad and iPhone. Whenever I run these betas, I always get the message below telling me an update is available (whenever I plug in my devices). I'm assuming this is because the update check is detecting that I have something other than the latest production release. Obviously, it makes no sense to ask me to update to a prod build when I'm running the dev beta. Is there a way to turn this message off? Or maybe Apple could handle this situation better? Or maybe it's just a bug and I'm the only one getting this message?
Topic:
Developer Tools & Services
SubTopic:
General
I am converting a project to expo and have created a new expo project. I have migrated most of the react-native code but need to add a native module. I added it using npx create-expo-module expo-settings --local
The name of the module DataRetrieval.
So far so good but I need a package SwiftCSV. I added it as a dependency to Pods and did a npx pod-install but when I try to import SwiftCSV as a subproject, it is not found. So I tried adding to the DataRetrieval podspec an s.dependency 'SwiftCSV'. I then get an error that there is a redefining of symbols. I am able to include this in a regular Swift file but not in the sub-module under expo. What am I missing about how to not only add a native module but to add dependencies and include it in my project?
Thanks,
Ray
Topic:
Developer Tools & Services
SubTopic:
General
Under macOS 26 and iPadOS, the Help menu in many cases has a menu item for "App Help". This item has the following icon:
I need to use this in my own app. I am unable to find this icon in SF Symbols 7 beta. I've scanned all of the icons under "What's New". I've searched for "help", "light", and "bulb" and this icon does not appear.
Does anyone know if it's even a new SF Symbol? Or does anyone know of a way to use this icon?
Hi! I'm new at developing apps. I built my app with Expo and it's working fine in simulator and my iPhone 14 as well.
But when I try to run the build in my iPhone with TestFlight it crashes instantly :/
This is part of the log:
Incident Identifier: B0ED8DEF-A0F0-4D0C-B3BB-3BB9CAB3242A
Distributor ID: com.apple.TestFlight
Hardware Model: iPhone14,7
Process: colbakapp [83024]
Path: /private/var/containers/Bundle/Application/44211687-140E-4DF3-A577-CB68CE6414B0/colbakapp.app/colbakapp
Identifier: com.colbak.colbakapp
Version: 1.0.0 (3)
AppStoreTools: 16F3
AppVariant: 1:iPhone14,7:18
Beta: YES
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.colbak.colbakapp [18141]
Date/Time: 2025-06-22 13:26:29.0142 -0400
Launch Time: 2025-06-22 13:26:28.6532 -0400
OS Version: iPhone OS 18.5 (22F76)
Release Type: User
Baseband Version: 3.60.02
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: SIGNAL 6 Abort trap: 6
Terminating Process: colbakapp [83024]
Triggered by Thread: 2
Thread 0:
0 libsystem_kernel.dylib 0x00000001f2e4fce4 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x00000001f2e5339c mach_msg2_internal + 76 (mach_msg.c:201)
2 libsystem_kernel.dylib 0x00000001f2e532b8 mach_msg_overwrite + 428 (mach_msg.c:0)
3 libsystem_kernel.dylib 0x00000001f2e53100 mach_msg + 24 (mach_msg.c:323)
4 CoreFoundation 0x00000001a1c42900 __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2637)
5 CoreFoundation 0x00000001a1c411f0 __CFRunLoopRun + 1208 (CFRunLoop.c:3021)
6 CoreFoundation 0x00000001a1c42c3c CFRunLoopRunSpecific + 572 (CFRunLoop.c:3434)
7 GraphicsServices 0x00000001eee21454 GSEventRunModal + 168 (GSEvent.c:2196)
8 UIKitCore 0x00000001a4655274 -[UIApplication _run] + 816 (UIApplication.m:3845)
9 UIKitCore 0x00000001a4620a28 UIApplicationMain + 336 (UIApplication.m:5540)
10 colbakapp 0x00000001046296b0 main + 64 (AppDelegate.swift:6)
11 dyld 0x00000001c8b17f08 start + 6040 (dyldMain.cpp:1450)
Thread 1:
0 libsystem_pthread.dylib 0x000000022c350aa4 start_wqthread + 0
Thread 2 Crashed:
0 libsystem_kernel.dylib 0x00000001f2e5a1dc __pthread_kill + 8
1 libsystem_pthread.dylib 0x000000022c357c60 pthread_kill + 268 (pthread.c:1721)
2 libsystem_c.dylib 0x00000001a9c782d0 abort + 124 (abort.c:122)
3 libc++abi.dylib 0x000000022c2815a0 abort_message + 132 (abort_message.cpp:78)
4 libc++abi.dylib 0x000000022c26fef4 demangling_terminate_handler() + 316 (cxa_default_handlers.cpp:72)
5 libobjc.A.dylib 0x000000019f1e7c08 _objc_terminate() + 172 (objc-exception.mm:499)
6 libc++abi.dylib 0x000000022c2808b4 std::__terminate(void ()()) + 16 (cxa_handlers.cpp:59)
7 libc++abi.dylib 0x000000022c2840d0 __cxa_rethrow + 188 (cxa_exception.cpp:658)
8 libobjc.A.dylib 0x000000019f1e5568 objc_exception_rethrow + 44 (objc-exception.mm:399)
9 colbakapp 0x00000001049f7b68 invocation function for block in facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const, NSInvocation*, NSMutableArray*) + 200 (RCTTurboModule.mm:444)
10 colbakapp 0x00000001049fc538 facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1::operator()() const + 36 (RCTTurboModule.mm:463)
11 colbakapp 0x00000001049fc538 decltype(std::declval<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1&>()()) std::__1::__invoke[abi:ne190102... + 36 (invoke.h:149)
12 colbakapp 0x00000001049fc538 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMu... + 36 (invoke.h:224)
13 colbakapp 0x00000001049fc538 std::__1::__function::__alloc_func<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1, std::__1::allocator<face... + 36 (function.h:171)
14 colbakapp 0x00000001049fc538 std::__1::__function::__func<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1, std::__1::allocator<facebook::... + 104 (function.h:313)
15 libdispatch.dylib 0x00000001a9bbcaac _dispatch_call_block_and_release + 32 (init.c:1575)
16 libdispatch.dylib 0x00000001a9bd6584 _dispatch_client_callout + 16 (client_callout.mm:85)
17 libdispatch.dylib 0x00000001a9bc52d0 _dispatch_lane_serial_drain + 740 (queue.c:3939)
18 libdispatch.dylib 0x00000001a9bc5dac _dispatch_lane_invoke + 388 (queue.c:4030)
19 libdispatch.dylib 0x00000001a9bd01dc _dispatch_root_queue_drain_deferred_wlh + 292 (queue.c:7198)
20 libdispatch.dylib 0x00000001a9bcfa60 _dispatch_workloop_worker_thread + 540 (queue.c:6792)
21 libsystem_pthread.dylib 0x000000022c350a0c _pthread_wqthread + 292 (pthread.c:2696)
22 libsystem_pthread.dylib 0x000000022c350aac start_wqthread + 8
Thread 3:
0 libsystem_pthread.dylib 0x000000022c350aa4 start_wqthread + 0
...
EOF
Topic:
Developer Tools & Services
SubTopic:
General
Merhaba,
iOS üzerinde bir sözleşme onay uygulaması geliştiriyorum. Kullanıcıların dijital ortamda sözleşmeleri okuyup onaylaması gerekiyor. Ancak hukuki geçerlilik konusunda bazı tereddütlerim vardı.
Bursa’da yaşayan biri olarak bu konuda bir avukata danışmam gerekti. Şans eseri https://www.avukatcanata.com ile karşılaştım ve hem bireysel hem ticari sözleşmeler konusunda gerçekten çok net açıklamalar sundular. Özellikle elektronik imza ve KVKK uyumu hakkında verdikleri bilgiler sayesinde projemi yasal zemine oturtabildim.
Eğer bu tarz uygulamalar geliştiriyorsanız, mutlaka bir hukukçu görüşü alın. Yanlış bir adım size veya kullanıcınıza ciddi sonuçlar doğurabilir.
Teşekkürler 🍏
I regularly see questions from folks who’ve run into problems with their third-party IDE on macOS. Specifically, the issue is that their IDE is invoking Apple’s command-line tools — things like clang and ld — and that’s failing in some way. This post collects my ideas on how to investigate, and potentially resolve, issues like this.
If you have any questions or comments, please put them in a new thread here on DevForums. Tag it appropriately so that I see it. Good tags include Compiler, Linker, LLVM, and Command Line Tools.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Investigating Third-Party IDE Integration Problems
Many third-party IDEs rely on Apple tools. For example, the IDE might run clang to compile C code or run ld to link object files. These IDEs typically don’t include the tools themselves. Rather, they rely on you to install Xcode or Apple’s Command Line Tools package. These are available at Apple > Developer > Downloads
Occasionally I see folks having problems with this. They most typically report that basic stuff, like compiling a simple C program, fails with some mysterious error. If you’re having such a problem, follow the steps below to investigate it.
IMPORTANT Some IDEs come with their own tools for compiling and linking. Such IDEs are not the focus of this post. If you have problems with an IDE like that, contact its vendor.
Select Your Tools
macOS has a concept of the current command-line tools. This can either point to the tools within Xcode or to an installed Command Line Tools package. To see which tools are currently selected, run xcode-select with the --print-path argument. This is what you’ll see if you have Xcode installed in the Applications folder:
% xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
Note All of the tools I discuss here are documented in man pages. If you’re not familiar with those, see Reading UNIX Manual Pages.
And this is what you’ll see with a Command Line Tools package selected.
% xcode-select --print-path
/Library/Developer/CommandLineTools
There are two common problems with this:
It points to something you’ve deleted.
It points to something unexpected.
Run the command above to see the current state. If necessary, change the state using the --switch option. For example:
% xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
% clang -v
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
…
% sudo xcode-select --switch ~/XcodeZone/Xcode-beta.app
% clang -v
Apple clang version 15.0.0 (clang-1500.0.38.1)
…
I have Xcode 14.3 in the Applications folder and thus clang runs Clang 14.0.3. I have Xcode 15.0b5 in ~/XcodeZone, so switching to that yields Clang 15.0.0.
It’s possible to run one specific command with different tools. See Select Your Tools Temporarily, below.
Run a Simple Test
A good diagnostic test is to use the selected command-line tools to compile a trivial test program. Consider this C [1] example:
% cat hello.c
#include <stdio.h>
int main(int argc, char ** argv) {
printf("Hello Cruel World!\n");
return 0;
}
% clang -o hello hello.c
% ./hello
Hello Cruel World!
IMPORTANT If possible, run this from Terminal rather than, say, over SSH.
You may need to expand this test program to exercise your specific case. For example, if your program is hitting an error when it tries to import the Core Foundation framework, add that import to your test program:
% cat hello.c
#include <stdio.h>
#include <CoreFoundation/CoreFoundation.h>
int main(int argc, char ** argv) {
printf("Hello Cruel World!\n");
return 0;
}
When you compile your test program, you might see one of these results:
Your test program compiles.
Your test program fails with a similar error.
Your test program fails with a different error.
I’ll explore each case in turn.
[1] For a C++ example, see C++ Issues, below.
If your test program compiles…
If your test program compiles from the shell, that proves that your basic command-line tools setup is fine. If the same program fails to compile in your IDE, there’s something IDE-specific going on here. I can’t help you with that. I recommend that you escalate the issue via the support channel for your IDE.
If your test program fails with a similar error…
If your test program fails with an error similar to the one you’re seeing in your IDE, there are two possibilities:
There’s a bug in your test program’s code.
There’s an environmental issue that’s affecting your command-line tools setup.
Don’t rule out the first possibility. I regularly see folks bump into problems like this, where it turns out to be a bug in their code. For a specific example, see C++ Issues, below.
Assuming, however, that your test program’s code is OK, it’s time to investigate environmental issues. See Vary Your Environment, below.
If your test program fails with a different error…
If your test program fails with a different error, look at the test program’s code to confirm that it’s correct, and that it accurately reflects the code you’re trying to run in your IDE.
Vary Your Environment
If your test program fails with the same error as you’re seeing in your IDE, and you are sure that the code is correct, it’s time to look for environmental factors. I typically do this with the steps described in the next sections, which are listed from most to least complex.
These steps only tell you where things are going wrong, not what is going wrong. However, that’s often enough to continue the investigation of your issue.
Vary Your Shell
Try running your commands in a different shell. macOS’s default shell is zsh. Try running your commands in bash instead:
% bash
…
bash-3.2$ clang -o hello hello.c
bash-3.2$ ./hello
Hello Cruel World!
Or if you’ve switched your shell to bash, try it in zsh.
Vary Your User Account
Some problems are caused by settings tied to your user account. To investigate whether that’s an issue here:
Use System Settings > Users & Groups to create a new user.
Log in as that user.
Run your test again.
Vary Your Mac
Some problems are system wide, so you need to test on a different Mac. The easiest way to do that is to set up a virtual machine (VM) and run your test there. Or, if you have a separate physical Mac, run your test on that.
Vary Your Site
If you’re working for an organisation, they may have installed software on your Mac that causes problems. If you have a Mac at home, try running your test there.
It’s also possible that your network is causing problems [1]. If you have a laptop, try taking it to a different location to see if that changes things.
[1] I rarely see this when building a simple test program, but it do see it with other stuff, like code signing.
C++ Issues
If you’re using C++, here’s a simple test you can try:
% cat hello.cpp
#include <iostream>
int main()
{
std::cout << "Hello Cruel World!\n";
}
% clang++ -o hello hello.cpp
% ./hello
Hello Cruel World!
A classic problem with C++ relates to name mangling. Consider this example:
% cat hello.c
#include <stdio.h>
#include "hello-core.h"
int main(int argc, char ** argv) {
HCSayHello();
return 0;
}
% cat hello-core.cpp
#include "hello-core.h"
#include <iostream>
extern void HCSayHello() {
std::cout << "Hello Cruel World!\n";
}
% cat hello-core.h
extern void HCSayHello();
% clang -c hello.c
% clang++ -c hello-core.cpp
% clang++ -o hello hello.o hello-core.o
Undefined symbols for architecture x86_64:
"_HCSayHello", referenced from:
_main in hello.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
The issue here is that C++ generates a mangled name for HCSayHello:
% nm hello-core.o | grep HCSayHello
0000000000000000 T __Z10HCSayHellov
whereas C uses the non-mangled name:
% nm hello.o | grep HCSayHello
U _HCSayHello
The fix is an appropriate application of extern "C":
% cat hello-core.h
extern "C" {
extern void HCSayHello();
};
Select Your Tools Temporarily
Sometimes you want to temporarily run a command from a particular tools package. To continue my earlier example, I currently have Xcode 14.3 installed in the Applications folder and Xcode 15.0b5 in ~/XcodeZone. Xcode 14.3 is the default but I can override that with the DEVELOPER_DIR environment variable:
% clang -v
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
…
% DEVELOPER_DIR=~/XcodeZone/Xcode-beta.app/Contents/Developer clang -v
Apple clang version 15.0.0 (clang-1500.0.38.1)
…
Revision History
2025-01-27 Remove the full width characters. These were a workaround for a forums platform bug that’s since been fixed. Made other minor editorial changes.
2023-07-31 First posted.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
xcselect
Compiler
Linker
Command Line Tools
I know Apple Engineers are busy, It’s great that non-Apple Engineers offer advice and assistance, but I kind of thought there’d be at least a reply from an Apple Engineer on MDM issues?
I have posted about apple watch mdm issues and have got none responses
i am trying to create key for apn file to use it in firebase fcm for my app but when click on download this error occured
Download Failed Auth Key can only be downloaded once. This auth key has already been downloaded.
what should i do ?
Topic:
Developer Tools & Services
SubTopic:
General
I'm adding state restoration to an old iOS app that does not use scenes or storyboards. Creating of view controllers is entirely programmatic.
I found the restorationArchiveTool for iOS which is very helpful. However it also refers to a StateRestorationDebugLogging mobileconfig profile that is supposed to turn on additional debug logging when restoring state.
https://download.developer.apple.com/ios/restorationarchivetool_for_ios_7/StateRestorationDebugLogging.mobileconfig
However I do not seem to be able to install it to either a simulator or my device. Does anyone know if this profile is still valid? If so, how do I install it?
Tom Aylesworth
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!
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!