Post not yet marked as solved
Hello there, I'm struggling with the following issue since Xcode 15 arrived and haven't been able to solve it.
I have a go library c-archive library which I'm using in a iOS app and build were OK until Sonoma updated came last year. I updated all my go libraries and go runtime to latest version and still facing issues:
my make script as follows:
ios-arm64:
CGO_ENABLED=1
GOOS=ios
GOARCH=arm64
SDK=iphoneos
SDK_PATH=xcrun --sdk iphoneos --show-sdk-path
CARCH="arm64"
CC=$(PWD)/clangwrap.sh
CGO_CFLAGS="-fembed-bitcode"
go build -v -buildmode=c-archive -ldflags="-s -w" -gcflags=all="-l -B" -tags ios -o $(IOS_OUT)/btfs.a .
If there is anything else you need I can share more details. Thanks!
I have an app that links to two dynamic frameworks which both link to the same static library, as follows:
|--App
|--DynamicFramework1
|--StaticLibrary
|--DynamicFramework2
|--StaticLibrary <- the same library that DynamicFramework1 links to
The static library's symbols are included in each framework's binary because of the way dynamic frameworks are built by default. The app therefore finds duplicates of the static library's symbols at runtime.
Is it possible to link a dynamic framework to a static library (and to still be able to call on the classes and methods of the static library within the dynamic framework) in a manner that symbols from the static library are excluded from the dynamic framework's binary?
My hope in doing this is that the binary of each of the two dynamic frameworks will exclude the symbols of the static library. I will then make it the responsibility of the app to link to the static library directly.
Notes
I have tried linking my dynamic framework with the static library in two different ways thus far: (1) I added the static library to my framework's "Link Binary with Libraries" Build Phase; and (2) I referenced the static library in my framework's "Other Linker Flags" Build Setting. Both result in the static library's symbols being included in the framework's binary.
I am aware that changing a framework target's "Mach-O Type" from "Dynamic Framework" to "Static Library" will build the framework's binary without the symbols of the static libraries that it links to. I want to keep my frameworks as dynamic frameworks so that (1) I can benefit from how Xcode bundles together resources (strings, storyboards etc) automatically for dynamic frameworks; and (2) users of my framework can benefit from Mergeable Libraries in the near future.
I am aware that I can solve this problem by changing the static library to a dynamic framework. I want to avoid this as much as possible since the static library is from a third-party. I want to avoid forking the static library's source code and messing with its build scripts if I can.
I have developed a framework for my customer, thats a swift dyanmic framework. For code modularization i have divided this framework features in to multiple static libraries as shown in the diagram below.
Currently we have on main swift dynamnic framework and it contains 2 static libraries too. Also the first static library here in turn nested with another static library,
Key points to note here is
My static libraries contains other third party iOS frameworks
My static libraries using CoccoaPods as the dependency for Alarmofire at the moment.
My questios are
Is there any problem in the current architecture , because i heard nested libraries are not supported in iOS . but since we dont have frameworks nested here, all of our second level frameworks are static libraries only.
What are link/libary search path guidance we needed to take care to make a successful build.
Post not yet marked as solved
Are mergeable libraries compatible with digital signatures and privacy manifests? If so, what happens to the privacy manifests from each merged library? Do they get merged?
Post not yet marked as solved
In Xcode 15 beta 6, building any Mac Catalyst project will encounter the following Linker warning.
ld: warning: building for 'macCatalyst', but linking in dylib (/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa.tbd) built for 'macOS'
Post not yet marked as solved
I am new to Xcode and trying to learn and having issues with errors it seems. I believe the problem is specifically with my code not being able to be displayed on the example iPhone on the right hand side of the screen. Here are the 2 errors I receive below. The codes at the very bottom are red on my screen so I am guessing those are what is most important out of all of this.
Thanks and please let me know if I can answer any additional questions regarding this.
Ld /Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Products/Debug-iphonesimulator/Playground.app/Playground normal (in target 'Playground' from project 'Playground')
cd /Users/tward/Desktop/Playground.swiftpm
/Users/tward/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -reproducible -target x86_64-apple-ios15.2-simulator -isysroot /Users/tward/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk -L/Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Intermediates.noindex/EagerLinkingTBDs/Debug-iphonesimulator -L/Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Products/Debug-iphonesimulator -L/Users/tward/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/lib -F/Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Intermediates.noindex/EagerLinkingTBDs/Debug-iphonesimulator -F/Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Products/Debug-iphonesimulator -F/Users/tward/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -iframework /Users/tward/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -iframework /Users/tward/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk/Developer/Library/Frameworks -filelist /Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Intermediates.noindex/Playground.build/Debug-iphonesimulator/Playground.build/Objects-normal/x86_64/Playground.LinkFileList -Xlinker -rpath -Xlinker @executable_path/../lib -dead_strip -Xlinker -object_path_lto -Xlinker /Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Intermediates.noindex/Playground.build/Debug-iphonesimulator/Playground.build/Objects-normal/x86_64/Playground_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-link-runtime -L/Users/tward/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Intermediates.noindex/Playground.build/Debug-iphonesimulator/Playground.build/Objects-normal/x86_64/Playground.swiftmodule -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Intermediates.noindex/Playground.build/Debug-iphonesimulator/Playground.build/Playground.app-Simulated.xcent -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __ents_der -Xlinker /Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Intermediates.noindex/Playground.build/Debug-iphonesimulator/Playground.build/Playground.app-Simulated.xcent.der -Xlinker -no_adhoc_codesign -Xlinker -dependency_info -Xlinker /Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Intermediates.noindex/Playground.build/Debug-iphonesimulator/Playground.build/Objects-normal/x86_64/Playground_dependency_info.dat -o /Users/tward/Library/Developer/Xcode/DerivedData/Playground-aoepzfpfzcxxqggglpllgxkoywsr/Build/Intermediates.noindex/Previews/Playground/Products/Debug-iphonesimulator/Playground.app/Playground
ld: entry point (_main) undefined. for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Post not yet marked as solved
Hello,
I am developing a tool in python or nodejs to intercept flows between two applications (MITM).
I want to use the FRIDA library, but when I use it I get the following error: Error: module not found at "/usr/lib/libSystem.B.dylib".
Indeed, the library is not present in the folder. I tried to get help directly from FRIDA but I couldn't find any help and on the current forum I did see some posts talking about this problem but I couldn't solve it.
Do you have an idea of how to solve this problem.
Thank you.
Ps: I'm new to the APPLE ecosystem (Mac mini - Apple M1)
Post not yet marked as solved
gcc -I/opt/homebrew/opt/postgresql@15/include -I/opt/homebrew/Cellar/openssl@3/3.2.1/include -fPIC -c -o pkg/publisher/pg/clibpq/copy.o pkg/publisher/pg/clibpq/copy.c
gcc -shared -L/opt/homebrew/opt/postgresql@15/lib -lpq -o pkg/publisher/pg/clibpq/libcopy.so pkg/publisher/pg/clibpq/copy.o
ld: warning: ignoring file '/opt/homebrew/Cellar/postgresql@15/15.6_1/lib/libpq.5.15.dylib': found architecture 'arm64', required architecture 'x86_64'
ld: Undefined symbols:
_PQclear, referenced from:
_copy_table_data in copy.o
_copy_table_data in copy.o
_copy_table_data in copy.o
_start_copy_origin_tx in copy.o
_start_copy_origin_tx in copy.o
_start_copy_target_tx in copy.o
_finish_copy_origin_tx in copy.o
...
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have a shell script that turns a framework into a plain dylib and updates some dependent library paths using install_name_tool. It works, but if the framework was signed, I get warnings like:
install_name_tool: warning: changes being made to the file will invalidate the code signature in: [redacted].dylib (for architecture x86_64)
I thought I could get rid of the warning by adding
codesign --remove-signature dylib-path
to the script before using install_name_tool, but then I get errors like
install_name_tool: fatal error: file not in an order that can be processed (link edit information does not fill the __LINKEDIT segment): [redacted].dylib (for architecture x86_64)
Is there a way to fix this?
Post not yet marked as solved
My app has a pod dependency (xcframework), BUILD_LIBRARY_FOR_DISTRIBUTION was changed to YES when generating the xcframework.
After adding the pod dependency in the Podfile the app crash:
dyld[21474]: Symbol not found: _$s10Foundation13URLComponentsV3urlAA3URLVSgvg
Referenced from: /Users/user_repo/Library/Developer/CoreSimulator/Devices/.../data/Containers/Bundle/Application/.../MyApp.app/Frameworks/PodDependency.framework/PodDependency
Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 15.5.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Foundation.framework/Foundation
The app is build on XCode15.2 and don't crash on iOS16+. Cocoapods version: 1.15.2
I already tried to set BUILD_LIBRARY_FOR_DISTRIBUTION to YES for the specific pod in the Podfile of my project.
environment: Apple clang version 14.0.3 (clang-1403.0.22.14.1)
I am trying to override c++ symbols at linking time for the purpose of inserting measurement code into an existing library.
Perhaps typical linkers would search for symbols in specifing order of library and adopt the first hit.
Xcode's ld apparently does this in units of a object file.
If you create one object file to override one function and link it first, but call another function in the same object file contained in the original library, that one will be adopted. As a result, you cannot override function.
To override a function, the function to be overridden must be moved to a new cpp file and separated from the object file.
Here is a sample program to test this.
https://onedrive.live.com/redir?resid=DD46698E2D493F32!395&authkey=!AJqfiva7CXIDI_Y&e=OaFlSr
As you can see in main.cpp, func() and bar() are called from main().
func() and bar() are implemented in func.cpp and bar.cpp, respectively.
They are linked to libTest.lib.
To override func(), link libTest2.lib implementing func2() in func2.cpp, before libTest.lib.
If you run make and look at the code with objdump -d a.out, you can see the override.
Because the content of func2() is return i+1, __Z4funci contains leal 1(%rdi), %eax.
Then, build with make clean and make CONCAT=1, func() and bar() are concatenated into one cpp file and compiled.
The generated a.out is checked in the same way, you will see movl %edi, %eax at same position which means return i; which is the content of func().
This sample is small in scale, but in a larger project, it can be quite a hassle to isolate the functions you want to override.
Is there any easier way to override the function?
Since the original function name cannot be changed, it is our policy not to use -alias symbol_name alternate_symbol_name.
Thanks.
I am currently experiencing a problem with Xcode where I am unable to view the verbose output of the linker, despite having set the -v flag in my build settings. When attempting to build my project, I encounter a "Linker command failed with exit code 1" error, along with a message about "Undefined symbols". The specific issues that arise are:
After setting the -v flag for more verbose logging, the expected detailed output is not visible in the Report Navigator within Xcode.
When I right-click on the error in the Issue Navigator and select "Reveal in Log," there is no response from Xcode and the log does not appear.
Troubleshooting steps I've taken so far:
Ensured that the -v flag is correctly set in the "Other Linker Flags" section of my build settings.
Tried cleaning the build folder and deleting Derived Data.
Attempted to manually expand the error in the Report Navigator to access the detailed logs without success.
Restarted Xcode
Environment:
Xcode version: 15.2 (15C500b)
Target device: iPhone 15 Pro (17.2)
macOS version: Sonoma 14.0 (23A344)
I'm looking for assistance in resolving this issue so that I can access the detailed linker logs and address the "Undefined symbols" error. Any guidance on how to enable verbose output for the linker or alternative methods to retrieve this information would be greatly appreciated.
Post not yet marked as solved
I am using
Xcode version 13.0 beta
Unity Version 2022.3.8.f1
After solving the semantic errors I am now getting 100 different errors
Link UnityFramework (arm64)
Showing All Messages
Undefined symbol: _objc_msgSend$onDisconnectUpdateChildValues:withCompletionBlock:
Undefined symbol: _objc_msgSend$onDisconnectSetValue:andPriority:withCompletionBlock:
Undefined symbol: _objc_msgSend$onDisconnectSetValue:withCompletionBlock:
Undefined symbol: _objc_msgSend$cancelDisconnectOperationsWithCompletionBlock:
Undefined symbol: _objc_msgSend$updateChildValues:withCompletionBlock:
Undefined symbol: _objc_msgSend$setValue:andPriority:withCompletionBlock:
Undefined symbol: _objc_msgSend$setValue:withCompletionBlock:
Undefined symbol: _objc_msgSend$abort
Undefined symbol: _objc_msgSend$runTransactionBlock:andCompletionBlock:
Undefined symbol: _objc_msgSend$childByAutoId
Undefined symbol: _objc_msgSend$child:
Undefined symbol: _objc_msgSend$parent
Undefined symbol: _objc_msgSend$hasChild:
Undefined symbol: _objc_msgSend$hasChildren
Undefined symbol: _objc_msgSend$setValue:
Undefined symbol: _objc_msgSend$hasChildAtPath:
Undefined symbol: _objc_msgSend$key
Undefined symbol: _objc_msgSend$children
Undefined symbol: _objc_msgSend$childDataByAppendingPath:
Undefined symbol: OBJC_CLASS$_FIRDatabase
Undefined symbol: _objc_msgSend$setLoggingEnabled:
Undefined symbol: _objc_msgSend$setPersistenceEnabled:
Undefined symbol: _objc_msgSend$purgeOutstandingWrites
Undefined symbol: _objc_msgSend$goOnline
Undefined symbol: _objc_msgSend$goOffline
Undefined symbol: _objc_msgSend$databaseForApp:
Undefined symbol: _objc_msgSend$queryLimitedToLast:
Undefined symbol: _objc_msgSend$queryEqualToValue:
Undefined symbol: _objc_msgSend$queryEndingAtValue:childKey:
Undefined symbol: _objc_msgSend$queryEndingAtValue:
Undefined symbol: _objc_msgSend$queryOrderedByValue
Undefined symbol: _objc_msgSend$queryOrderedByKey
Undefined symbol: _objc_msgSend$keepSynced:
Undefined symbol: _objc_msgSend$childListener
Undefined symbol: _objc_msgSend$observeEventType:withBlock:withCancelBlock:
Undefined symbol: _objc_msgSend$addObserverHandle:
Undefined symbol: _objc_msgSend$databaseForApp:URL:
Undefined symbol: _objc_msgSend$databaseInternal
Undefined symbol: _objc_msgSend$valueListener
Undefined symbol: _objc_msgSend$initWithDatabase:andQuery:andValueListener:andChildListener:
Undefined symbol: _objc_msgSend$setValueListener:
Undefined symbol: _objc_msgSend$removeAllObservers
Undefined symbol: _objc_msgSend$state
Undefined symbol: _objc_msgSend$bannerClient
Undefined symbol: _objc_msgSend$removeAllObjects
Undefined symbol: _objc_msgSend$lock
Undefined symbol: _objc_msgSend$unlock
Undefined symbol: _objc_msgSend$initWithFormat:
Undefined symbol: _objc_msgSend$setValue:forKey:
Undefined symbol: _objc_msgSend$numberWithBool:
Undefined symbol: _objc_msgSend$testDeviceIdentifiers
Undefined symbol: _objc_msgSend$initWithCapacity:
Undefined symbol: _objc_msgSend$bytes
Undefined symbol: _objc_msgSend$setAppEventCallback:
Undefined symbol: _objc_msgSend$objCType
Undefined symbol: _objc_msgSend$initWithBannerClientReference:adUnitID:adSize:adPosition:
Undefined symbol: _objc_msgSend$initWithGoogleAppID:GCMSenderID:
Undefined symbol: _objc_msgSend$isAnonymous
Undefined symbol: _objc_msgSend$presentFromRootViewController:userDidEarnRewardHandler:
Undefined symbol: _objc_msgSend$metadata
Undefined symbol: _objc_msgSend$creationDate
Undefined symbol: _objc_msgSend$willPresentCallback
Undefined symbol: _objc_msgSend$isEmailVerified
Undefined symbol: _objc_msgSend$setPaidEventCallback:
Undefined symbol: _objc_msgSend$timeIntervalSince1970
Undefined symbol: OBJC_CLASS$_GADRequest
Undefined symbol: _objc_msgSend$reloadWithCompletion:
Undefined symbol: _objc_msgSend$profileChangeRequest
Undefined symbol: _objc_msgSend$setDisplayName:
Undefined symbol: _objc_msgSend$absoluteString
Undefined symbol: _objc_msgSend$presentFromViewController:completionHandler:
Undefined symbol: _objc_msgSend$sendEmailVerificationWithCompletion:
Undefined symbol: _objc_msgSend$objectAtIndexedSubscript:
Undefined symbol: _objc_msgSend$URLWithString:
Undefined symbol: _objc_msgSend$phoneNumber
Undefined symbol: _objc_msgSend$photoURL
Undefined symbol: _objc_msgSend$displayName
Undefined symbol: _objc_msgSend$removeBannerView
Undefined symbol: _objc_msgSend$setProjectID:
Undefined symbol: _objc_msgSend$email
Undefined symbol: _objc_msgSend$stringByAddingPercentEscapesUsingEncoding:
Undefined symbol: _objc_msgSend$providerData
Undefined symbol: _objc_msgSend$getIDTokenForcingRefresh:completion:
Undefined symbol: OBJC_CLASS$_FIRAuth
Undefined symbol: _objc_msgSend$adDidDismissFullScreenContentCallback
Undefined symbol: _objc_msgSend$signOut:
Undefined symbol: _objc_msgSend$signInWithEmail:password:completion:
Undefined symbol: _objc_msgSend$tagForChildDirectedTreatment
Undefined symbol: _objc_msgSend$signInWithCredential:completion:
Undefined symbol: _objc_msgSend$adPosition
Undefined symbol: _objc_msgSend$setAPIKey:
Undefined symbol: _objc_msgSend$signInWithCustomToken:completion:
Undefined symbol: _objc_msgSend$initWithDomain:code:userInfo:
Undefined symbol: _objc_msgSend$UTF8String
Undefined symbol: _objc_msgSend$providerWithProviderID:auth:
Undefined symbol: _objc_msgSend$user
Undefined symbol: _objc_msgSend$interstitialAdGAM
Undefined symbol: _objc_msgSend$linkWithCredential:completion:
Undefined symbol: _objc_msgSend$providerID
Undefined symbol: _objc_msgSend$username
You can check the image.
Post not yet marked as solved
Recently Apple deprecated the NXFindBestFatArch, used to find the most compatible / appropriate slice in a universal/fat binary.
However its replacement macho_best_slice is broken and will return EBADARCH for any non-Apple binary 😓
The issue seems to be that the dyld3::GradedArchs::grade method does not take into the account the nuances of the CPU sub types of type *_ALL. Namely that any CPU with a more specific sub type (e.g. CPU_SUBTYPE_ARM64E) can also still execute code compiled with a CPU sub type of *_ALL (e.g. CPU_SUBTYPE_ARM64_ALL).
All the details (+code, +debugging, +disassembly) posted at: https://objective-see.org/blog/blog_0x80.html.
Also, hrmm!?:
Post not yet marked as solved
I am recently migrated from android to Apple Store. Trying to publish my first Unity Game but this error pop up. Would be great if anyone could help. I think this bug belongs to Admob on Unity Game.
Showing All Messages
Undefined symbol: OBJC_CLASS$_GAMRequest
Undefined symbol: _objc_msgSend$setCustomTargeting:
Undefined symbol: _objc_msgSend$categoryExclusions
Undefined symbol: OBJC_CLASS$_GAMInterstitialAd
Undefined symbol: _objc_msgSend$interstitialAdGAM
Undefined symbol: OBJC_CLASS$_GADRewardedInterstitialAd
Undefined symbol: _objc_msgSend$setRewardedInterstitialAd:
Undefined symbol: _objc_msgSend$didEarnRewardCallback
Undefined symbol: _objc_msgSend$presentFromRootViewController:userDidEarnRewardHandler:
Undefined symbol: _objc_msgSend$setRewardedAd:
Undefined symbol: OBJC_CLASS$_GADRequest
Undefined symbol: _objc_msgSend$setKeywords:
Undefined symbol: _objc_msgSend$requestAgent
Undefined symbol: _objc_msgSend$registerAdNetworkExtras:
Undefined symbol: _objc_msgSend$extras
Undefined symbol: _objc_msgSend$stringWithFormat:
Undefined symbol: _objc_msgSend$objectForKey:
Undefined symbol: OBJC_CLASS$_GADInterstitialAd
Undefined symbol: _objc_msgSend$interstitialAd
Undefined symbol: _objc_msgSend$loadWithAdUnitID:request:completionHandler:
Undefined symbol: OBJC_CLASS$_UMPDebugSettings
Undefined symbol: OBJC_CLASS$_UMPRequestParameters
Undefined symbol: _objc_msgSend$debugSettings
Undefined symbol: OBJC_CLASS$_UMPConsentInformation
Undefined symbol: OBJC_CLASS$_GADExtras
Undefined symbol: _objc_msgSend$countByEnumeratingWithState:objects:count:
Undefined symbol: _objc_msgSend$presentFromViewController:completionHandler:
Undefined symbol: _objc_msgSend$loadWithCompletionHandler:
Undefined symbol: _objc_msgSend$adClickedCallback
Undefined symbol: _objc_msgSend$adFailedCallback
Undefined symbol: _objc_msgSend$description
Undefined symbol: _objc_msgSend$currencyCode
Undefined symbol: _objc_msgSend$customAdPosition
Undefined symbol: _kGADAdSizeSmartBannerPortrait
Undefined symbol: _objc_msgSend$frame
Undefined symbol: _objc_msgSend$bannerView
Undefined symbol: _objc_msgSend$bannerClient
Undefined symbol: _objc_msgSend$adaptiveAdSizeForWidth:orientation:
Undefined symbol: _objc_msgSend$adSizeForWidth:height:
Undefined symbol: _objc_msgSend$interstitialClient
Undefined symbol: _objc_msgSend$initWithBannerClientReference:adUnitID:adSize:adPosition:
Undefined symbol: _objc_msgSend$setAppEventDelegate:
Undefined symbol: _objc_msgSend$adWillPresentFullScreenContentCallback
Undefined symbol: _objc_msgSend$adDidDismissFullScreenContentCallback
Undefined symbol: _objc_msgSend$setAdFailedToLoadCallback:
Undefined symbol: _objc_msgSend$presentFromRootViewController:
Undefined symbol: _objc_msgSend$adFailedToPresentFullScreenContentCallback
Undefined symbol: _objc_msgSend$adFailedToLoadCallback
Undefined symbol: _objc_msgSend$paidEventCallback
Undefined symbol: _objc_msgSend$allKeys
Undefined symbol: OBJC_CLASS$_GADAppOpenAd
Undefined symbol: _objc_msgSend$cStringUsingEncoding:
Undefined symbol: _objc_msgSend$setAppOpenAd:
Undefined symbol: _objc_msgSend$setInterstitialAdGAM:
Undefined symbol: _objc_msgSend$request
Undefined symbol: _objc_msgSend$setFullScreenContentDelegate:
Undefined symbol: _objc_msgSend$adReceivedCallback
Undefined symbol: _objc_msgSend$testDeviceIdentifiers
Undefined symbol: _objc_msgSend$appOpenAd
Undefined symbol: _objc_msgSend$setPaidEventHandler:
Undefined symbol: _objc_msgSend$setDelegate:
Undefined symbol: _objc_msgSend$appOpenAdClient
Undefined symbol: _objc_msgSend$rewardedInterstitialAdClient
Undefined symbol: _objc_msgSend$didDismissCallback
Undefined symbol: _objc_msgSend$loadWithAdUnitID:request:orientation:completionHandler:
Undefined symbol: OBJC_CLASS$_GADBannerView
Undefined symbol: _GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
Undefined symbol: _GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth
Undefined symbol: _objc_msgSend$show
Undefined symbol: _objc_msgSend$adDidRecordImpressionCallback
Undefined symbol: _objc_msgSend$window
Undefined symbol: _GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
Undefined symbol: _objc_msgSend$setCustomTargetingWithKey:value:
Undefined symbol: _GADAdSizeFullWidthPortraitWithHeight
Undefined symbol: _objc_msgSend$positionView:inParentView:customPosition:
Undefined symbol: _objc_msgSend$setCenter:
Undefined symbol: _kGADAdSizeSmartBannerLandscape
Undefined symbol: _GADAdSizeEqualToSize
Undefined symbol: _CGSizeFromGADAdSize
Undefined symbol: _objc_msgSend$isOperatingSystemAtLeastVersion:
Undefined symbol: _objc_msgSend$safeAreaLayoutGuide
Undefined symbol: _objc_msgSend$positionBannerView
Undefined symbol: _objc_msgSend$loadFormWithCompletionHandler:
Undefined symbol: _objc_msgSend$initWithConsentFormClientReference:
Undefined symbol: _objc_msgSend$setObject:forKey:
Undefined symbol: _objc_msgSend$willPresentCallback
Undefined symbol: _objc_msgSend$reset
Undefined symbol: _objc_msgSend$isConsentFormAvailable
Undefined symbol: _objc_msgSend$requestConsentInfoUpdateWithParameters:completionHandler:
Undefined symbol: _objc_msgSend$setDebugSettings:
Undefined symbol: _objc_msgSend$adReward
Undefined symbol: _GADAdSizeFromCGSize
Undefined symbol: OBJC_CLASS$_GADServerSideVerificationOptions
Undefined symbol: _objc_msgSend$code
Undefined symbol: OBJC_CLASS$_GADMobileAds
Undefined symbol: _objc_msgSend$adUnitMapping
Undefined symbol: _objc_msgSend$adSourceID
Undefined symbol: _objc_msgSend$value
Undefined symbol: _GADErrorUserInfoKeyResponseInfo
Undefined symbol: _objc_msgSend$localizedDescription
Post not yet marked as solved
I have an Xcode project with an obj-c .c file and a .h file aswell as a .swift file where I am calling functions from those obj-c files with a bridging header but when I build my project I get a duplicate symbols error and Xcode doesn't show where.
here is .h header file:
#define smc_h
#include <stdint.h>
#include <mach/mach.h>
#include <IOKit/IOKitLib.h>
typedef struct {
uint32_t datasize;
uint32_t datatype;
uint8_t data[8];
} SMCVal_t;
io_connect_t conn;
kern_return_t openSMC(void);
kern_return_t closeSMC(void);
kern_return_t readSMC(char *key, SMCVal_t *val);
double convertToFahrenheit(SMCVal_t *val);
#endif /* smc_h */
my .c implementation file:
#include "smc.h"
kern_return_t openSMC(void) {
kern_return_t result;
kern_return_t service;
io_iterator_t iterator;
service = IOServiceGetMatchingServices(kIOMainPortDefault, IOServiceMatching("AppleSMC"), &iterator);
if(service == 0) {
printf("error: could not match dictionary");
return 0;
}
result = IOServiceOpen(service, mach_task_self(), 0, &conn);
IOObjectRelease(service);
return 0;
}
kern_return_t closeSMC(void) {
return IOServiceClose(conn);
}
kern_return_t readSMC(char *key, SMCVal_t *val) {
kern_return_t result;
uint32_t keyCode = *(uint32_t *)key;
SMCVal_t inputStruct;
SMCVal_t outputStruct;
inputStruct.datasize = sizeof(SMCVal_t);
inputStruct.datatype = 'I' << 24; //a left shift operation. turning the I into an int by shifting the ASCII value 24 bits to the left
inputStruct.data[0] = keyCode;
result = IOConnectCallStructMethod(conn, 5, &inputStruct, sizeof(SMCVal_t), &outputStruct, (size_t*)&inputStruct.datasize);
if (result == kIOReturnSuccess) {
if (val -> datasize > 0) {
if (val -> datatype == ('f' << 24 | 'l' << 16 | 't' << 8 )) { //bit shifting to from 32bit operation associated with the ASCII charecters'f', 'l', and 't', sets datatype field.
double temp = *(double *)val -> data;
return temp;
}
}
}
return 0.0;
}
double convertToFahrenheit(SMCVal_t *val) {
if(val -> datatype == ('f' << 24 | 'l' << 16 | 't' << 8 )) { //checking if val->datatype is equal to the result of the bit-shifting operation.
double temp = *(double *)val -> data;
return (temp * 9.0 / 5.0) + 32.0;
}
return 0.0;
}
And my .swift file where my objc functions are called:
import IOKit
public class CPUTempCaller {
public struct SMCVal_t {
var datasize: UInt32
var datatype: UInt32
var data: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8)
}
@_silgen_name("openSMC")
func openSMC() -> Int32
@_silgen_name("closeSMC")
func closeSMC() -> Int32
@_silgen_name("readSMC")
func readSMC(key: UnsafePointer<CChar>?,val: UnsafeMutablePointer<SMCVal_t>) -> kern_return_t
@_silgen_name("convertToFahrenheit")
func convertToFahrenheit(val: UnsafePointer<SMCVal_t>) -> Double {
let openSM = openSMC()
guard openSM == 0 else {
print("Failed to open SMC: \(openSM)")
return 0.0;
}
let closeSM = closeSMC()
guard closeSM == 0 else {
print("could not close SMC: \(closeSM)")
return 0.0;
}
func convertAndPrintTempValue(key:UnsafePointer<CChar>?,scale: Character, showTemp: Bool ) -> Double? {
var SMCValue = SMCVal_t(datasize: 0, datatype: 0, data:(0,0,0,0,0,0,0,0)) //initializing SMC value
if let Key = key { //check if nil. If not nil, proceed to code block execution
let key = "TC0P"
let keyCString = (key as NSString).utf8String //passing key as null terminated utf8 string
let readSMCResult = readSMC(key: keyCString, val: &SMCValue) //call readSMC obj-C function, store result in "readSMCResult"
if readSMCResult != KERN_SUCCESS {
print("Failed to read SMC: \(readSMCResult)")
}
}
if showTemp { //return nil if showTemp is false
let convertRawToFahrenheit = convertToFahrenheit(val: &SMCValue)
let scaleToStr = String(scale)
print(String(format: "Temperature: %0.1f °%c", convertRawToFahrenheit, scaleToStr))
return nil
} else {
print("could not convert temperature and format values in Fahrenheit")
return nil
}
}
return 0.0;
}
}
Hello, while my project, which I created with the Unity game engine, runs smoothly in the editor, when I try to run it and/or archive through Xcode, I receive the following error:
Undefined symbols:
Linker command failed with exit code 1 (use -v to see invocation)
When I right click on the problem and click Reveal in log it doesn't take me anywhere.
Can you help me with this?
Thanks.
Post not yet marked as solved
I have an Xcode project that include a .c file and .h header file. I am getting a duplicate symbol error and I cannot pinpoint what part of my code is the issue or maybe if it's a configuration issue in my Xcode settings or not.
Here's my .h header file code with my declarations:
#define smc_h
#include <stdint.h>
#include <mach/mach.h>
#include <IOKit/IOKitLib.h>
typedef struct {
uint32_t datasize;
uint32_t datatype;
uint8_t data[8];
} SMCVal_t;
extern io_connect_t conn;
kern_return_t openSMC(void);
kern_return_t closeSMC(void);
kern_return_t readSMC(char *key, SMCVal_t *val);
double convertToFahrenheit(SMCVal_t *val);
#endif /* smc_h */
And here is my .c implementation:
#include "smc.h"
#include <mach/mach.h>
#include <IOKit/IOKitLib.h>
io_connect_t conn;
kern_return_t openSMC(void) {
kern_return_t result;
kern_return_t service;
io_iterator_t iterator;
service = IOServiceGetMatchingServices(kIOMainPortDefault, IOServiceMatching("AppleSMC"), &iterator);
if(service == 0) {
printf("error: could not match dictionary");
return 0;
}
result = IOServiceOpen(service, mach_task_self(), 0, &conn);
IOObjectRelease(service);
return 0;
}
kern_return_t closeSMC(void) {
return IOServiceClose(conn);
}
kern_return_t readSMC(char *key, SMCVal_t *val) {
kern_return_t result;
uint32_t keyCode = *(uint32_t *)key;
SMCVal_t inputStruct;
SMCVal_t outputStruct;
inputStruct.datasize = sizeof(SMCVal_t);
inputStruct.datatype = 'I' << 24; //a left shift operation. turning the I into an int by shifting the ASCII value 24 bits to the left
inputStruct.data[0] = keyCode;
result = IOConnectCallStructMethod(conn, 5, &inputStruct, sizeof(SMCVal_t), &outputStruct, (size_t*)&inputStruct.datasize);
if (result == kIOReturnSuccess) {
if (val -> datasize > 0) {
if (val -> datatype == ('f' << 24 | 'l' << 16 | 't' << 8 )) { //bit shifting to from 32bit operation associated with the ASCII charecters'f', 'l', and 't', sets datatype field.
double temp = *(double *)val -> data;
return temp;
}
}
}
return 0.0;
}
double convertToFahrenheit(SMCVal_t *val) {
if(val -> datatype == ('f' << 24 | 'l' << 16 | 't' << 8 )) { //checking if val->datatype is equal to the result of the bit-shifting operation.
double temp = *(double *)val -> data;
return (temp * 9.0 / 5.0) + 32.0;
}
return 0.0;
}
Post not yet marked as solved
I am now using the fortran compiler to compile the codes with the command of "make -f Makefile". In the previous time, the command: make -f Makefile works well, but after updating the MacOS system, the same command results in the following error:
-macosx_version_min has been renamed to -macos_version_min
ld: unknown options: -commons
collect2: error:ld returns 1
Is there anyone know how to solve the above problem?
Thanks a lot for your time and help.
Post not yet marked as solved
Hello, I have been experiencing the problem you see below for a long time.
How can I solve it?
As a result of my research, I tried many things but it didn't work. Cocoapods is used in the project.
Can you help me?
dyld[71940]: Library not loaded: @rpath/Papara.framework/Papara
Referenced from: <9ADE446C-A9F6-30B8-A6AB-FFB2B4D3F9C4> /Users/mehmet.akyol/Library/Developer/CoreSimulator/Devices/E2C4776D-41A3-4C52-B2CB-B6BB80CD4B3F/data/Containers/Bundle/Application/3B8E2E48-FD91-453F-9211-1FC4193ACB51/iosTurknet.app/iosTurknet
Reason: tried: '/Users/mehmet.akyol/Library/Developer/Xcode/DerivedData/iosTurknet-cuvkzreipstianayawphjkqjginw/Build/Products/Debug-iphonesimulator/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/Xcode/DerivedData/iosTurknet-cuvkzreipstianayawphjkqjginw/Build/Products/Debug-iphonesimulator/PackageFrameworks/Papara.framework/Papara' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21A328/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.0.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift/Papara.framework/Papara' (no such file), '/usr/lib/swift/Papara.framework/Papara' (no such file, no dyld cache), '/Library/Developer/CoreSimulator/Volumes/iOS_21A328/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.0.simruntime/Contents/Resources/RuntimeRoot/Users/mehmet.akyol/Library/Developer/Xcode/DerivedData/iosTurknet-cuvkzreipstianayawphjkqjginw/Build/Products/Debug-iphonesimulator/PackageFrameworks/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/Xcode/DerivedData/iosTurknet-cuvkzreipstianayawphjkqjginw/Build/Products/Debug-iphonesimulator/PackageFrameworks/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/CoreSimulator/Devices/E2C4776D-41A3-4C52-B2CB-B6BB80CD4B3F/data/Containers/Bundle/Application/3B8E2E48-FD91-453F-9211-1FC4193ACB51/iosTurknet.app/Frameworks/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/CoreSimulator/Devices/E2C4776D-41A3-4C52-B2CB-B6BB80CD4B3F/data/Containers/Bundle/Application/3B8E2E48-FD91-453F-9211-1FC4193ACB51/iosTurknet.app/Frameworks/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/CoreSimulator/Devices/E2C4776D-41A3-4C52-B2CB-B6BB80CD4B3F/data/Containers/Bundle/Application/3B8E2E48-FD91-453F-9211-1FC4193ACB51/iosTurknet.app/Papara.framework/Papara' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21A328/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.0.simruntime/Contents/Resources/RuntimeRoot/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/Papara.framework/Papara' (no such file), '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/Papara.framework/Papara' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21A328/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.0.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift/Papara.framework/Papara' (no such file), '/usr/lib/swift/Papara.framework/Papara' (no such file, no dyld cache), '/Library/Developer/CoreSimulator/Volumes/iOS_21A328/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.0.simruntime/Contents/Resources/RuntimeRoot/Users/mehmet.akyol/Library/Developer/Xcode/DerivedData/iosTurknet-cuvkzreipstianayawphjkqjginw/Build/Products/Debug-iphonesimulator/PackageFrameworks/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/Xcode/DerivedData/iosTurknet-cuvkzreipstianayawphjkqjginw/Build/Products/Debug-iphonesimulator/PackageFrameworks/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/CoreSimulator/Devices/E2C4776D-41A3-4C52-B2CB-B6BB80CD4B3F/data/Containers/Bundle/Application/3B8E2E48-FD91-453F-9211-1FC4193ACB51/iosTurknet.app/Frameworks/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/CoreSimulator/Devices/E2C4776D-41A3-4C52-B2CB-B6BB80CD4B3F/data/Containers/Bundle/Application/3B8E2E48-FD91-453F-9211-1FC4193ACB51/iosTurknet.app/Frameworks/Papara.framework/Papara' (no such file), '/Users/mehmet.akyol/Library/Developer/CoreSimulator/Devices/E2C4776D-41A3-4C52-B2CB-B6BB80CD4B3F/data/Containers/Bundle/Application/3B8E2E48-FD91-453F-9211-1FC4193ACB51/iosTurknet.app/Papara.framework/Papara' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21A328/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.0.simruntime/Contents/Resources/RuntimeRoot/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/Papara.framework/Papara' (no such file), '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/Papara.framework/Papara' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21A328/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.0.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Papara.framework/Papara' (no such file)