How submit macOS screensaver(.saver file) to Appstore? - macos

I created a mac screensaver & I'm able to test it with archiving it & installing the '.saver' file.
But how can I submit this '.saver' file to Appstore?
The 'Transporter' app is not accepting it.
I could't find any tutorial about it.
I have 2 targets in my project, the default one is that I mentioned above, another one can run on my mac directly from Xcode as an app.
I'm not sure about submitting this one, What if it didn't placed on user's mac screensavers window...?
Because when I run this on my mac, it runs as a normal mac application in a window!
Update
OK, I submitted it on the Appstore and it approved! but, as I expected, it installs like a normal macOS app & doesn't appear on screensavers list.
how can I submit this '.saver' file to Appstore?
Update 2
I researched a lot about it and found out as 'Max' said on comments, its not an app and should not be on the Appstore itself, we should build and app to copy 'screensaver.saver' file in to it, and then copy the screensaver file to user system, or run it from user OSX so it will install automatically.
Now the real deal and the huge problem and the mother of all headaches appear here!
The Notarization Process!
Now if a user install our screensaver & everything works fine, still the screensaver will not run, and user will see a message like this when he/she wants to run it:
OK, now we need to notarize our 'screensaver.saver' file to fix this.
I tried very hard to do that, but I failed, because of its complicated process... and because all of them was about PKG & DMG files.
But I'll put the references here to help others, Please help yourself & if you found out how to do it right, post an answer here & help other non professional developers who can't speak Alien languages...
Awesome explanation #1
Awesome explanation #2
Awesome explanation #3
Some related question that might help
Cheers!

Related

Stuck at “Authenticating with the App Store...” when publishing my app [duplicate]

We have been trying to submit an app to the iTunes store using Application Loader for three days and keep getting stuck at the "Authenticating with the iTunes store" step.
We have read many forums (including stackoverflow) and tried what was suggested:
making a new provisioning profile
using different or multiple versions of Application Loader
changing proxy settings
rebooting the Mac
uploading at a different time of the day, etc.
We have even left it running overnight and have not had success with getting past this step. Unfortunately, no feedback is given about what the issue may be, and we have not gotten any error messages. We have submitted multiple apps without any difficulty in the past but are completely stuck this time!
How were you able to solve it?
This only started happening to me today (May 2017) and no answers in this thread solved my issue. The resolution for me was from here;
https://forums.developer.apple.com/thread/76803
Open Terminal. Change to home directory,
cd ~
Move the current transporter directory,
mv .itmstransporter/ .old_itmstransporter/
Invoke the following file to let Transporter update itself.
"/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/bin/iTMSTransporter"
Wait till it updates, then open Xcode and attempt upload.
You have to agree to a new sign up in Application Loader. Select "Application Loader" under the "Xcode -> Open Developer Tool" menu (the first menu to the right of the Apple in the menu bar). Once you open Application Loader there will be a prompt to agree to new terms and then to login again into your iTunes account. After this any upload method will work.
Just wait. In a few minutes all will be ok.
Dec 10th 2019, Xcode Version 11.2.1, MacOS X 10.15.1
I was facing exactly same issue yesterday and I thought it might be network issues, at least it looks like so. But this morning I had tried couple different networks and several VPN connections, none of them is working!
The highest voted answer here asks me to reset a cache folder named .itmstransporter under my home dir, the run a program iTMSTransporter under a specific folder, but I can't find both of them.
But soon I figured that it is the cache folder for the people who uses the legacy uploader program: Application Loader, which is deprecated by Apple and can be no longer found in Xcode 11. Then I found that the latest Xcode has located iTMSTransporter here:
/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/itms/bin/iTMSTransporter
And its cache folder is here:
/Users/your_user_name/Library/Caches/com.apple.amp.itmstransporter/
I removed my existed cache folder, and run iTMSTransporter without any parameter, it soon started to output logs and download a bunch of files, and finished in 2 or 3 minutes. Then I tried again to upload my ipa file, it works!!!
CONCLUTION:
Either the old Application Loader, or the latest Xcode, uses a Java program iTMSTransporter to process the ipa file uploading.
To function correctly, iTMSTransporter requires a set of jar files downloaded from Internet and cached in your local folder.
If your cache is somehow broken, or doesn't exist at all, directly invoking iTMSTransporter with functional parameters such as --upload-app in our case, iTMSTransporter DOES NOT WARN YOU, NOR FIX CACHE BY ITSELF, it just gets stuck there, SAYS NOTHING AT ALL! (Whoever wrote this iTMSTransporter, you seriously need to improve your programming sense).
Invoking iTMSTransporter without any parameter fixes the cache.
A functional cache is about 65MB, at Dec 10th 2019 with Xcode Version 11.2.1 (11B500)
I was stuck at "Authenticating with the iTunes Store" today. I had used the same version and build number as a previous submission. After I updated the build number, the upload went fine. I don't know if it's related, or if it was a coincidence.
I had the same issue for months, I just removed hotspot shield and private tunnel applications from my computer and tried to upload my app and everything worked just fine. so I suggest if you have installed any VPN application on your computer, remove the application and then try uploading your app from either application loader or xcode's organizer.
Try answer mentioned in this Reference Link, it really worked for me and for others as well.
Mentioning answer here as well.
Open Terminal and run:
cd ~
mv .itmstransporter/ .old_itmstransporter/
"/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/bin/iTMSTransporter"
iTMSTransporter will then update itself, then you can try uploading in XCode again or via application loader.
There is no magic fix. Itunes is just working bad. Lately is having more and more issues and it takes more and more to update and send an ipa to the store.
I had this issue with AppLoader and Xcode organiser too and after trying multiple times it just went through.
Changing network connection helped.
Turned off wifi on my phone
Enabled 3G
Created HotSpot
Connected my mac to the hotspot and got through the authetication issue
In my case, I hadn't agreed to the newest Developer Agreement. Just run Application Loader once, click on [Accept] to agree, then quit the Application Loader and the Upload to App Store should work fine.
Following worked for me.
Open another instance of Application Loader.
( Select "Application Loader" under the "Xcode -> Open Developer Tool" menu)
"Agree" to the terms.
After completing Step 2. First instance of Application Loader proceeded to the next step and build got submitted.
I have also encounter the same issue. One possible solution is to go to Xcode -> Preferences -> Accounts and from the left menu select on App ID then click on the View Details and tap on the refresh button. while reloading you will get following error
The selected team's agent, 'ADMIN NAME' must agree to the latest
Program License Agreement.
If you will not get above error, Following solution will not work.
It means that you need to login into the developer account using Admin login and accept that latest agreement.
Then you will be able to upload binary on the app store.
The updated answer for Xcode 11.x.x and Transporter application, open terminal:
rm -rf ~/.itmstransporter/
"/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter"
Wait a while
Problem solved!
I'm running MacOS Mojave 10.14.6, Xcode 11.3.1 and Transporter 1.1.1, and always got stuck at the Authentication with App Store stage, no matter how long I wait, I tried uploading using Xcode, using xcrun altool, Transporter, nada.
Finally I got it working by exporting the ipa file to a new Macbook (10.15.3, Xcode 11.3.1, Transporter 1.1.1), and used the Transporter app to upload it there.
The key difference is the Transporter tool on my new Macbook asked for a 6-digit code as authentication while the old Macbook did not, I suspect the authentication token on my old device expired but the system didn't ask for a new one when trying to upload the app. I had 2-FA enabled.
So I think forcing a manual re-authentication when you upload the app is the answer, the only other difference is the MacOS version, but I didn't test if it'll make a difference.
I solved the problem by removing ~/Library/Caches/com.apple.amp.itmstransporter.
For safety, renaming will be better,
cd ~/Library/Caches
mv com.apple.amp.itmstransporter com.apple.amp.itmstransporter.old
Then, xcrun altool uploaded my ipa successfully.
By the way, I'm using Xcode 11.x & 12.2, macOS Catalina.
In 2020 Dec, the fix did finally worked for me was restarting my mac.
Today I ran into this issue, on Xcode 11.2.1 I solved it by going to Xcode -> Preferences -> Accounts -> Tapped on the '-' next to my Apple ID, then signed in again. This fixed it for me!
In April 21, 2021, I followed #DawnSong's answer, outlined in the image below but I also restarted my Mac and voila it worked.
Spec
Xcode 12.4
macOS Big Sur 11.2.3
You may try to relogin your ITC account via Application Loader.
Just try a different Internet connection. I tried all the solutions above but none worked. However, when I tried using my cellular connection (instead of my DSL connection that stands behind a firewall), it worked immediately.
It might be a network issue. If you are running inside a virtual machine (e.g. VMWare or VirtualBox), try setting the network adapter mode from the default NAT to Bridged.
All i did was duplicate my Application Loader.app in /Applications and
ran both Application loaders at the same time.
this solution is out there, it used to work for me, but today not even that! what I did and worked is that (2 instances) + uploading with XCode (organizer). Had to try a couple of times and it worked.
hope this helps someone, this bug has been there for quite a lot of time now() an apple doesn't seem to care too much
Another reason could be that you have changed the machine from which you're submitting the app. Or the user account on the machine. The new machine may lack the private key and/or certificate for the App Store. Although a certificate with the correct name is displayed in Xcode.
In this case, go to https://developer.apple.com -> certificates, use the plus sign (+) to add a new certificate (distribution), and follow the steps to request a certificate for the private key on your current machine. After installing the certificate, authentication may work.
For me I tried almost all the suggestions given above but the problem still reoccurred after the first success in uploading to App store. Until I found this website. In summary, do the following
Open terminal
Run this command:
rm -rf ~/.itmstransporter/
“/Applications/Xcode.app/Contents/Applications/Application
Loader.app/Contents/itms/bin/iTMSTransporter”
Note: this command(which is different from others above) will delete your ITMSTansporter folder and create a new one and ensure that xcode is quitted before running this command.
3. Start Xcode and all should be well.
Using Xcode 12.3 Distribute App and xcodebuild both got stuck today at this point.
I finally was able to solve this. Peeking around my system I found 3 versions of iTMSTransporter.
Printing the version of each using ./iTMSTransporter -version gives the following results:
/Applications/Transporter.app/Contents/itms/bin/ has version 2.0.0
/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/bin/ has version 2.1.0
/usr/local/itms/bin/ has version version 1.9.3
So it looks that old version in /usr/local/itms was used by Xcode. After deleting /usr/local/itms I was able to upload my binary within Xcode 12.2 and using the xcodebuild command line tool.
Check your firewall
Network settings - (Check with network admin, usually they have blocked apple services unknowingly)
Check your system data/time.
I had same sort of issue, I resolved it by getting direct access to internet.
Also check Application Loader logs to see at which point it gets stuck.
I think I followed all the approaches given, but none worked for me.
My own approach that seems to work for me is to go thru the initial steps to upload a binary, then, after selecting the binary, do NOT click Send; instead close the window, and in the new window that will appear, start anew: hopefully it will go thru.
Found the solution:
I was uploading the build, Every activity went well except “Authenticating with the iTunes store”.
I disconnected my LAN cable and Connected my MAC with my mobile hotspot. and authentication problem was solved. If you have a limited internet plan then as soon as you pass authentication stage, again connect your LAN so that it will upload the app from you LAN cable's internet connection.
my upload failed each time when I uncheck the "include bitcode" option when uploading. So I checked the "include bitcode" option and upload went well.
Check your Firewall, If it is "On" then just Off it, then try

Unity game compiled in Windows doesn’t open in Mac

I created an Unity game in Windows and I wanted to pass it to a Mac computer. I built it for Mac and I uploaded the .app folder to Google Drive as a .rar. Then, I downloaded it in a Mac and I unzipped it. When I try to open it, it shows the error message “Someapp.app can’t be opened”. It doesn’t explain why. I think the problem isn’t from Unity because the log file is empty after the error. Can anyone help me?
I needed to make the actual executable in the .app folder, well, “executable”.
Please try:
Open up a Terminal and navigate to your app folder:
cd <PATH_TO_YOUR_APP>/<APP_NAME>.app/Contents/MacOS/
This folder contains the actual executable file which Windows apparently didn’t make executable. Let’s add the executable flag:
chmod +x <APP_NAME>
Afterwards I could start the app.
I made the Build for my project for both PC and Mac, however I had massive issues getting the Mac one to actually work. Here is the tutorial I used to make the builds which was suppppper helpful, but it didn't help fix my issue:
https://www.youtube.com/watch?time_continue=3&v=7nxKAtxGSn8&feature=emb_title
I just figured out how to make the Mac build work with a friend and it was a bit of work. Once you follow the video's directions exactly for the Mac version, you can send the file to your Mac but when you do it will be labeled MacOS and then when you try to open it it will most likely fail and say missing application to open.
From what I have learned, this is because the compression actually corrupts the executable file to open it on the Mac. To fix this, you have to use Terminal to navigate your way into the file and unlock the permission settings that were changed due what we believe is from the compression.
I honestly can't remember where I found this code but the navigation part I got from the other answer here, but you need to open up a Terminal and navigate to your app folder:
cd <PATH_TO_YOUR_APP>/<APP_NAME>.app/Contents/MacOS/
and add the following:
chmod -R 777 [applicationName].app
This unlocked the permissions on the application but when the app was opened, we had to allow permission through the Mac firewall to let it run on the computer. Once we approved permission, the app ran no problem.
I hope this helps and I'm by no means a professional with this so but my friend and I can try to help in anyway possible.

Mac App not being signed correctly

I know there are many similar questions on StackOverflow, but I think I've read them all and none quite apply.
I have a Cocoa app that I am trying to sign for distribution on the Mac App Store. I have created my distribution profile and I believe it's all hooked up correctly in XCode. When I build the app, XCode prompts me about signing and the build finishes with no errors. When I look at the build messages, I see a happy green check mark from Code Sign.
Further, I'm using Receigen for the receipt validation, and when I use it to inspect my built app, it shows that the app is indeed signed and that the signature is valid.
However...when I copy the app to a different machine (running Snow Leopard, if that makes a difference) and launch the app there, I see that after the app quits with code 173 for receipt validation, Console shows that storeagent logs the message "Unsigned app." Similarly, when I inspect the app with Receigen, it shows that the app is signed but not valid. Why could this be?
Tangentially, in case it helps spur some ideas, the context of this is that I'm trying to get receipt validation working, and on my main dev box (the one in which the app shows as being signed correctly), when I exit with 173, I am prompted with the iTunes credential challenge, although the receipt is never retrieved from the store. On the other machine, I never even receive the credential challenge (I presume and hope this is all because of the same issue).
I'm really at wits' end here. Thank you, fine people of StackOverflow, for any ideas you might have.
For the record, the answer is in a comment from #Brian Rak:
Update: I finally got things working, but unfortunately, I was never
able to determine exactly what the issue was. However, it appears
something was configured incorrectly or corrupted somewhere in my
project file. I created a new project, copied all my source code and
resources into it, and rebuilt, and the problem magically went away.
My advice if you're seeing this would be to create a toy app that uses
the same bundle ID and if you can get it working, just proceed with
that one as I did.

Web update application with Firemonkey on MacOS

I'm making a Firemonkey application for both Windows and MacOS, and now I'm working on making it able to check online for updates and download the update. I have got it to work on Windows, by renaming the running .exe file, download the new one and then run the downloaded .exe, works as it should.
Now my problem is MacOS, I don't have much experience with MacOS, so I don't really have any idea how I should do this :/
And even less idea as I store somedata files inside the 'program.app' folder.
So I'd really appreciate some help or ideas on how I should try to solve this problem?
Apps on OSX are really just a package of files. If you go into finder on OSX and right click on an app you will see show package contents. Open that up and you will see the constituent files that make up the "app". From there you have to decide what you need to replace.

OS X: Run my application automatically right after installing this .pkg file

I have developed a mac application and using Product->Archive->Share in Xcode to create a .pkg file and will be submitting to Appstore. I would like to run my application automatically right after installing this .pkg file doing this way. I know using PackageMaker, it is possible to write pre and post scripts. But, Appstore is not accepting any .pkg file which are created using PackageMaker, so i'm using Product->Archive->Share in Xcode to create pkg file.
Could someone advise how can i run my application automatically right after installing this .pkg file?
Thank you!
You're not supposed to be able to do this. Part of the point of the App Store is that there's a uniform, consistent installation experience—the app downloads, installs silently, then shows up in LaunchPad for you to run if you want to.
Remember when getting Xcode from the App Store used to mean you got an app called "Install Xcode.app" in /Applications, and then you had to run that installer? That confused half of Xcode's users, who are about as technically savvy a user base as any app is likely to have, and it's from Apple, and even they couldn't get around the problem by auto-launching "Install Xcode.app".

Resources