Deploying iPhone and iPad apps on Apple silicon Macs from TestFlight - ios

With the advent of iPhone and iPad apps on Apple silicon Macs, I am wondering how I can distribute beta builds of our app to test on the new hardware without making it accessible to the public.
We have disabled public downloads of our app since we are not sure if they will run up to our standards.
iOS Apps on Mac Availability All of your compatible iOS apps will
automatically be made available on the Mac, or you can select
individual apps below. If you click "Don't Make Available," none of
your existing apps will be made available on Mac.
Is there a way to enable this feature on TestFlight or maybe through a third party service such as AppCenter?
Thanks any helps would be greatly appreciated!

There's an option to enable Test iPhone and iPad Apps on Apple Silicon Macs in TestFlight, you can find this option within testing groups.

You can directly test it on a Silicon-based mac machine with the latest Xcode. You need to choose Mac(Designed for iPad) option there.
After proper testing, you also need to verify your application for MAC OS, otherwise "Not Verified for MAC OS" text will be visible under the application name.
In the above image, you can compare the difference.
If you want to verify your application for macOS.
1-Choose your application on https://appstoreconnect.apple.com/.
2-Choose "Pricing and Availability" under the "General" tab.
3-Click "Verify Compatibility" under "iPhone and iPad Apps on Apple Silicon Macs".
4-Press Verify Button.
Your application will be verified and "Not Verified for MAC OS" text will be removed.
If you require additional information, please, let me know.
Thanks

Theoretical Answer
Since I am unable to test on actual hardware for now, I have an idea that maybe someone on here can test. Considering that Silicon based computers should be able to run any iPhone or iPad application, the could someone confirm if this works:
Download TestFlight on Silicon based Mac
Install development application on Silicon based Mac
This is just a theory and I will remove / edit this post when I or someone else finds the correct approach. If you are lucky enough to have a Silicon based Mac and a developer account it would be greatly appreciated if you could test this out, many thanks!

Related

Restrict download to Macbook / MacOS of published mobile iOS App

We recently had released the app on App Store for iPhone and iPad but once the app got published we do see the Mac OS support and we are even able to download the app in our MacbooxandiMac`.
Is there a way to restrict this or apple does do this automatically as we haven't configured anything for Mac OS?
The whole point of M1 Macs is that they run iPad apps natively. OK, maybe not the whole point, but it's a major part of the meaning of an M1 Mac: its processor is an iPad processor so its apps can be iPad apps.
If you don't want your iPad app to be downloaded to an M1 Mac, you need to opt out. You can do that on the Pricing and Availability page of your app's entry on App Store Connect:
Note the checkbox. It is checked by default. Unchecking it is up to you. You didn't uncheck it, so your app was downloaded to some M1 Macs.

Build or run Mac Catalyst apps on Intel Mac?

I have successfully built an app using Mac Catalyst. It runs on iPhone, iPad, and M1 Macs, and is available now in the App Store as "Designed for iPad". So far, so good.
But it's not available for Intel-based Macs, and I haven't been able to build a version that will run on Intel.
Is this possible? [Edit: Comments below tell me that it is.] If so, how do I do it? And with regard to the App Store, if I do it can I update my existing app to include the Intel-capable version, or does that have to be a separate purchase?
I am using Xcode 13.2.1 on macOS 12.0.1 (Monterey) on an M1 MacBook. I also have an Intel-based MacBook I can use for testing and even building if necessary.
I've been through all the Apple and third-party doc I can find, but couldn't find anything useful. Grateful for any advice!
There are two different ways you can get your iOS app onto Mac.
The first is using Catalyst. This lets you use your iOS code base to deliver a Mac app. This app can be distributed via the Mac App Store or directly to users. Your code base may require some changes to adapt to the expected user experience on a Mac and you may also need to work around facilities that are not available on macOS. Apple has a series of tutorials on turning your iOS app into a Catalyst app.
As Catalyst apps are Mac apps, they can run on both Intel and M1 Macs.
To deliver a Catalyst app you use the "Archive" function in Xcode twice. Once with "My Mac (Catalyst)" as the selected destination and once with "Any iOS device (ARM64)" as the selected destination.
In App Store you need to add both "iOS" and "Mac" versions to your app and the required meta data, screenshots etc. You then deliver both of your archives to App Store Connect and submit the apps for review. Once approved you will have your app on the iOS App Store and the Mac App Store. If you are delivering a Catalyst Mac app then you may want to opt your iOS app from being available on M1 Macs.
In addition to Catalyst, M1 Macs can run apps that are built for iOS as long as the developer hasn't opted-out in App Store Connect - This is a "Designed for iPad" app. You will not see any of these apps for an Intel Mac since they cannot run the ARM64 binary used by in a released iOS app.
Again, you can make changes to your codebase to support the Mac environment and you need to consider services that are not available on macOS. Unlike a Catalyst app you do not need to build a specific Mac version and you cannot distribute the app outside of the App Store.
I did it this way, to get an almost "universal" macOS App, beside the macOS App Store, as Apple is a bit complicated on release a Mac-App.
put iOS, iPad and iMac (from M1 Machines on) to App-Store
copied Xcode project, and tailored a special Download macOS-Version for users having legacy machines, "Silicon + Intel" - so M1, IntelChips will do.
Archive this DL-Version for macOS,
In the next steps of process, do not go to App-Store, but let it "notarising" from Apple for smooth downloads (others are primarily blocked by macOS). Apple approves, that your app is Ok, and from a valid developer after loading it to customers machines.
As soon as notarised, "export" button for dl your copy of unviversal app for macOS.

My iPhone apps cannot be made available on Apple Silicon Mac

In App Store Connect > Pricing and Availability, there is a new checkbox for managing availability on Mac for iOS apps.
I can check the checkbox named "Make this app available on Mac".
But under it, the following message is shown.
Version x.x.x cannot be made available on Mac
(x.x.x is the latest version of the app)
Can I make the app available on Mac or can't it be made available on Mac?
Which is correct, the made-available checkbox or the message?
Apple says "Compatibility with macOS is determined by Apple" in https://developer.apple.com/support/ios-ipados-mac
So, if the app is not compatible, the checkbox should not be shown?
My apps are normal iPhone apps which do not use any special features, devices, or third-party libraries except in-app purchase.
Does anyone know the conditions for iOS apps to be available on Mac?
What message is displayed on your Pricing and Availability's Mac Availability section?
Does anyone know the conditions for iOS apps to be available on Mac?
Not all frameworks are available on both platforms. In order to work on the Mac, you'll have to make sure that your app doesn't use any frameworks that aren't available on that platform.
So, if the app is not compatible, the checkbox should not be shown?
I'd interpret that checkbox as indicating whether you want the app to be available for Mac. There are reasons beyond compatibility that you might want to prevent the app from being installed on a Mac. For example, you might already have a macOS version of the app that you want people to use instead. Apple might be able to determine whether your app can run on macOS, but you still get to decide whether it should run on macOS.
Considering your question, it sounds like you think the app should, but Apple has determined that it cannot in its current state. You'll need to dig into the project and figure out what framework might be preventing that.
I've found that all my iPhone-only apps can not be available on Mac (the "Version x.x.x cannot be made available on Mac" message is shown on the Pricing and Availability settings in App Store Connect), but iPhone-and-iPad apps can be available on Mac (the message is not shown).
I guess iPad-only apps probably can be available on Mac, too, but I'm not sure about that because I don't have iPad-only apps.
It seems that Xcode versions with which apps are compiled are not relevant with Mac compatibility, because my iPhone-and-iPad apps which can be available on Mac are compiled many years ago.
Though all my iPhone-only apps can not be available on Mac, I don't know all iPhone-only apps can not be available on Mac, because Apple says "all compatible iPhone apps and iPad apps on the App Store will be available on the Mac App Store on Apple Silicon Macs" in https://developer.apple.com/support/ios-ipados-mac .
At this time, Big Sur is not released yet, so, it is still possible that the "Version x.x.x cannot be made available on Mac" message for iPhone-only apps might be a bug.
In case this is just a bug, I've unchecked the checkboxes of Mac availability.
UPDATE Sep 25, 2020:
I did nothing but the message "Version x.x.x cannot be made available on Mac" has disappeared. So, I turned the availability on again.

Testing Apps on a Device

When using trigger.io toolkit, there's an option that says
"Build and immediately run your app, either locally, on a simulator or on a connected device."
How do you run the app on a Connected Device? I want to see the app on my iPhone and see how it behaves directly. Is this possible?
Thanks
Marc
I'm going to assume you're working on windows with an iPhone that's iOS8 because that's where you currently can't run your app directly on a connected device.
What we did to "fix" this is creating a Development Provisioning Profile with the UDID's of our test devices and added this to config -> tools in the trigger.io toolkit. In the forge you now select package -> iOS giving you a .ipa file. This .ipa can now be installed using iTunes on your test devices.
It's a bit longer than just clicking run on device like you can for Android but at least you don't have to send it to testflight and wait for apple's approval.
This is possible but it depends on your os.
If your on a Mac you can deploy to both ios and android devices from forge, just connect them via usb and build, grated you need to make sure iTunes sees your devices etc.. there are guides on the trigger site
If you are on Windows, you are unfortunate out of luck right now, this used to work but ios8 broke this so if your building on ios7 you could still do it on Windows, otherwise you would need to use testpiolet from apple

How to enable USB Debugging in IOS 7

I cant understand, how to debug? In android it in "Settings - Developer options - USB debugging". but in iphone with ios 7 I cant find it. Maybe the developer options menu is hidden, but how to show it?
I'm using Xamarin.IOS in Windows 8.
iOS does not allow any kind of USB debugging with an ordinary device. If you have paid for an Apple Developer account, then after provisioning your device, developer options will become available. However, unless you have done that, you will not be able to debug.
It's a sad fact.
Xamarin announced the new "iOS USB Remoting" feature that allows you to deploy and debug to an iOS device that is attached to your Windows pc. However, you still need a mac for building:
http://sdtimes.com/xamarin-announces-new-ways-developers-build-ios-apps-visual-studio/#ixzz47U7prhgb
The forum says that this feature is planned for cycle 8 which is in alpha at the moment:
https://forums.xamarin.com/discussion/65834/ios-usb-remoting
Btw: macincloud.com is a great alternative to having a physical mac.

Resources