We're trying to automate the release of our app to the Mac App Store. I've been trying to achieve this using fastlane. I managed to get this tool working for submitting the apps' metadata (release notes, screenshots etc).
I can also build the app using the gym module, however this results in a .app and not in a .pkg that is needed for submission to the App Store. Even when I use
export_method: "package"
I cannot imagine I'm the only one trying to achieve this, but I cannot find an answer if it is possible at all. And if possible, how to achieve this.
I have a (old) work in progress PR made for this - https://github.com/fastlane/fastlane/pull/12195. Majority of our users are mobile so it has been hard for me to get testing on this :). If you'd like to comment on that PR I would be happy to revive it and work with you on making this work for you!
Related
I'm using Google Play Store to distribute an app.
For a certain issue, I would like to install an OLDER version of my app to one of the client's device.
I'm struggling to do so, is there any way to do that?
No matter how and which "testing" method I apply, Google Play automatically shows the HIGHEST version of the app which is the "release" version ignoring the old test versions.
Creating an APK would be NO way because I need Google Play's own signature in the apk to make things work (to test the things we would like to)
Is there any way at all to distribute my OLDER app version from Google Play store?
(By the way Google's testing methods are inexpressibly unusable even apart from this problem. You never see what really happens, you cannot really manage the testing channels the GUI is miserable the notification email is late the testing is slow and painful you don't see the version number in the Google Play Store, there are like 3 methods to do so and the difference between them is not self explaining, I give 1 start to the developers who made these parts of Google Play I hope they read this.)
Thanks in advance.
From Google Play Console go to App bundle explorer
Then choose the version you want to install
Go to Downloads tab
click on Copy sharable link
install it from you device using this link
Note: the device's Google Play account should be an internal tester and enable internal testing from Google Play on this device.
TestFlight is a welcome change for iOS. It makes distributing beta versions painless for both the developer and the testers.
Does Apple support TestFlight for Mac OS as well? I've done quite a bit of searching and haven't found anything conclusive one way or the other.
We have an OS X app store app that turns out to have an install problem with Yosemite. We failed to do a first install test against Yosemite, so we missed the problem.
I developed a fix and would love to have some new users try it out. It's petty complex, difficult and disruptive to have current users delete the entire "container" directory and kill the preferences process in order to simulate a fresh install.
I also don't like the idea of distributing an unlocked version of our app. If that gets out, it could damage sales of the app store app.
I've done things like added an expiration date to a test app (weak protection) or created developer ID builds that will only run on machines from a specific list of MAC addresses. The last approach works, but it's tedious and painful to maintain, and requires that the tester give up uniquely identifiable information about their machines.
I'd really like the ability to create apps that will only run on beta tester's machines, like TestFlight does for iOS.
This is a developer question more than a code question. It isn't a great fit for SO, but I can't think of a better Stack Exchange site to post it. If anybody has a suggestion of a better site to post the question I'm happy to move it there.
This document at Apple Developer explains it.
It says you should register the testers' devices and generate a provisioning profile that includes them. Which means, theoretically, the app won't run on any device not in the list.
Here is the strange thing about it however: I have two Mac computers and I didn't register either of them with my provisioning profile (in fact the list of registered devices is empty right now), but I can run the exported app image on both easily. The app is sandboxed and signed, ready for App Store distribution, but nevertheless it runs on unregistered computers. It might be that with an empty device list it allows to run on any, or it might be that I'm doing something wrong with code signing.
I will update the answer once I figure this out.
Good news for everyone (including me) waiting for TestFlight for Mac - it just got announced on WWDC21.
Unfortunately, it might take another few months until it is out of beta and publicly available for everyone. But since this question is almost more than 6 years old, its just a fraction!
I"ll update the answer if there are more details available
Update
TestFlight on Mac will be available to download on the Mac App Store. It will be similar to the iOS version of TestFlight offering almost the same functionality to both developers and testers.
It supports both native Mac apps and iOS apps on Apple Silicon!
It is now available.
TestFlight is not available for Mac apps.
source: https://testflight.apple.com/
😕
When developing online game I would really like to avoid supporting different protocol versions. The server can check the version of a client and deny login until the client gets updated. But the problem here is that I need the app update to become available simultanously at the same time on AppStore and Google Play.
Is it possible to do? How do you solve such versioning problems?
Well, I am not sure how it works for the GooglePlayStore but if you choose Developer Release instead of automatic then you could just release it in the moment it approves on the GooglePlayStore and about 30mins. later your iOS app will be online and available as well. That's what I'd do.
For those distributing Mac apps outside the Mac App Store, how are you planning to support updating and sandboxing? I'm guessing most people's answers for the time being is that they're not, but I hope that eventually non-MAS apps could be sandboxed just like MAS apps.
To use Sparkle, your app would need network access, which could be granted, as well as the ability to overwrite itself in Applications. Currently you could do this with the com.apple.security.temporary-exception.files.absolute-path.read-write entitlement, but that's not a good solution. It will likely go away, and even if it doesn't there's little point in sandboxing an app if you're going to give it full filesystem read-write access as well as network access.
Has anyone already gone down this path and found a good solution? I ask because I try to keep my MAS build and my non-MAS build as identical as possible, and I'm currently looking at having my MAS build sandboxed and my non-MAS build not.
In a conversation started by #chockenberry on twitter, #andy_matuschak responded favorably to creating an XPC service for Sparkle.
I have a pull request open on GitHub that actually creates the XPC service. Hopefully, this will get incorporated into Sparkle soon.
We actually have two versions of our app: one for our own web site and one for the app store.
I recommend using Sam Deane's approach which you can find in his GitHub repository. It works well for us.
Not yet.
As of 1.15 Sparkle does not support sandboxing, and the patch that is floating around has a vulnerability that allows complete bypass of sandbox security.
Right now, the only way I can test my app on a device is to physically plug it into my laptop, and build/deploy from xcode directly to it. Is there any way I can do this remotely without physically plugging the device into my mac?
To second what Moshe and Clay said, you can use a number of services that provide over-the-air distribution.
TestFlight is a fully-featured service that provides team and beta campaign management in addition to over-the-air distribution. It is a hosted service so there is no setup.
Hockey is similar in its execution and does a great job as well. I haven't used Hockey, so I can't speak to it's full feature set.
Full disclosure, I am one of the mobile devs on TestFlight.
You cannot install an app without physically connecting it to your mac until it is under development phase.Second way is to create a build and then install that build in your iPhone through iTunes,so Xcode is not required.But this is generally used to show intermediate builds to Client.So you will have to continue following the same process my friend...
This is a good question and the unfortunate answer is that this is really not possible. You can try Ad Hoc builds as an alternative or a service called TestFlight.
An alternative to TestFlight is Hockey, but it's more work. I use TestFlight, and I like it. A friend uses Hockey with good results.