How to modify the IOS Pods File

Hi,

For firebase messaging i’m using ionic with capacitor, It is required to modify the pod file and appDelegate.swift in order to build an application

I noticed in the docs that there is a folder called “merges” that I can submit to voltbuild, but whenever I submit the project it says

App Store Connect Upload: The bundle version must be higher than the previously uploaded version.
You can fix this in config.xml

Full log file https://apps.volt.build/ec6287f3-4665-49d8-a531-598c05848fd4/voltbuilder.log

NB: It seems that someone had the same problem before but couldn’t identify in depth due to the absence of mac: Push notifications: @capacitor-firebase/messaging firebase - Issues with iOS app

How can I modify the core files ?
How can I change the bundle version?

This should be done in your iOS native project.

This is a cordova specific feature.

This can also be done by opening the native project in Xcode and modifying it.

Ok, So here is the problem, If I uploaded the full IOS Folder with the xcode project inside it, then I’m uploading all the configuration as well which is not practical because somethings need to be dynamic, like for example the URL scheme and identifier in the attached image

Also, other files like Google-service plist and bundle version needs to be dynamic as well, so I can’t make those as static data

Solution Proposed, upload only the files that need modification, like the cordova merges folder and this allows voltbuild generate all the ios files dynamically

Can this be done?

This is not the way Capacitor is designed to work - if you want to use the merges solution, I would suggest using Cordova.

Capacitor is designed to allow you to modify/change the Xcode project. However we do sync your config to the Xcode project prior to building so any config you updated should be represented there. Are you not seeing that?

But this leads to a major problem,

If I want to update the URL Schemes and Identifier, I must have XCode to do so, which is against the intention of why volt builder is here

If I have access to XCode for my project then I would simply click build from there, but we are using voltbuild to build automatically in the cloud without the need of any Mac or XCode

Example: I need to change the package name dynamically, and for each modification it should replace the identifier and URL schemes without the access to Mac Machine or XCode, How can I do so if I’m fully uploading the IOS Folder

Also, how to attach the Google Service Plist to XCode, if I don’t have XCode in my servers, that’s why I’m using volt build

Then How can I sync the URL Types and Google Service plist to Voltbuild?

Can you tell me what plugins are you using that require these? They should have documentation on how to do this with the capacitor workflow.

for the URL Types, Auth0 & Capacitor

and this is the IOS Solution for the correct redirection

Regarding the Capacitor Push Notification

Plugin Name: “@capacitor/push-notifications”: “^6.0.2”,

This is the bug for IOS Only

“Could not find a valid GoogleService-Info.plist in your project”

This is the solution of the bug

I guess this is the same issue:

Unfortunately you’ve chosen a framework (Capacitor) that assumes you have Xcode. I would suggest strongly considering moving to Cordova if you don’t want to have to manage the project yourself.

That said, there are some solutions available that will work with capacitor. I would suggest taking a look at the automated config section of the capacitor docs: Automated Configuration | Capacitor Documentation - this will allow you to make changes to your Xcode project programmatically. This will still require you to know/understand a bit about the Xcode project structure, but it’s roughly the same functionality as “merges” in Cordova.

I am using the trapeze package for iOS configuration and have taken the following steps to resolve the issue, but the error persists.
1- configured the Info.plist file to include the URL scheme as follows:

        ios:
          targets:
            App:
              bundleId: 'com.stackspushingtester.www'
              buildSettings:
                ENABLE_BITCODE: false
                STRIP_SWIFT_SYMBOLS: false
              plist:
                replace: true
                entries:
                  - CFBundleIdentifier: "com.stackspushingtester.www"
                  - CFBundleURLTypes:
                      CFBundleTypeRole: Editor
                      CFBundleURLName: "com.stackspushingtester.www"
                      CFBundleURLSchemes:
                        - "com.stackspushingtester.www"
              frameworks:
                - CoreServices.framework
                - ImageIO.framework
                - LocalAuthentication.framework
                - WebKit.framework
                - Security.framework

2- Added the GoogleService-Info.plist file as follows:

       project:
               copy:
                 - src: ./GoogleService-Info.plist 
                    dest: ios/App/App/GoogleService-Info.plist

3- I ensured the Auth0 redirect URI is set in both:
4- Tested the application login flow, but it fails with the error above.

do you have any idea how to fix this with trapeze ?

Are you able to tell what address the application is trying to open?