Tag Archives: notarization

Things you need to be cautious regarding Mac Apps notarization.

After googling, finding more and more info and some deep search, I found that the past fail I experienced with the Mac Apps notarization was not because of the notarization itself, but because some progress I did after the notarization. Below I listed some stuff that you need to pay attention in regards to notarize Mac Apps, especially if you’re using Adobe Air like I did. Btw, I’m not really a programmer, so sorry if some of the text below sounds silly to some of you. I’m using Mac 10.13.6 with xCode 10.1 by the way, since my Mac is very old (2012) and I can’t install any newer OS.

1. Don’t use Steam Content Prep.

My first fault was because I use Content Prep from Steam SDK as a habit to prepare the Mac version for Steam. It seems after the Content Prep “warp” the notarization will be annulled, and if we do the opposite (warp first then notarize the warped app), the notarization will be failed. Just, don’t use this tool.

2. Don’t forget ENTITLEMENT.PLIST

This is the culprit which caused me to redo all of my notarization!!!
You can proceed the notarization without using this, but Steam API requires a special setting on entitlement.plist to work (a permission for the dylib file)!! Also, if your game is using Java (as far as I know both of Adobe Air and renpy is using java to build, so I added Java related permission here just for in case). Anyway, it’s a simple xml file, yet it’s very important!!

3. Make sure the file name inside MacOS folder has no space (inside the .app bundle).

So after my first “success” notarization progress, I tested the file (it was fine) then uploaded the file to Steam, and downloaded it to test again if it works but… it’s failed. I somehow have already been suspicious with the file inside MacOS folder inside the app bundle, so I simply edit the file name and the game works again. But—the notarization was annulled. (You can check this by running xcrun stapler validate on Terminal.)

To settle this, first I tried to re-notarize the file with edited name only, but then it caused more rejected notarization, and I realize that rebuild a whole new .app file is easier and faster. Just, especially for Adobe Air user, don’t add space within the name inside <filename> section.

4. Inside Resource folder is still editable (probably?) But not the one inside MacOS folder.

I tried to delete one file and added random folder inside Resource folder and it’s fine. But when I delete/ edit the file name of the original file inside MacOS folder the notarization was annulled.
I haven’t checked the Resource folder thoroughly, so probably there’s still hidden rule in it.

5. Notarized the plugin first before the app is useless.

I noticed that the notarization fail report mostly mentioned about the plugin/ ane I use, so I tried to notarize it first before using it to build the game, but it won’t do T_T just, notarize it once for all when the .app is done.

6. What the notarization based of?

Tbh I’m not really sure of this.
I have 3 files for East Tower – Kuon, for example, and they only different in languages. The final command on notarization is only “xcrun stapler staple xxx.app”, so at first I was wondered, how could they differ which xxx.app has been notarized, if there are three Kuon.app? But, they really can. I tried to notarized English version first, then I try to staple the Japanese version without the notarizing it, but it was failed (the English version notarization won’t be applied to the Japanese version), and it was the same when I tried to staple an earlier version of the English version. Only the correct .app file which has been through the notarization can be stapled.

To put it shortly, there are still some mystery within this progress. I’m not really sure, but it should settle the notarization issue for now even if… well, it’s indeed taking time to notarize a game, especially a big one,  as we need to upload a zip file to Apple server.

Dilemma with the new Mac OS 10.15 Catalina

There are soo many dilemma with the the technical support lately. Sometime I wonder why the new OS update will cause more stir rather than bringing more sales >< Anyway, I’ll tell you a story about the issue with MAC update this time.

CATALINA HORROR

One day, Steam sent me email, notifying that I need to make sure my apps support 64 bit and notarization to make it works with the new OS, Catalina. I usually don’t pay much attention to OS update, because well, I have my apps in too many platform, and it’s a big hassle to confirm if it works in every new OS for every platform, unless there are a big notification that it will need urgent update like this or it won’t work anymore.

I thought it would be easy, like only turn the app to 64 bit and upload it to somewhere to get notarized. I WAS WRONG.

It’s very easy to turn the app to 64 bit, and all my apps on Steam started from HTTOYM (2015) are all 64 bit.
But then, the first notarization try ended failed. At first I thought I simply used a wrong SDK version, but that’s not that easy. The app needs to get the correct code sign first before notarized.

To do this code sign, we need to generate a certificate within the apple developer console (which cost 99 usd a year) but it’s ok as I already have it for iOS anyway. But that’s not all……..

After build the new app using the new SDK, I need to eliminate some files generated by the SDK that might bother the notarization progress, then code sign everything using the correct developer id certification (I got issue before cause idk why but there’s weird extra space that needs to be added on my developer id) then after finish everything, the next is…. proceed with the notarization.

NOTARIZATION HORROR

Tbh I already failed 3 times with this.

Basically it’s simple, I only need to upload the file to apple server. But it’s slow! I tried to use my ET Akio data to try because it’s the smallest, but it takes 30 minutes ish for the notarization. And then… ok let’s try the luck and see if it works or not this time 😕😕😥😥

After the notarization finished, I still need to staple the notarization result to the app itself before upload the new build to Steam.

Finish?

FINISH?

NO!

THE TRUE HORROR

Basically it will only finish for 1 build, while in my case, the games have each build for each language version.

This means, for Akio I need to reupload 4 build for the 4 languages it supports. Same for Takashi, then I also still have Kuon, Kurenai, and all my Eroolia and CAFE 0 Series. Imagine with the HTTOYM which now supports 7 languages (insert Death flag here) — in other words I need 14 hours ish only for HTTOYM game.

…is it really worth to do all of this?

…or maybe I should ask, is it really worth to ask developer to do all of this, Apple? 😭😭😭😭😭😭

For the meanwhile, I decide to learn first about how to notarize first while proceed with my other porting project T_T I can’t promise if I will make Catalina works with my games for now, as I haven’t succeeded yet as far with the notarization.

If it takes longer and messier than what I thought, I might drop all support for Catalina and later. My suggestion for now is simply, don’t update to Catalina yet T_T