Comments (17)
I was able to successfully archive our demo app with min deployment changed to 15.1 using Xcode 15.3 with our latest SDK, 6.16.0. The Magnes version that we used in the new releases was built with Xcode 14.1, I believe. This should be compatible with your minimum deployment target.
I'm wondering if it could be issue with Xcode holding on to cached data. Have you tried removing derived data?
Let me investigate to see if I can reproduce this error and also check with my team.
Thank you @KunJeongPark. Just cleared derived data and clean build and still seeing the error message. Definitely spooky behavior.
To rule a few more things out, I'm doing some additional tests and will let you know as soon as possible. We have a test app that is free of other dependencies that I can link to Braintree 6.16.0 and see if that builds and validates.
from braintree_ios.
Appreciate your follow up and us getting to a solution. I'll try to get an answer today on our Xcode 15.2 + Braintree v6. Ideally a Xcode 15.3 solution materializes while we QA our migration.
from braintree_ios.
We're temporarily downgrading to Xcode 15.2 which is working for submission. While this works, it feels brittle and ideally we should be targeting the latest iOS release. Since Apple introduced the Xcode 15.0 minimum deployment version, I wouldn't be surprised if they chose to enforce 15.3 sometime with all these other requirements in flight.
Thank you for your help and hard work.
from braintree_ios.
Hello,
Which version of the SDK are you using? And what is your minimum deployment target?
We just released 6.15.0 with updates with Magnes version with its own Privacy Manifest yesterday, March 18th. We released 6.16.0 with more minor update today, March 19th.
from braintree_ios.
Hi @KunJeongPark thank you for the quick response.
- Braintree SDK 16.16.0 (also tried this with 16.14.0, 16.15.0).
- Minimum Deployment Target: iOS 15.1
![image](https://private-user-images.githubusercontent.com/53495188/314487591-3d6dfd03-049e-46da-ad28-e5cb566ed4a8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5NjY3NDQsIm5iZiI6MTcxNTk2NjQ0NCwicGF0aCI6Ii81MzQ5NTE4OC8zMTQ0ODc1OTEtM2Q2ZGZkMDMtMDQ5ZS00NmRhLWFkMjgtZTVjYjU2NmVkNGE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDE3MjA0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVlMjFkOWQ4NzdlOGQ3M2FmMDRjY2EwYmNjZmYxNzdmNTU5MzNkOTk3YzRjMTljZWIxZDYxMDhjYTg3ZWZhOWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.4tRVUT1zfpmVYOsdXCSY9CaDRAfAV2khNIfSOfKbzh8)
![image](https://private-user-images.githubusercontent.com/53495188/314487423-154450c7-7915-469f-8e46-501f8ba4ef68.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5NjY3NDQsIm5iZiI6MTcxNTk2NjQ0NCwicGF0aCI6Ii81MzQ5NTE4OC8zMTQ0ODc0MjMtMTU0NDUwYzctNzkxNS00NjlmLThlNDYtNTAxZjhiYTRlZjY4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDE3MjA0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNmMTA1ZjBiNDJkNzdjMmY4ZmY4NWQwZGJhZDA2OWZhMTI0N2ExZjg4ZWNkZDFiODMxYTE2MjgwMzExZjc4ODcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.byAsYcea9cWuHpwn4JxORMA3aigIEcJgoS2Z9iZvMm4)
from braintree_ios.
Thank you.
from braintree_ios.
I was able to successfully archive our demo app with min deployment changed to 15.1 using Xcode 15.3
with our latest SDK, 6.16.0. The Magnes version that we used in the new releases was built with Xcode 14.1, I believe.
This should be compatible with your minimum deployment target.
I'm wondering if it could be issue with Xcode holding on to cached data. Have you tried removing derived data?
Let me investigate to see if I can reproduce this error and also check with my team.
from braintree_ios.
Thank you. I just tested archiving a new app using SPM and versions that you indicated and I was also able to successfully archive the app with a team member. Please let us know if there are any details in your implementation that might be relevant for us to investigate.
from braintree_ios.
After a lot of experimentation, the validation during submission still fails. Findings below:
We saw Firebase listed in a similar fashion, accounting for about 30-60 errors on validation. After updating to the latest version, their workaround modifies their minimum OS version to be "100". This works, clearing out all the errors except PPRiskMagnes.framework
.
After archiving the build and opening the .ipa file, here are the contents of the Info.plist of these 2 for comparison.
![image](https://private-user-images.githubusercontent.com/53495188/314784316-d3dcc241-ccb2-45e9-ba4b-0808c13911bd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5NjY3NDQsIm5iZiI6MTcxNTk2NjQ0NCwicGF0aCI6Ii81MzQ5NTE4OC8zMTQ3ODQzMTYtZDNkY2MyNDEtY2NiMi00NWU5LWJhNGItMDgwOGMxMzkxMWJkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDE3MjA0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEwYmFiZTkyMmU3N2UzZDA3ZTlhM2ViMzFhYTgzMjA0NWFlNzIzMGY2NmFkMjc0MDg2ZTU5ZTA2MDNkMmZkNWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Rl_5AUc4QOpwzdkpLtvlMFjz7j7EtIaQ9cb8Q54Qdmo)
![image](https://private-user-images.githubusercontent.com/53495188/314791017-7c683d43-e422-4033-aca5-880ced26fb46.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5NjY3NDQsIm5iZiI6MTcxNTk2NjQ0NCwicGF0aCI6Ii81MzQ5NTE4OC8zMTQ3OTEwMTctN2M2ODNkNDMtZTQyMi00MDMzLWFjYTUtODgwY2VkMjZmYjQ2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDE3MjA0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcwNjc3OTVjMWNhMDZjM2JkOGMyOWI4YTA3ODdhOGI1ZjE3YmNiNjc2Njk4MzUyYjZlMmY1ZDk2NTRhYWIyMzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.DOHJ4I5a75Msmnx6oEWUtx6YYzoF0bLHZ82OVOn4fVI)
Validating the app against the store produces the following error (either through Xcode > Organizer > Validate App) or using Xcode Cloud via CI.
![Validation Fails](https://private-user-images.githubusercontent.com/53495188/314789315-f4583cd3-439f-416d-9fe8-04516f4918ee.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5NjY3NDQsIm5iZiI6MTcxNTk2NjQ0NCwicGF0aCI6Ii81MzQ5NTE4OC8zMTQ3ODkzMTUtZjQ1ODNjZDMtNDM5Zi00MTZkLTlmZTgtMDQ1MTZmNDkxOGVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDE3MjA0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWViNjE1MGQxNmVjMWNiMDIxNGZkMDJiYzI0MWM3NWYyNjI2NjNiZmJmMjQ1ZDVkNjFmOTA4NTVkYzFlM2U4N2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.5P0z-frVwAwjXuQXCeihbT_T-a_RP8OvtKXiMgqFhTQ)
If you modify the PPRiskMagnes.framework > Info.plist inside of the archive, and then submit it again for validation it passes. So its really just the value of this string provided by the framework blocking the validation.
![Validation Succeeds](https://private-user-images.githubusercontent.com/53495188/314797173-bcf78aef-c27a-41c1-9f62-167f74b9ff52.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5NjY3NDQsIm5iZiI6MTcxNTk2NjQ0NCwicGF0aCI6Ii81MzQ5NTE4OC8zMTQ3OTcxNzMtYmNmNzhhZWYtYzI3YS00MWMxLTlmNjItMTY3Zjc0YjlmZjUyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDE3MjA0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc1Yjk5N2U0MzJiNzg0OGJmZmM3YmVkNjNiODJiYzUwOWQxYWIzMmY0NjVkZTY1ZGRlYTQ5NGI5ZGI1ZjA3YmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.1_ChMk6Y3ppj8CFTuX10g75nfAvIGo9nPlVnsaPT-Jk)
While we could technically implement a post release script as a workaround, it feels quite wrong to be manipulating a framework's internal contents that we don't own. That also means modifying our CI system and changing our standard deployment process.
from braintree_ios.
I apologize, I misunderstood your original question, I thought you had failure in archiving and now I see the error was in the validation. I see the same error in validation and I do see the same Info.plist showing MinimumOSVersion
as 11.0.
Thank you for the screenshots and giving us more details, that was very helpful.
Looks like this is a known issue: googleads/swift-package-manager-google-mobile-ads#62
I will discuss this with my team tomorrow to see if we need to reach out to the Magnes team.
from braintree_ios.
Hello,
I was able to resolve this issue by archiving/validating our demo app with Xcode 15.2.
I also created a sample app to integrate our latest SDK using SPM and archiving/validating with Xcode 15.2
was successful.
The issue with Xcode 15.3 seems to be an Apple bug. Would you be able to file a bug?
I appreciate your bringing this issue to our attention.
Would you be able to give us screenshots/error messages when you use Xcode 15.2?
Thank you.
from braintree_ios.
Hello, I was able to resolve this issue by building our demo app with Xcode 15.2.
Good to hear. Similar to Firebase and others implementing the workaround in their frameworks, what is the plan for PPRiskManges.framework to build with Xcode 15.3 moving forward?
from braintree_ios.
I will contact them about this issue today. They are have been very prompt in their responses.
We were focused so far on trying to figure out a work around so that you can get your app approved.
If you continue to have problems with Xcode 15.2, it would be helpful for us to have a sample app where you can reproduce the issue that you are seeing. Thank you.
from braintree_ios.
Thank you, this appears to be an Apple bug, seems like many have filed radars for this issue.
I have contacted Magnes team to see if there are viable workarounds for Xcode 15.3.
from braintree_ios.
@KunJeongPark did the Magnes team provide any updates on packaging with Xcode 15.3? Any sense on timing.
from braintree_ios.
Yes, they did provide us with the static copy of the framework that we use in the SDK with Info.plist MinOSVersion
modified to "100" last Friday afternoon. I verified that this works with the SPMTest app that we have that integrates our SDK 6.16.0 with PPRiskMagnes framework
when archiving and validating with Xcode 15.3.
I want to test this a bit more and discuss with the team if this is a solution we want to offer.
Were you able to verify that downgrading to Xcode 15.2 works for your app that others have mentioned as a workaround? I verified with our test app that this solution works with PPRiskMagnes
without manually changing the Info.plist MinOSValue to 100.
We will get back to you in the next few days. Thank you for your patience.
from braintree_ios.
You're welcome. I felt uncomfortable about workaround of manually changing the plist MinOSVersion because I am not privy to exact nature of the Apple bug with Xcode 15.3 and I couldn't find any documentation on why this workaround causes validation to pass for this scenario.
Although we had validations pass for multiple scenarios with this workaround and verified difference in archive folder structures between Xcode 15.2 and Xcode 15.3, I was in the middle of testing various scenarios by creating my own xcframeworks just to be sure. Another concern I had was with possibility of Apple fixing their validation issue which might break the workaround.
Thank you. I am relieved as I think that would have been my decision as well.
from braintree_ios.
Related Issues (20)
- Make errors public HOT 4
- Apple Review Rejection for saving the payment method for future transaction HOT 1
- BTVenmoClient `tokenize` async method leaks memory and does not return/throw an error when the user cancels the authorisation. HOT 5
- PayPalDataCollector.h HOT 4
- fetchPaymentMethodNonces in BTAPIClient return wrong nonce types HOT 4
- Staging URLs present in production code - Security Issue - For our Customer HOT 18
- Error on pod install after the release of Braintree version 6.8.0 HOT 5
- Unable to Publish Build to App Store with Xcode 15.0 HOT 7
- Unable to Use The Package HOT 5
- policy required: Xcode15 requires Privacy Manifest HOT 22
- V6 Migration guide has incorrect system requirement HOT 2
- Production Access HOT 1
- Better Error Handling HOT 3
- BTThreeDSecureClient.initializeChallenge never completes HOT 3
- Expose SDK struct definitions to consumer apps to enable overridability exclusively for writing unit tests. HOT 4
- ErrorCode 2 and ErrorMessage is 無法完成作業。forbidden HOT 3
- Command SwiftCompile failed with a nonzero exit code HOT 3
- 📣 Upgrade your integration to continue accepting Braintree payments HOT 3
- Expose `prefersEphemeralWebBrowserSession` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from braintree_ios.