On your Mac, after npx cap add ios has run at least once:
npm run ios:prepare-storeThis will:
- Repair and validate the asset catalog (
scripts/ios-repair.sh) - Harden
Info.plistwith App-Store-grade permission strings, background modes, ATS, and encryption-export compliance (scripts/ios-harden-plist.rb) - Bundle
PrivacyInfo.xcprivacy(Apple's required reason API + data-collection manifest) into the App target (scripts/ios-add-privacy-manifest.rb)
Listing copy (description, keywords, IAP names, reviewer notes) is in docs/app-store-listing.md.
If Xcode shows:
Unable to read project 'App.xcodeproj'missing its project.pbxproj file
then the native iOS project wrapper is incomplete/corrupt. Run:
npm run ios:repairThe repair script will now detect the missing project.pbxproj, regenerate the iOS platform with Capacitor, restore VoiceAppMe's native assets/privacy files, then continue the package and asset repair.
If Xcode shows:
failed to read asset tagsNo string key for value in object around line 2The data couldn’t be read because it isn’t in the correct format
the problem is a malformed file inside ios/App/App/Assets.xcassets, not signing or certificates.
Run:
npm run ios:repairThe repair script now rebuilds the asset catalog metadata from clean Xcode-compatible JSON templates, regenerates all required app icon PNG sizes from icon-1024.png, restores AccentColor.colorset, validates every Contents.json, validates PNG dimensions, and runs Xcode actool when available.
For a quick check without rebuilding packages, run:
npm run ios:validate-assetsThen close Xcode, clear DerivedData if needed, reopen the native project, and build again.
If Xcode shows errors like:
Missing package product 'Capacitor'Missing package product 'Cordova'Missing package product 'PurchasesHybridCommon'There is no XCFramework found at ... DerivedData ...
close Xcode, then run:
npm run ios:repairThen open the native project again:
npx cap open iosIn Xcode, use Product → Clean Build Folder, then press Run on your iPhone.