我可以从Qt Creator将参数传递给xcodebuild吗?

时间:2017-09-26 10:17:26

标签: ios qt qt-creator xcodebuild

我的Qt和Qt Creator知识非常缺乏,我不得不尝试重建我们现有的应用程序,使其成为iOS 11的64位。

在为iOS构建发布版本时,我收到以下错误:

Check dependencies
Code Signing Error: No profiles for 'com.yourcompany.MYTESTAPP' were found:  Xcode couldn't find any iOS App Development provisioning profiles matching 'com.yourcompany.MYTESTAPP'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.
Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.0'

我尝试在Info.plist中替换com.yourcompany,但似乎文件是在每次构建时自动生成的,因此更改它们会被覆盖。有没有其他方法可以用我们的域名替换该域名?

最简单的解决方案可能是执行错误建议并将-allowProvisioningUpdates传递给xcodebuild,但我无法弄清楚如何......另外,我找不到有关该主题的任何有用的文章。< / p>

我确实找到了this SO question,但对于像我这样的初学者来说,那里的答案太过先进了。我根据接受的答案尝试了以下内容,没有任何影响:

contains(MYDEFINES, iOS) {
    QMAKE_CXXFLAGS += -allowProvisioningUpdates
}

编辑:知道我确实启用了“自动管理签名”Qt Creator的构建设置可能很重要。而且我在Qt 5.9.1和Qt Creator 4.4.0上。

2 个答案:

答案 0 :(得分:1)

使用CI构建时遇到了同样的问题。通过Makefile及其包含搜索,我发现您可以使用xcodebuild变量将额外的标记传递给XCODEBUILD_FLAGS。添加构建环境应该可以解决问题。

答案 1 :(得分:0)

是的,您可以将数据从.pro项目文件传递到Info.plist。当您运行QMake时,这将构建您的Xcode项目文件并通过Xcode的设置。因此,重要的是QMake,而不是Qt Creator。

不幸的是,已经进行了更改和错误(例如QTBUG-70072),并且文档中也有遗漏之处。

从Qt 5.11.2开始,以下是设置包(以及其他一些字段)的方法:

QMAKE_INFO_PLIST = path/to/your/Info.plist
QMAKE_TARGET_BUNDLE_PREFIX = com.yourcompany
QMAKE_BUNDLE = yourapp
QMAKE_IOS_DEPLOYMENT_TARGET = 11.0
QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1

如果您未设置QMAKE_BUNDLE,则QMake将使用您的TARGET。就我而言,我的应用程序捆绑包ID都是小写,而我的TARGET则不是,并且捆绑包区分大小写。

QMAKE_IOS_DEPLOYMENT_TARGET设置最低的iOS版本。

QMAKE_APPLE_TARGETED_DEVICE_FAMILY设置设备系列:1用于iPhone,2用于iPad,1,2支持两者。

在您的Info.plist中,您应该具有:

<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>

The official documentation relating to Info.plist is on the QMake Variables Reference page