I can tell you that the process is not easy... BUT it is possible. I recommend hiring someone on Freelancer.com that can help with getting the certificates and compile a pkg / dmg using your AIR to a native captive runtime. I did it... got more gray hair from it but hopefully I can give you enough info here that will put you on the right track. So here it is: first compile your AIR app, I am using a nodejs script: #!/usr/local/bin/node
var util = require('util');
var exec = util.promisify(require('child_process').exec);
var servers = [
'rm -r -f ./YourAppName.app',
'rm -r -f /Users/YourUser/Library/Application\ Support/YourAppName*',
'rm -r -f /Users/YourUser/Library/Caches/YourAppName*',
'rm -r -f /Users/YourUser/Library/Cookies/YourAppName.',
'/usr/bin/java -jar ../../FlexAir28/lib/mxmlc.jar +flexlib=../../FlexAir28/frameworks/ +configname=air -swf-version=37 ./YourAppName.mxml -output ./bin/YourAppName.swf',
'/usr/bin/java -jar ../../FlexAir28/lib/adt.jar -package -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp -keystore ../../AIR_2021.p12 -storetype pkcs12 -storepass clscls2 -target bundle ./YourAppName ./YourAppName.xml -C ./bin/ YourAppName.swf -C ./icons/ IconStudio16.png -C ./icons/ IconStudio32.png -C ./icons/ IconStudio48.png -C ./icons/ IconStudio128.png',
'cp -r -f /Users/YourUser/Desktop/Mac/Solution/6.3/Build/Master/Code/desktop/StudioLoginAirOrigin.swf /Users/YourUser/Desktop/Mac/YourAppName/src/YourAppName.app/Contents/Resources/YourAppName.swf',
'cp -r -f /Users/YourUser/Desktop/Mac/YourAppName/src/config.xml /Users/YourUser/Desktop/Mac/YourAppName/src/YourAppName.app/Contents/Resources',
'tar -czvf /Users/YourUser/Desktop/Mac/YourAppName/bin-release/YourAppName.tar.gz ./YourAppName.app/',
'./YourAppName.app/Contents/MacOS/YourAppName.dmg',
'cp -r -f /Users/YourUser/Desktop/Mac/YourAppName/src/YourAppName.app ~/Desktop',
];
async function main() {
for (let s = 0 ; s < servers.length; s++) {
console.log(servers[s]);
const { stdout, stderr } = await exec(servers[s]);
if (stderr) console.error(`error: ${stderr}`);
console.log(stdout);
}
}
main(); once that's done you will need to create a certificate (get freelancer help for https://appleid.apple.com) next I am using the shell script: VERSION="10.0"
APP_DIR="/Users/UserName/Desktop"
INFO_PLIST="/Users/UserName/Desktop/YourAppName.app/Contents/Info.plist"
cd "$APP_DIR"
cd YourAppName.app/Contents/Frameworks/Adobe\ AIR.framework/
rm Adobe\ AIR;
ln -s Versions/Current/Adobe\ AIR "Adobe AIR"
ln -s Versions/Current/Adobe\ AIR_64 "Adobe AIR_64"
rm -fr Resources/
ln -s Versions/Current/Resources/ Resources
cd Versions
rm -fr Current
ln -s 1.0 Current
cd "$APP_DIR"
xattr -cr YourAppName.app
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString \"${VERSION}\"" "${INFO_PLIST}"
/usr/libexec/PlistBuddy -c "Set :CFBundleGetInfoString \"${VERSION}, © 2019 Acme Inc All rights reserved.\"" "${INFO_PLIST}"
/usr/libexec/PlistBuddy -c "Add :LSApplicationCategoryType string public.app-category.business" "${INFO_PLIST}"
codesign -f -v -s "Developer ID Application: Acme Inc (XXXXXXX)" YourAppName.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Adobe\ AIR_64
codesign -f -v -s "Developer ID Application: Acme Inc (XXXXXXX)" YourAppName.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Adobe\ AIR
codesign -f -v -s "Developer ID Application: Acme Inc (XXXXXXX)" YourAppName.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0
codesign -f -v -s "Developer ID Application: Acme Inc (XXXXXXX)" YourAppName.app/Contents/Frameworks/Adobe\ AIR.framework
codesign -f -v -s "Developer ID Application: Acme Inc (XXXXXXX)" YourAppName.app next go to: go to https://appleid.apple.com (provide passsword) and generate app specific password, label can be anything paste the NEWLY GENERATED PASSWORD in 2 places in xcrun... in productbuild --component YourAppName.app /Applications/ YourAppName.pkg
productsign --sign "Developer ID Installer: Acme Inc (XXXXXX)" --keychain /Users/userName/Library/Keychains/login.keychain-db YourAppName.pkg YourAppNameSigned.pkg
xcrun altool --notarize-app --primary-bundle-id "comdigitalsignage" --username "user@Acme.com" --password "xxxx-xxxx-xxxx-xxxx" --file YourAppNameSigned.pkg
xcrun altool --notarization-history 0 -u "user@Acme.com" -p "xxxx-xxxx-xxxx-xxxx"
xcrun stapler staple YourAppNameSigned.pkg
~ run commands manually from the above script, one by one IMPORTANT: when running "xrun --notorization-history..." we need to wait after running it so progress changes to success from Apple, before running the next command of "xrun stapler..." you can continue and run "xrun --notorization-history..." over and over until you see "progress" change to successfull and then finish by running "xrun --notorization-history..." I know it's not easy... BUT, I just made your life so much easier, hire a freelancer that is aware of the Mac certification process and with the above info you should be able to compile your pure swf app to pkg for Mac Catalina 64 bit OS. GOOD LUCK!
... View more