Posts under Developer Tools & Services topic

Post

Replies

Boosts

Views

Activity

Multiple dynamic libraries in a package under SPM
We are currently building an app in Swift, reusing an internal C++ backend used in other platforms ( Linux/Windows/Mac ). Current state of the project: App W - ( Swift App ) Package X - Swift Package Y.xcframework - Binary Target (ios-arm64 and ios-arm64-simulator) Z.framework Z - (C++ Backend as a library) Dynamic Library Headers - Library header files Frameworks (Folder) - Required .dylib’s for Z ( libA.dylib (Dependency of Z) [ 58 of them ] libB.dylib (Runtime dependency of python) [ 123 of them ] data - Supporting binary files for Z conf - Supporting configuration files, both text and binary. for Z python - Supporting .py scripts C.py D.py Z.framework ( C++ ) contains 182 Dynamic Libraries. Goal: Validate the app for distribution with the Apple Store validation tool. Learning when trying to solve the problem: A framework can contain only one dynamic library (e.g. .dylib ) A framework cannot have nested frameworks within a Frameworks folder Certain file types within a framework are not treated as resource files (e.g. .py files) Possible solutions Allow to have nested Frameworks in Z.framework. It’s currently not allowed Link 182 dynamic libraries into the project via SPM Problem: Some of the libraries need to dynamically loaded at runtime (related to the python runtime) Making the libraries static adds significantly technical challenges to the Z.framework. Other questions: What’s the best way to achieve this
1
0
489
Nov ’24
XCode 16: Multiple commands produce '{Path}Info.plist'
Hey guys, so I've read a lot of previous issues opened before opening this one, and I am doing it because none of the info found solved my problem. So, I am trying to build my app which it has a custom Info.plist file. But i keep getting the issue of multiple command when trying to build. Here is how it;s configured: Info.plist has the target membership correct Build Setting is set to 'NO' under "Generate Info.plist File" The path is correct, in the same folder as the ContentView And here is what I've already tried to fix the issue: Check in Build Phases if the wasn't a duplication: There isn't Removing the Info.plist from the "Copy Bundle Resources": When I do this, than I get another issue which is "Build input file cannot be found. Did you forget to declare this file as an output of a script phase or custom build rule which produces it?" Switching the Build to Legacy Build System: Nothing changed Deleting the manually created Info.plist file and changing the Build Settings to 'YES' under "Generate Info.plist File": I get the same issue "Build input file cannot be found. Did you forget to declare this file as an output of a script phase or custom build rule which produces it?" Deleted the Derived Data multiple times Deleted the Info.plist file and re-added it through File > New File Anyway, this is my last resource to find some help here in the forum. Any insight is valid P.S: XCode version 16.1
2
1
2.4k
Nov ’24
pod file error
require File.join(File.dirname(node --print "require.resolve('expo/package.json')"), "scripts/autolinking") require File.join(File.dirname(node -e "console.log(require.resolve('react-native/package.json'))"), "scripts/react_native_pods") require 'json' podfile_properties = JSON.parse(File.read(File.join(dir, 'Podfile.properties.json'))) rescue {} ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0' ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] use_modular_headers! # Enable modular headers globally use_autolinking_method_symbol = ('use' + '_native' + '_modules!').to_sym origin_autolinking_method = self.method(use_autolinking_method_symbol) self.define_singleton_method(use_autolinking_method_symbol) do |*args| if ENV['EXPO_UNSTABLE_CORE_AUTOLINKING'] == '1' Pod::UI.puts('Using expo-modules-autolinking as core autolinking source'.green) config_command = [ 'node', '--no-warnings', '--eval', 'require(require.resolve('expo-modules-autolinking', { paths: [require.resolve('expo/package.json')] }))(process.argv.slice(1))', 'react-native-config', '--json', '--platform', 'ios' ] origin_autolinking_method.call(config_command) else origin_autolinking_method.call() end end platform :ios, podfile_properties['ios.deploymentTarget'] || '13.4' install! 'cocoapods', :deterministic_uuids => false prepare_react_native_project! target 'StayRealtor' do use_expo_modules! config = use_native_modules! use_frameworks! :linkage => :dynamic # Enable dynamic frameworks globally use_react_native!( :path => config[:reactNativePath], :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', :app_path => "#{Pod::Config.instance.installation_root}/..", :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false', ) Adding Firebase dependencies with modular headers pod 'Firebase', :modular_headers => true pod 'FirebaseCoreInternal', :modular_headers => true pod 'FirebaseCore', :modular_headers => true pod 'Firebase/Auth', :modular_headers => true pod 'Firebase/Firestore', :modular_headers => true pod 'Firebase/InAppMessaging', :modular_headers => true pod 'Firebase/RemoteConfig', :modular_headers => true pod 'Firebase/Storage', :modular_headers => true pod 'FirebaseAuthInterop', :modular_headers => true pod 'FirebaseAppCheckInterop', :modular_headers => true pod 'FirebaseCoreExtension', :modular_headers => true pod 'RecaptchaInterop', :modular_headers => true pod 'FirebaseFirestoreInternal', :modular_headers => true pod 'FirebaseInstallations', :modular_headers => true pod 'FirebaseABTesting', :modular_headers => true pod 'nanopb', :modular_headers => true pod 'GoogleDataTransport', :modular_headers => true pod 'GoogleUtilities', :modular_headers => true; post_install do |installer| react_native_post_install( installer, config[:reactNativePath], :mac_catalyst_enabled => false, :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true', ) # Fix for Xcode 14 signing resource bundles installer.target_installation_results.pod_target_installation_results .each do |pod_name, target_installation_result| target_installation_result.resource_bundle_targets.each do |resource_bundle_target| resource_bundle_target.build_configurations.each do |config| config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' end end end end post_integrate do |installer| begin expo_patch_react_imports!(installer) rescue => e Pod::UI.warn e end end end error:[!] The following Swift pods cannot yet be integrated as static libraries: The Swift pod FirebaseAuth depends upon FirebaseAuthInterop, FirebaseAppCheckInterop, FirebaseCoreExtension, and RecaptchaInterop, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set use_modular_headers! globally in your Podfile, or specify :modular_headers => true for particular dependencies. The Swift pod FirebaseFirestore depends upon FirebaseCoreExtension and FirebaseFirestoreInternal, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set use_modular_headers! globally in your Podfile, or specify :modular_headers => true for particular dependencies. The Swift pod FirebaseInAppMessaging depends upon FirebaseInstallations, FirebaseABTesting, and nanopb, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set use_modular_headers! globally in your Podfile, or specify :modular_headers => true for particular dependencies. The Swift pod FirebaseRemoteConfig depends upon FirebaseABTesting and FirebaseInstallations, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set use_modular_headers! globally in your Podfile, or specify :modular_headers => true for particular dependencies. The Swift pod FirebaseSessions depends upon FirebaseCoreExtension, FirebaseInstallations, GoogleDataTransport, and nanopb, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set use_modular_headers! globally in your Podfile, or specify :modular_headers => true for particular dependencies. The Swift pod FirebaseStorage depends upon FirebaseAppCheckInterop, FirebaseAuthInterop, and FirebaseCoreExtension, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set use_modular_headers! globally in your Podfile, or specify :modular_headers => true for particular dependencies.
0
0
1.2k
Nov ’24
Payment Error
Hi, I hope you're doing well. I am adding across this post because I keep getting an error while I go to purchase the apple developer program support. I recently got approval to register on behalf of my organization, but I am not being able to move forward with the payment. Since I am registering from India, it only lets me add UPI or net banking on the App Store as payment methods. I am also unable to change my payment methods in settings, it just says card on file. Need help in purchasing this subscription. Prompts I get Your purchase could not be completed. For assistance, contact iTunes support. It then says purchase failed an unknown error has occurred.
1
0
411
Nov ’24
Team requires more devices than that of the Device limit
Hi Hypothetically, my company has 300 mobile engineers and we're building an iPhone app. Optimally I'd like each mobile engineer to have a physical device which they can do their day to day development, testing etc on. What options do I have to enable this given that there is a 100 device limit for iPhones on the Apple Developer Program used by my company. (https://developer.apple.com/help/account/register-devices/devices-overview/) Thanks
1
0
485
Nov ’24
On Xcode16, when using the xcodebuild command to package, the developer account will be logged out, and then the packaging will fail.
Our CI process uses XcodeBuild tools. It used to work very well. The shell code is as follows: step 1 "++++++++++++++++clean++++++++++++++++" xcodebuild clean -workspace ${WORKSPACE_NAME}.xcworkspace \ -scheme ${SCHEME_NAME} \ -configuration ${configuration} step 2 "+++++++++++++++++archive+++++++++++++++++" xcodebuild archive -workspace ${WORKSPACE_NAME}.xcworkspace \ -scheme ${SCHEME_NAME} \ -configuration ${configuration} \ -archivePath ${ARCHIVE_PATH} -allowProvisioningUpdates YES step 3 "+++++++++++++++++ipa+++++++++++++++++" xcodebuild -exportArchive \ -archivePath ${ARCHIVE_PATH} \ -exportPath "${IPA_PATH}" \ -exportOptionsPlist ${EXPORT_METHOD_PLIST_PATH} \ -allowProvisioningUpdates YES But after upgrading to xcode16, every time I execute the step3, it fails. The error log is like this ** ARCHIVE SUCCEEDED ** 2024-11-08 16:19:54.360 xcodebuild[36487:6743710] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path "/var/folders/ch/1mvd9gz11cn8zy9h254qz2600000gn/T/xxx.xcdistributionlogs". error: exportArchive No Accounts error: exportArchive Provisioning profile "iOS Team Store Provisioning Profile: com.xxx" doesn't include signing certificate "Apple Distribution: xxx Co Ltd (xxx)". ** EXPORT FAILED ** At this time, my Apple developer account disappeared in xcode-setting-account, and it automatically logged out. If I log in again and execute the shell command, the above phenomenon will reappear. What is the cause of this, and what do I need to do to solve this problem? I look forward to your reply
2
0
933
Nov ’24
Xcode 16 missing the DeviceSupport for iOS17 and above
i am unable to deploy the iOS app with automation using below command: ios-deploy --bundle /Users/XXXX/Library/Developer/Xcode/DerivedData/iOSClient2-XXXXXXX/Build/Products/Debug-iphoneos/iOSClient2.app/ --id 00008020-XXXXXXXXX --justlaunch --verbose with the error: ------ Debug phase ------ Starting debug of 00008120-000C713236E0A01E (D38AP, D38AP, uknownos, unkarch, 18.1, 22B83) a.k.a. 'Svt’s iPhone' connected through USB... Device Class: iPhone build: 22B83 version: 18.1 Found Xcode developer dir /Applications/Xcode.app/Contents/Developer version: 18.0 version: 18 2024-11-08 15:26:09.531 ios-deploy[33496:644410] [ !! ] Unable to locate DeviceSupport directory with suffix 'DeveloperDiskImage.dmg'. This probably means you don't have Xcode installed, you will need to launch the app manually and logging output will not be shown! Observation: Xcode 16 missing the DeviceSupport for iOS17 and above. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/.... Xcode: Version 16.1 (16B40 iOS: iOS17 and above
1
1
678
Nov ’24
My App crashes run-time occasionally when I use AVFoundation and related code
I am developing an app for Vehicle owners with a built-in map navigation feature with voice navigation support. The app works fine without voice navigation but when I use voice navigation it occasionally crashes and it crashes while voice navigation is not in progress. What makes it impossible to diagnose is that even though it crashed 10 times on the flight, I don't see any crash reports in 'Apple Connect'. I tried running it in a simulator and it didn't crash there! but on a real device, when I drive with the app navigating me I crashes abruptly after a few minutes and it's not while the voice navigation is speaking! I also ran the app without AVFoundation and it did not crash then. So I am 100% sure it is something with this AVFoundation framework. If anyone can help find the problem in my following code it would be really helpful. import SwiftUI import AVFoundation struct DirectionHeaderView: View { @Environment(\.colorScheme) var bgMode: ColorScheme var directionSign: String? var nextStepDistance: String var instruction: String @Binding var showDirectionsList: Bool @Binding var height: CGFloat @StateObject var locationDataManager: LocationDataManager @State private var synthesizer = AVSpeechSynthesizer() @State private var audioSession = AVAudioSession.sharedInstance() @State private var lastInstruction: String = "" @State private var utteranceDistance: String = "" @State private var isStepExited = false @State private var range = 20.0 var body: some View { VStack { HStack { VStack { if let directionSign = directionSign { Image(systemName: directionSign) } if !instruction.contains("Re-calculating the route...") { Text("\(nextStepDistance)") .onChange(of: nextStepDistance) { let distance = getDistanceInNumber(distance: nextStepDistance) if distance <= range && !isStepExited { startVoiceNavigation(with: instruction) isStepExited = true } } } } Spacer() Text(instruction) .onAppear { isStepExited = false utteranceDistance = nextStepDistance range = nextStepRange(distance: utteranceDistance) startVoiceNavigation(with: "In \(utteranceDistance), \(instruction)") } .onChange(of: instruction) { isStepExited = false utteranceDistance = nextStepDistance range = nextStepRange(distance: utteranceDistance) startVoiceNavigation(with: "In \(utteranceDistance), \(instruction)") } .padding(10) Spacer() } } .padding(.horizontal,10) .background(bgMode == .dark ? Color.black.gradient : Color.white.gradient) } func startVoiceNavigation(with utterance: String) { if instruction.isEmpty || utterance.isEmpty { return } if instruction.contains("Re-calculating the route...") { synthesizer.stopSpeaking(at: AVSpeechBoundary.immediate) return } let thisUttarance = AVSpeechUtterance(string: utterance) lastInstruction = instruction if audioSession.category == .playback && audioSession.categoryOptions == .mixWithOthers { DispatchQueue.main.async { synthesizer.speak(thisUttarance) } } else { setupAudioSession() DispatchQueue.main.async { synthesizer.speak(thisUttarance) } } } func setupAudioSession() { do { try audioSession.setCategory(AVAudioSession.Category.playback, options: AVAudioSession.CategoryOptions.mixWithOthers) try audioSession.setActive(true) } catch { print("error:\(error.localizedDescription)") } } func nextStepRange(distance: String) -> Double { var thisStepDistance = getDistanceInNumber(distance: distance) if thisStepDistance != 0 { switch thisStepDistance { case 0...200: if locationDataManager.speed >= 90 { return thisStepDistance/1.5 } else { return thisStepDistance/2 } case 201...300: if locationDataManager.speed >= 90 { return 120 } else { return 100 } case 301...500: if locationDataManager.speed >= 90 { return 150 } else { return 125 } case 501...1000: if locationDataManager.speed >= 90 { return 250 } else { return 200 } case 1001...10000: if locationDataManager.speed >= 90 { return 250 } else { return 200 } default: if locationDataManager.speed >= 90 { return 250 } else { return 200 } } } return 200 } func getDistanceInNumber(distance: String) -> Double { var thisStepDistance = 0.0 if distance.contains("km") { let stepDistanceSplits = distance.split(separator: " ") let stepDistanceText = String(stepDistanceSplits[0]) if let dist = Double(stepDistanceText) { thisStepDistance = dist * 1000 } } else { var stepDistanceSplits = distance.split(separator: " ") var stepDistanceText = String(stepDistanceSplits[0]) if let dist = Double(stepDistanceText) { thisStepDistance = dist } } return thisStepDistance } } #Preview { DirectionHeaderView(directionSign: "", nextStepDistance: "", instruction: "", showDirectionsList: .constant(false), height: .constant(0), locationDataManager: LocationDataManager()) }
2
0
489
Nov ’24
Can't connect XCode and brand new Iphone 16 pro
I have this error for 5 min : title: Waiting to reconnect to {Iphone_Name} content: Previous preparation error: The developer disk image could not be mounted on this device.. Error mounting image: 0xe800010f (kAMDMobileImageMounterPersonalizedBundleMissingVariantError: The bundle image is missing the requested variant for this device.) after a while : title: The developer disk image could not be mounted on this device. content: Error mounting image: 0xe800010f (kAMDMobileImageMounterPersonalizedBundleMissingVariantError: The bundle image is missing the requested variant for this device.) What has been tryed : - Xcode : clean - Xcode : close - Iphone : unpluged - Iphone : Remove trusted device - Iphone : Remove Dev mode - Iphone : Re-active dev mode (then reboot) - Iphone : Accepte dev mode - Iphone : wait 5 min - Iphone : connect to the macbook pro (M1) - Iphone : accepte first form - XCode : start it - Iphone : accepte second form - XCode : select my project THEN BUG SAME PLAIN OLD APPLE BUG (again and again) (I have try it like 20 times, i'm fed up now) I have paid for a pro (100euros) account to be able to push to my brand new iphone. I have tried everything, like : remove xcode, re-install it. No Update for the iphone. sudo installer -pkg /Applications/Xcode.app/Contents/Resources/Packages/XcodeSystemResources.pkg -target / What I can do : - Buy a subscription to store my iphone on icloud (cause basic option is already full) - Ask a refound for the iphone (obviously not working) and my apple subscription developers. And fix my old iphone. No point to buy brand new device that is not working. Also, same error with my brand new ipad pro 16 pouce. I can't push to the store, cause you ask screen shot. But I can't start the apps, so i can't have screen shot. So i have to change my plans in terms of project. Please help, before I switch to a full web stack based on rust
1
0
715
Nov ’24
Xcode doc. error: There is no 'asset catalog' in Project Navigator
In several places on https://developer.apple.com/documentation/xcode/configuring-your-app-icon I read: "In the Project navigator, select an asset catalog." But my Project Navigator does NOT contain any "asset catalog". So it's impossible to follow the instructions of the documentation, and thus specify a new app icon (set). I can add that I use Xcode 16.1 on MacOS 15.0.1 Sequoia. I have added a screen shot to document what I am saying. I have also reported this error in https://feedbackassistant.apple.com/feedback/15738182
2
0
647
Nov ’24