How to package iOS app for enterprise deployment with all icons? - ios

Not too sure if this is programming-related enough.
I'm using Xcode 9.2.
My organization is looking to deploy a custom iOS app built using our Apple Enterprise account. We are using Blackberry UEM to deploy the app. The problem we're seeing right now is that the high-res app store icon in Assets.xcassets gets stripped out when archiving my IPA, so when we add it to UEM, the icon looks quite bad in the UEM store page. I've tried playing around with the archive settings, including app thinning, compiling from bitcode and stripping swift symbols.
How can I force Xcode to leave the store icon in my xcassets in the final built ipa file?

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.

Archive distribution problem for watch extension app

We've been developing and testing a Watchkit Extension app (iOS 12.1 and WatchOS 5.1) for the past few months and successfully testing it on a simulator and local, connected devices (iPhoneX + Watch 4) using xCode 10.1.
This past week we built an archive for posting to App Store Connect. We got stuck in the Archive Organizer after archiving for release. The "Validate Content" button was disabled, the Version is blank, the Identifier is blank, and the Type is "Generic Xcode Archive". Unfortunately, all we can do is export the .app files from the Archive Organizer; we can't push the archive to App Store Connect.
We made sure the build scheme was set to Release and we archived to a Generic iOS and WatchOS device. We also set Skip Install for the three targets (iOS app, Watch app, Watch extension) to No as we assumed none of those are static libraries. We even tried every permutation of Skip Install settings. We looked at the issue in the following link and we have no Header steps in the Build Phases of any targets:
https://developer.apple.com/library/archive/technotes/tn2215/_index.html#//apple_ref/doc/uid/DTS40011221-CH1-PROJ
We have two frameworks we included in the project using carthage. We thought maybe these were causing issues, but we rolled back to a branch before we added them and still have the same problem.
We made sure the build in the Scheme is set to a single target and cleared out the Derived Data folder. Still no dice.
I’m not 100% sure from your question, but are you trying to push an archive of the watch app to the App Store?
If so, that’s not how you submit the app. The Watch app is embedded in the “regular” iOS app, and to distribute it you need to archive and submit that app as usual.
If I’ve misunderstood, feel free to ignore this!
I had the exact same problem. When I changed Skip install on the watch app and watch app extension to YES, it suddenly worked. No idea why.

XAMARIN IOS: Cannot submit to iTunes "Missing required icon file"

Since upgrading to xcode 9.0 i can no longer submit my xamarin apps to itunes connect. I get this error:
ERROR ITMS-90022: "Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 7.0."
Which suggests I dont have either an app icon for 60#x2x or 40#3x, I can definitely see i have both in my asset catalogue! ive tried creating the asset catalogues in both xamarin studio and xcode but neither seem to work. My info.plist definitely also has the asset catalogue selected for the app icon. I can see some people needing a pod update to fix the issue in xcode 9 but being a xamarin app this isnt much good to me. Any help appreciated.
I found that this is a bug with xamarin and xcode 9. Luckily im using microsoft mobile center for CI of my apps so i was able to configure the build to use xcode 8.3 to generate the ipa for now until xamarin release a bug fix.
I had exactly the SAME bug than you and tried everything (deleting all xcassets and icons and redo it all. Until I found that post: https://forums.xamarin.com/discussion/104004/missing-app-icon-after-updating-to-ios-11-sdk
To summarize, the project I worked on had an another project linked to it with an xcassets catalog in it. I don't know if it's Xcode or Xamarin related, but it seems that at archive time, the secondary xcassets would mess something up on top of you primary project's xcassets that makes iTunes Connect not recognize the app icons.
The solutions are either of these:
Move every secondary project's xcassets of your workspace into your primary project. (aside your xcassets containing your app icons, or merge them all in one)
If that's not possible, remove the secondary project's xcassets and just the images it contained the old style way by adding them with the right name and #2-3x indicator.
If these solutions are not possible because you are using a cocoapod that includes an xcassets, I suggest making a pull request to the repo or entering an issue.

How to live tvOS app in app store

I am working with a tvOS application and I want to live that application to apple tv-Store(tried both XCode upload and application loader ). But I get the following error
"Unable to validate application archive of type 0x64"
Please have a look at the attached screenshot that I get in response.
"I am not having apple tv so that I can't select that apple tv option like when we connect iPhone to mac that shows device there. I select generic tvOS device and make an archive to upload the build to the app store." –
Please help me with this. I'll be really very grateful to you.
Thanks in Advance.
Here's my attached screenshot
Use "Application Loader" v3.1 or v3.4 instead of Xcode this will help you to upload a TvOS app.
Source:- https://forums.developer.apple.com/thread/20045
Application Loader will upload your application binary files to the App
Store. Application Loader offers fast uploading, stable connections, and early validation warnings.
You will get Application Loader by the following step:-
Go to Xcode > Open Developer Tools > Application Loader
If you didn't find it then this link will help to download Application Loader -Where to find Application Loader app in Mac?
I check my whole project architecture and build setting and everything's ok. After all, I check project Asset folder I use top shelf image of different size by mistaken.Once I change that application successfully uploaded to AppStore.
This error is due to archiving a Simulator build instead of an iOS device build. Make sure to select the correct device build in the popup menu near the upper left of Xcode before doing an Archive build that you plan on submitting to the App Store.

Minimum Xcode version to upload to App store (As on February 2016)

I am uploading an update to my existing app in the app store. I have used Xcode 6,4, now in latest Xcode (7.2), multi tasking support in iPad is a new addition and also bit code support. The archive file is double the previous build and also Launch file warnings are displayed when building. Can I use Xcode 6.4 itself or the new Xcode 7.2.
Apple states that you should use the validate feature on the archive to check if it can be published on the App Store. Quoting:
For compatibility reasons, the App Store will often accept apps that are built with some older versions of Xcode or Base SDK.
To determine if an older Xcode configuration is currently accepted by the App Store, you can choose "Archive" under the "Product" menu to make an archived build, then use the Validate feature, to test if that build meets minimum requirements for submission to the App Store.
Source: What version of Xcode and SDK should I be using when building for the App Store?
As of today - May '16, the link
use the Validate feature
in that page is broken, the validate feature is located on the right hand side of the Organizer, under the big blue button "Upload to App Store..."

Resources