Properly archive iOS app with extensions - ios

I've just added a new RichNotification Extension to my project.
Now I've got "myApp" target and two targets for: "RichNotification" and "RichNotificationContent"
When I archive the main target for the App Store works fine but I get this error while trying to upload to the App Store:
ERROR ITMS-90700: "Incorrect Platform. You included the iOS arm64
executable
“myAPP.app/PlugIns/myAPPRichNotifications.appex/myAPPRichNotifications”
in your iOS bundle. Only iOS executables can be included."
Is there any special procedure to archive an app with multiple extensions / targets? Special build config?
Couldn't really find any information, I'm probably searching with the wrong terms.

I had the same problem. I just use pod update, rebuild project on another mac, and reupload build to AppStore and issue gone

We had this error when using Transporter to upload the application from a non-developer computer. The solution was installing Xcode on that Mac. After that the upload process went through without issues.

Thanks to #Mikhailo Karpenko
I solved the issue by re-installing pods
And I had to remove the setting 'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES' from the project settings as this is set by pod iteself

I had a similar issue where uploading an app produced the same ITMS-90700 error but it was related to a watch app executable. In the end it turned out that I had an old watchOS target in the build settings which was causing the error.
Not completely related to this question, but this is the only question I found on SO that referenced error ITMS-90700. Hopefully it helps someone.

I solved this issue by making sure all of the build targets in my project were built for the same iOS Deployment Target.
We added an extension in our app and it defaulted this value to iOS 12 whereas the rest of our app was configured for iOS 10. Regardless of the valid architectures field in the build settings, the extension was only being built with 64-bit support, but the rest was being built with both 32-bit and 64-bit.
After making this change, I ran lipo -archs on the extension to validate that it was built for both arm64 and armv7.

Related

WatchOS App for React-Native IOS app is not uploading to App Store Connect (ITMS-90496: Invalid Executable)

We have developed a Watch App for our React-Native IOS app using SwiftUI. After the the integrations are completed, we've tried to upload the build to TestFlight for testing purposes. In the process, since enabling bitcode is mandatory for WatchOS apps, it is enabled through Project Target -> Build Settings -> Build Options -> Enable Bitcode : Yes (And also tried to enable bitcode for Pods target). However, there is no other option to enable bitcode in the Watch Targets (both watch app and watchkit extension).
When we tried to upload the build to TestFlight, it got rejected with the error code ITMS-90496: Invalid Executable - The executable "{ProjectName}/Watch App WatchKit Extension.appex/WatchKit Extension" does not contain bitcode.
I have also read that in order to make the whole project bitcode enabled, you need to make sure that the libraries are also bitcode compatible. And since the app is a React-Native app, it contains a lot of 3rd party libraries. If anyone who tried to add a Watch App to an existing React-Native project and managed to upload it to TestFlight can help us during the process, it would be really helpful.
For those who are experiencing the same issue, our was in RN 0.63.* version, and the third party libraries were kind of old as well. After upgrading both RN and the third party library versions, the issue is gone and we're now able to upload to Testflight!
In my case it helped to open the project.pbxproj file in an editor outside of Xcode (e.g. VSCode) and remove all lines that contain ENABLE_BITCODE.
Seems the default settings of ENABLE_BITCODE are the right ones. Somehow Xcode puts in these lines without needing them.

Xcode 9.3 cannot submit build to App Store

I've just updated to Xcode 9.3 and am having the following issue when submitting my app to the app store:
Invalid Bundle - The app cannot be processed because options not allowed to be embedded in bitcode are detected in the submission. It is likely that you are not building the app with the toolchain provided in Xcode. Rebuild your entire app with the latest GM Xcode and submit the app again.
I've double checked and all the frameworks linked to my project and they have all been compiled with bitcode enabled. Only one of these frameworks is a Carthage framework and I've ensured that it's been rebuilt using carthage update.
I'm completely stumped and don't know what else to try.
Thanks ahead for your help!
ITMS-90562: Invalid Bundle - The app cannot be processed because options not allowed to be embedded in bitcode are detected in the submission. It is likely that you are not building the app with the toolchain provided in Xcode. Rebuild your entire app with the latest GM Xcode and submit the app again.
This error might be caused by one of your external frameworks. You can try to rebuild the app from bitcode by yourself and that might give you some more informations. To do that in Xcode archive your app, then in organizer, in archives tab click "Distribute App", select "Development", and after that select "Rebuild from Bitcode" and proceed. After that Xcode will probably show more extended information about the problem which might help you solve it.
I had this problem, using Apple's latest toolchain, when including a dynamic framework built with hidden symbols (ld options -bitcode_bundle -bitcode_hide_symbols -r -x).
When the symbols weren't hidden, the app was processed by Apple as expected.

Error: No such file or directory while archiving iOS and WatchOS App

i have a problem which puzzles me a few days now and i cannot find a solution.
What i want to do is archiving an iOS app including a watchOS app in Xcode.
The normal debug build (of both iOS App and WatchOS App) works fine on real devices and simulators (note: CocoaPods included). But when i try to archive the project the following error occurs:
error:
/Users/username/Library/Developer/Xcode/DerivedData/Build/Intermediates/ArchiveIntermediates/AppName/BuildProductsPath/Release-watchos/AppNameWatch.app:
No such file or directory
I tried to clean up everything, delete the DerivedData folder, restart Xcode, delete the App from the devices, restart the Mac... but nothing solves the problem. I also tried to archive without CocoaPods integration (I removed CocoaPods from my Project completely). I also played around with the target build phases (removing the embedded watch content).
Maybe somebody has an idea...
Thanks
Steffen
I managed to solve this error, marked as PBCXCp Error, by correcting my Target Dependencies from Project->Build Phases. Here is how the Target Dependencies should look:
iOS app target
Watch app target
Watch extension target
I've accidentally added my iOS app as a target dependency to my watch extension target and that generated the error.
Hope it helps, cheers.

xCode6 > testFlight "Missing 64-bit support "

Been all around with this one, still needing help
1) In xCode when I am archiving to submit to TestFlight I get the following error
2) I have researched and changed the architecture to Arm64 and the Debug to Yes The Build to No
The build completely Fails
3) & I get the LLVM Warning
So I change the optimization Level from Fastest to Fast
4) Normally I could build to my phone / unplug it and then Archive.
But I can't get as far as a build to my phone anymore. This is a project coming from Unity that has worked well in the past.
I work with AR some bundles that now give errors so I take them off
I also add the Core Text Framework to get rid of the Mach-O errors
I'm running the latest Unity the latest xCode in hopes of bug fixes
I have even tried reverting to older version of Unity
Thanks
~ Be
You should use latest version of unity and Xcode. When you build your project in unity, change architecture type to universal in player setting.

This binary does not seem to have been built with Apples Linker

I've built an app using phonegap build for ios and android. Both versions work great using their respective developer versions. The android app was sent off to google play smoothly and was quickly available on the android market. From there it is downloaded and installed without a hitch.
The fate of the ios version is not so great. When I upload the ipa (mmm, beer) phonegap build gives me using Application Loader I get the following error,
ERROR ITMS-9000: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."
I've reached out on phonegap build's community page but received no help.
I've reached out to the apple developer page and they told me to learn how to write native code.
I've checked, double checked, and recreated certificates and provisioning files. I'm sure they're for production. I am at a loss as to how to proceed. It seems I'm the only person to ever get this error from a phonegap build.
I saw this on stack overflow, Application Loader error, binary is invalid, I did what it said but my results more or less matched what he said was the working one. You can seem my comment on the answer.
I'm on an old mac. I'd downloaded the latest application loader (2.9.1) to upload the build.phonegap ipa. While attempting to build the ipa myself i downloaded xcode 4.6.3 and it included application loader 2.8. Since it was different I thought I'd give it a shot using the exact ipa that had failed me so many times before. And it went through... I don't know what it was that made apple finally like my app but they do now and I'm not going to complain.
I got his issue, when try to use Pods with minimum support version 8.0.
But my app's minimum support version was 7.0.
I changed min version to 8.0 and fix version in Podspec:
platform :ios, '8.0'
and run pod install
After this the problem is gone.
for me, the problem was I had added one framework with drag and drop and when I deleted the framework and installed it through cocoapods the problem was gone

Resources