Picovoice / porcupine

On-device wake word detection powered by deep learning
https://picovoice.ai/
Apache License 2.0
3.79k stars 503 forks source link

Porcupine Issue: Unable to Submit iOS App to App Store Due to Bitcode in PvPorcupine.framework #1321

Closed callmephil closed 1 month ago

callmephil commented 1 month ago

Have you checked the docs and existing issues?

SDK

Flutter

Porcupine package version

3.0.3

Framework version

PvPorcupine.framework (found inside the xcframework in Pods)

Platform

iOS

OS/Browser version

iOS 14+

Describe the bug

I’m trying to submit my app to the App Store, but there is an error during the publishing process. The upload fails with the following error related to the PvPorcupine.framework:

{
   "tool-version":"8.003.16003",
   "tool-path":"\/Applications\/Xcode-16.0.app\/Contents\/SharedFrameworks\/ContentDeliveryServices.framework\/Versions\/A\/Frameworks\/AppStoreService.framework",
   "os-version":"14.7.0",
   "product-errors":[
      {
         "message":"Asset validation failed",
         "userInfo":{
            "NSUnderlyingError":"Error Domain=IrisAPI Code=-19241 \"Asset validation failed\" UserInfo={status=409, detail=Invalid Executable. The executable 'Runner.app\/Frameworks\/PvPorcupine.framework\/PvPorcupine' contains bitcode., id=90a747b9-edff-450d-8866-233fc9dc0735, code=STATE_ERROR.VALIDATION_ERROR.90482, title=Asset validation failed, NSLocalizedFailureReason=Invalid Executable. The executable 'Runner.app\/Frameworks\/PvPorcupine.framework\/PvPorcupine' contains bitcode., NSLocalizedDescription=Asset validation failed}",
            "NSLocalizedDescription":"Asset validation failed",
            "iris-code":"STATE_ERROR.VALIDATION_ERROR.90482",
            "NSLocalizedFailureReason":"Invalid Executable. The executable 'Runner.app\/Frameworks\/PvPorcupine.framework\/PvPorcupine' contains bitcode. (ID: 90a747b9-edff-450d-8866-233fc9dc0735)"
         },
         "code":90482
      }
   ]
}

PvPorcupine.framework includes bitcode, which is no longer supported by App Store submissions.

Steps To Reproduce

  1. Integrate the Picovoice Porcupine SDK into an iOS project.
  2. Build and archive the app.
  3. Attempt to upload the app archive to App Store Connect.
  4. Observe the asset validation failure due to bitcode in PvPorcupine.framework.

Expected Behavior

The app should successfully upload to App Store Connect without issues related to bitcode in the PvPorcupine.framework.

matt200-ok commented 1 month ago

Hello @callmephil, thanks for reporting I will let the team know but I don't really have an estimate for a fix. This issue appears to be caused by XCode 16 removing support for bitcode so in the meantime you can try stripping the bitcode from the framework.

callmephil commented 1 month ago

Hello @callmephil, thanks for reporting I will let the team know but I don't really have an estimate for a fix. This issue appears to be caused by XCode 16 removing support for bitcode so in the meantime you can try stripping the bitcode from the framework.

Hey Matt thanks for replying! Do you have any idea how can I strip the bitcode from the framework?

matt200-ok commented 1 month ago

You could try this link and if that doesn't work you will likely need to use XCode 15 to build your application.

callmephil commented 1 month ago

You could try this link and if that doesn't work you will likely need to use XCode 15 to build your application.

Thanks! It doesn't seem to work, we went with XCode 15 for now.