Apple Developer Program?



  • I'm trying to deploy my app to an iOS device for the first time (been developing for android so far). I'm following this guide http://doc.qt.io/qtcreator/creator-developing-ios.html. It seems to indicate that I need to enroll in Apple Developer Program in order to deploy to one device. As far as I can tell, it costs $100/year to enroll. Is there any way around paying that fee?


  • Moderators

    @kgregory said in Apple Developer Program?:

    Is there any way around paying that fee?

    No.


  • Lifetime Qt Champion

    Hi,

    They've relaxed that rule when you are developing/testing an application on a device you own.



  • Do you know how to deploy the the device I own without paying the fee then?

    As far as I can tell, I need to enroll in order to sign the app so that I can deploy it. But I don't see a way to enroll without paying the fee.



  • @kgregory Try connecting your iOS device to your Mac and then start Xcode, then create a new simple iOS app and tell Xcode to deploy it to your iOS device (also tell Xcode to create certificates automatically).
    Now it should create a personal certificate for that iOS device.



  • Thanks @hskoglund, I'm getting a little further now. I deployed a dummy non-QT application from xcode successfully. I also am now able to try to build. However, I get this error after checking dependancies "Code Signing Error: No profiles for '<my app>' were found: Xcode couldn't find any iOS App Development provisioning profiles matching '<my app>' ..."

    I see in the guide I was following that it says to make sure you setup your provisioning profiles in Xcode. I just don't see where to do that. It does have my signing certificate (hence why I was able to deploy the dummy app). Do you know where to setup this provisioning profile?



  • I've never had any success deploying a Qt app to my phone directly from Qt Creator. So once I've built my iOS app in release mode in Qt Creator, I switch to Xcode by double-clicking on the <yourprojectname>.xcodeproj file in the project's build directory. Then I deploy the app from Xcode :-)



  • @hskoglund ahh yes, I just tried that and it worked. Annoying but I'll take it for now.

    Only problem is, my app has no icon associated with it. Do you know where I specify the icon? Also, for Android, I had to specify the permissions that it wants. Do I need to do that for iOS?



  • Hi, for icons I think it's easiest to add them by editing the project's .plist file, usually called Info.plist. (You can do that in Qt Creator).

    For a spec. of the keywords, see for example https://stackoverflow.com/questions/13020872/how-do-you-define-cfbundleicons-cfbundleiconfiles-cfbundleiconfile

    P.S. Nowadays I think you can add the icon as resources in Xcode's GUI but editing of that .plist file always works.



  • When I edit it in QtCreator, I just see a raw XML file. It says it's generated by qmake. I'm assuming that means that whatever changes I make will be overwritten the next time I run qmake.

    Is that what you mean? I'm kind of miffed that they don't have a nice GUI like they have for android manifest.



  • Hi, yeah raw XML editing is what I meant. While there's support in Qt Creator for adding icons to your desktop app for example in MacOS and Android, unfortunately the only the advice given in the docs is to make a backup copy of the Info.plist file :-(



  • @hskoglund said in Apple Developer Program?:

    Info.plist

    hi, theres a way to tell qmake not to recreate the plist file, described here in the docu

    Information Property List Files
    
    Information property list file (Info.plist) on iOS and macOS is used for configuring an application bundle. These configuration settings include:
    
    Application display name and identifier
    Required device capabilities
    Supported user interface orientations
    Icons and launch images
    See the documentation on Information Property List File in iOS Developer Library for details.
    
    When qmake is run, an Info.plist file is generated with appropriate default values.
    
    It is advisable to replace the generated Info.plist with your own copy, to prevent it from being overwritten the next time qmake is run. You can define a custom information property list with QMAKE_INFO_PLIST variable in your .pro file.
    
    ios {
        QMAKE_INFO_PLIST = ios/Info.plist
    }
    

    And you can potentially use xCode to editor your plist. Apple has a rather nice Editor for that.



  • I like to have build scripts for all my applications and minimise use of IDEs... one thing I've found particularly useful for scripted updating of those Info.plist files is the Mac's "PListBuddy" tool... so my scripts contain things like

    /usr/libexec/PlistBuddy -c 'Set :CFBundleDisplayName "MyApplicationName"' Info.plist
    /usr/libexec/PListBuddy -c "Add :UIRequiresFullScreen bool true" Info.plist
    /usr/libexec/PListBuddy -c "Delete :UISupportedInterfaceOrientations" Info.plist
    /usr/libexec/PListBuddy -c "Add :UISupportedInterfaceOrientations array" Info.plist
    /usr/libexec/PListBuddy -c "Add :UISupportedInterfaceOrientations: string UIInterfaceOrientationLandscapeLeft" Info.plist
    /usr/libexec/PListBuddy -c "Add :UISupportedInterfaceOrientations: string UIInterfaceOrientationLandscapeRight" Info.plist
    .... etc etc
    

    to prod a freshly-generated (by qmake -spec macx-xcode myapp.pro) Info.plist into shape.



  • Another question: My app uses the qBluetooth libraries for BLE. This works fine in android but in iOS, I get [CoreBluetooth] XPC connection invalid. Could this be because I haven't added bluetooth capability in the plist file?



  • Does anyone know how to get the debug stream in xcode? I send messages from qDebug and this works fine with QtCreator. In xcode, however, I get some sort of messages in their console, but none of my qDebug messages.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.