[Interest] Building iOS from command line

Jérôme Godbout godboutj at amotus.ca
Thu Jun 18 20:58:45 CEST 2020


Hi,
I have an Info.plist that I have into my project. I have the following entry into my Info.plist file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
         <key>CFBundleDisplayName</key>
         <string>${PRODUCT_NAME}</string>
         <key>CFBundleExecutable</key>
         <string>${EXECUTABLE_NAME}</string>
         <key>CFBundleGetInfoString</key>
         <string>Created by Qt/QMake</string>
         <key>CFBundleIdentifier</key>
         <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
         <key>CFBundleName</key>
         <string>${PRODUCT_NAME}</string>
         <key>CFBundlePackageType</key>
         <string>APPL</string>
    ...
</dict>

From my .pro:
Q_PRODUCT_BUNDLE_IDENTIFIER.value = ca.amotus.NubitusApp
From my ios .pri (I use the same .pri for all iOS application):
DISTFILES += ios/Info.plist
Q_PRODUCT_BUNDLE_IDENTIFIER.name = PRODUCT_BUNDLE_IDENTIFIER
QMAKE_MAC_XCODE_SETTINGS += Q_PRODUCT_BUNDLE_IDENTIFIERQMAKE_INFO_PLIST = ios/Info.plist

I was guessing the replacement should have happen. or does the above variables only work when inside QtCreator GUI?


From: Boris Ralchenko <bralchenko at ics.com>
Sent: June 18, 2020 2:46 PM
To: Jérôme Godbout <godboutj at amotus.ca>
Cc: interest at qt-project.org
Subject: Re: [Interest] Building iOS from command line

Hi Jérôme,

We have a separate Info.plist for command line build, it should solve the bundle ID issue. I don’t remember exactly the details, it was couple of years ago. But I did check - there is an Info.plist in the repository. I suspect Qt Creator generates one too, but I rely on the one from Xcode.

Regards,
    Boris Ralchenko.





On Jun 18, 2020, at 2:30 PM, Jérôme Godbout <godboutj at amotus.ca<mailto:godboutj at amotus.ca>> wrote:

Hi,
I’m trying to build my project from my CI system to generate the .ipa (and stop releasing by hand over. But I seem to be missing something into my way of doing it (I managed to do it for Android, armv7/armv8 .apk and .aab). Here is my steps raw command line steps (not the provisioning, certificate and the keychain are installed and work with a Xamarin and Unity application with the same setup, the question is not about those parts).

I’m building on lastest MacOS X, xcode is up to date and Qt 5.15.0


"/Users/Shared/Qt/5.15.0/ios/bin/qmake" Nubitus.pro -spec macx-ios-clang CONFIG+=release CONFIG+=iphoneos CONFIG+=device CONFIG+=qtquickcompiler -after

make -f Makefile qmake_all

make

The Qmake generate the makefile, make qmake_all work just fine, but the make build give me the following error:

Xcode couldn't find any iOS App Development provisioning profiles matching 'com.yourcompany.NubitusApp'

but my .pro clearly indicate

Q_PRODUCT_BUNDLE_IDENTIFIER.value = ca.amotus.NubitusApp

When building from inside QtCreator this work and the provisioning is also working just fine. so my question: Why is the build any different? is QtCreator doing any extra steps not print into the output? is there any env variables required for Q_PRODUCT_BUNDLE_IDENTIFIER to be used? Did I miss a step?!

Extra points question: will this generate an .ipa or .app ? How does one generate a .ipa from the command lines out of the result build by Qt make?

Thanks,

_______________________________________________
Interest mailing list
Interest at qt-project.org<mailto:Interest at qt-project.org>
https://lists.qt-project.org/listinfo/interest

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20200618/c58a7470/attachment.html>


More information about the Interest mailing list