Post

Replies

Boosts

Views

Activity

Inquiry about the production of visionos apps separate from the existing ios app store sales
Hello . I'm currently selling an app. I tried to run the ios version on visionos to provide the same service as the existing app, but a huge amount of incompatible code was generated. Can I create a visionos app with the same name, add visionos from the App Store connect site, and upload a completely separate app project file? The iOS app and the visionos app will use the same icloud, in-app payment, and so on. However, we plan to separate the project itself to reduce the size of the user's app itself and optimize it.
0
0
623
Feb ’24
Visionos upload error Profile doesn't include the com.apple.application-identifier entitlement.
Currently, I'm reducing the ios version being sold on the App Store with the same app id and identifier to visionos, and I'm trying to upload it using the same identifier, developer id, and icloud, but I can't upload it because of an error. I didn't know what the problem was, so I updated the update of the ios version early, but I uploaded the review without any problems. Uploading the visionos single version has a profile problem, so I would appreciate it if you could tell me the solution. In addition, a lot of the code used in the ios version is not compatible with visionos, so we have created a new project for visionos.
0
0
672
Mar ’24
One app Multi-platform. The concern of a novice developer
Hello . Currently, only the ios version is on sale on the App Store. The application is offering an icloud-linked, auto-renewable subscription. I want to sell to the app store connect with the same identifier, AppID at the same time. I simply added visionos to the existing app project to provide the visionos version early, but the existing UI-related code and the location-related code are not compatible. We used the same identifier with the same name, duplicated and optimized only what could be implemented, and created it without any problems on the actual device. However, when I added the visionos platform to the App Store cennect and tried to upload it through the archive in the app for visionos that I created as an addition, there was an error in the identifier and provisioning, so the upload was blocked. The result of looking up to solve the problem App Group -I found out about the function, but it was judged that a separate app was for an integrated service, so it was not suitable for me. Add an APP to an existing app project via target and manually adjust the platform in Xcode -> Build Phases -> Compile Soures -> Archive upload success?( I haven't been able to implement this stage of information yet.) I explained the current situation. Please give me some advice on how to implement it.visionos has a lot of constraints, so you need to take a lot of features off.
0
0
753
Mar ’24
xcode
This bundle is invalid. The value for key CFBundleVersion [1.0.1] in the Info.plist file must contain a higher version than that of the previously uploaded version [5]. Please find more information about CFBundleVersion at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion (ID: 978303b8-eb71-4d71-9169-b0b0860fd8ec) The issue is an error while uploading macOS version 1.0.1 to the App store. If I want to solve it simply and quickly now, do I have to skip 1.0.1 and upload version 5.0.1 right away? I made an inquiry to Apple, but they only asked me to ask the forum or provide technical support. I would appreciate it if you could reply even if it's not accurate. I don't know if the problem is mine or Apple's problem, so I can't solve it for a long time.
0
0
517
May ’24
Document Access Codes and Settings
Currently, there must be a request for access to documents with xcode, but we do not request access. Added NSDocumentDirectoryUsageDescription to info. import SwiftUI import AVFoundation import UniformTypeIdentifiers struct ContentView: View { @State private var audioPlayer: AVAudioPlayer? @State private var isPlaying = false @State private var currentFileName: String = "No file selected" @State private var showingDocumentPicker = false @State private var songList: [String] = UserDefaults.standard.stringArray(forKey: "SavedSongs") ?? [] @State private var currentSongIndex: Int = 0 var body: some View { VStack { Text(currentFileName) .font(.headline) .padding() List { ForEach(songList, id: \.self) { song in HStack { Text(song) .onTapGesture { loadAndPlaySong(named: song) } Spacer() Button(action: { removeSong(named: song) }) { Image(systemName: "trash") .foregroundColor(.red) } } } } .listStyle(PlainListStyle()) HStack(spacing: 10) { Button(action: { showingDocumentPicker = true }) { Text("Load") .font(.system(size: 12)) .frame(width: 50, height: 25) .background(Color.blue) .foregroundColor(.white) .cornerRadius(5) } .padding(.bottom, 20) } .padding() .sheet(isPresented: $showingDocumentPicker) { DocumentPicker(audioPlayer: $audioPlayer, currentFileName: $currentFileName, songList: $songList) } .onAppear { if !songList.isEmpty { loadAndPlaySong(named: songList[currentSongIndex]) } } } func playSong() { audioPlayer?.play() isPlaying = true } func pauseSong() { audioPlayer?.pause() isPlaying = false } func stopSong() { audioPlayer?.stop() audioPlayer?.currentTime = 0 isPlaying = false } func nextSong() { currentSongIndex = (currentSongIndex + 1) % songList.count loadAndPlaySong(named: songList[currentSongIndex]) } func previousSong() { currentSongIndex = (currentSongIndex - 1 + songList.count) % songList.count loadAndPlaySong(named: songList[currentSongIndex]) } func loadAndPlaySong(named songName: String) { guard let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return } let fileURL = documentsURL.appendingPathComponent(songName) do { audioPlayer = try AVAudioPlayer(contentsOf: fileURL) audioPlayer?.prepareToPlay() currentFileName = songName playSong() } catch { print("Error loading file: \(error.localizedDescription)") } } func removeSong(named songName: String) { songList.removeAll { $0 == songName } UserDefaults.standard.set(songList, forKey: "SavedSongs") } } struct DocumentPicker: UIViewControllerRepresentable { @Binding var audioPlayer: AVAudioPlayer? @Binding var currentFileName: String @Binding var songList: [String] func makeCoordinator() -> Coordinator { return Coordinator(self) } func makeUIViewController(context: Context) -> UIDocumentPickerViewController { let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: [UTType.audio]) documentPicker.delegate = context.coordinator return documentPicker } func updateUIViewController(_ uiViewController: UIDocumentPickerViewController, context: Context) {} class Coordinator: NSObject, UIDocumentPickerDelegate { let parent: DocumentPicker init(_ parent: DocumentPicker) { self.parent = parent } func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { guard let url = urls.first else { return } do { if url.startAccessingSecurityScopedResource() { defer { url.stopAccessingSecurityScopedResource() } let fileName = url.lastPathComponent let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! let destinationURL = documentsURL.appendingPathComponent(fileName) if FileManager.default.fileExists(atPath: destinationURL.path) { try FileManager.default.removeItem(at: destinationURL) } try FileManager.default.copyItem(at: url, to: destinationURL) parent.audioPlayer = try AVAudioPlayer(contentsOf: destinationURL) parent.audioPlayer?.prepareToPlay() parent.currentFileName = fileName if !parent.songList.contains(fileName) { parent.songList.append(fileName) UserDefaults.standard.set(parent.songList, forKey: "SavedSongs") } } else { print("I can't get file access.") } } catch { print("An error occurred while loading the file: \(error.localizedDescription)") } } func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) { } } }
0
0
684
Jun ’24
Ability to add numbers
I want to make something that adds numbers over and over again. If you add 50 at the beginning, it is saved in the core data, and if you add 80 again later, I want 130 to be saved in the core data right away. How do I store the stored value directly in Core Data and add another number to that data?
1
0
500
Apr ’22
Building a custom keyboard
I'm trying to make a keyboard that conforms to Apple's guidelines. I need to change the key layout like an app in the App Store, but I can't find any documentation or information about it. Everyone leaves the keyboard instruction link and runs away. Can you help me? https://apps.apple.com/kr/app/slyder/id1121553033
Topic: UI Frameworks SubTopic: UIKit Tags:
1
0
563
May ’22
How to use UIImage instead of UIColor
Currently, I am making custom keyboard as an extension. As I was making it, I was able to specify the background color of the keyboard button. But what I want is to insert a UIImage instead of a UIColor, but it doesn't work. Can anyone tell me? People like Claude 31 who can give me a rough idea, please do not comment and I will report you.
1
0
661
Jul ’22
'shared' is unavailable in application extensions for iOS: Use view controller based solutions where appropriate instead.
import UIKit import CoreHaptics import AVFoundation enum ShiftStatus{   case capitalized   case normal } @available(iOSApplicationExtension 13.0, *) class KeyboardViewController: UIInputViewController {       var engine: CHHapticEngine?       lazy var supportsHaptics: Bool = {     let appDelegate = UIApplication.shared.delegate as! AppDelegate     return appDelegate.supportsHaptics   }() Currently working here 'shared' is unavailable in application extensions for iOS: Use view controller based solutions where appropriate instead. A warning message pops up. I have to use it in an extension. Does anyone know a solution?
1
0
6.9k
Jul ’22
How to make return key for extension keyboard
I made a custom keyboard. However, I'm not sure how to actively create buttons according to the input type like the iPhone's default keyboard. This is the information I found. typedef enum { case 'default' case asciiCapble case numberAndPunctuation case URL case numberPad case phonePad case namePhonePad case eamilAddress case decimalPad case twitter case webSearch case asciiCapbleNumberPad }UIKeyboardType; static var alphabey: UIKeyboardType Specifies a keybovard optimized for alphabetic entry
1
0
838
Dec ’22
Do I need to create a personal server for automatic subscription renewal
I am currently implementing in-app purchases. I have implemented simple in-app purchases using product.storekit within Xcode, and now I am developing to sell products by implementing auto-renewable subscriptions. Do I necessarily need to create my own personal server to use receipt information? I have never created a server before. Also, if I only want to implement simple in-app purchases, do I still need a personal server?
1
0
1.3k
Jul ’23
"The ads are not working properly in the Today Tap on Apple Search Ads."
"Last year, all the apps I had for sale could advertise in the Today Tap across all countries where they were available. However, I am now selling adult content and products with in-app subscriptions, and I am trying to advertise them on Today Tap, but it is only possible in South Korea. Even when I inquire, they refuse to answer, claiming it's confidential. So, even if I modify the category, advertising is not possible. Do I have to not have any age restrictions or in-app purchases to advertise on Today Tap? They won't tell me what the review criteria are. They should tell me so I can comply with them."
1
0
955
Aug ’23