xcodebuild标志覆盖pods项目目标的代码签名

时间:2017-01-03 15:54:02

标签: xcode continuous-integration cocoapods code-signing xcodebuild

我在构建(存档)工作区时遇到问题,因为无论何时我运行

xcodebuild archive -workspace app.xcworkspace/ -scheme app-scheme -configuration Production -derivedDataPath ./build -archivePath ./build/Products/app.xcarchive DEVELOPMENT_TEAM=AAABBBCCCD PROVISIONING_PROFILE_SPECIFIER="prod DistProf" CODE_SIGN_IDENTITY="iPhone Distribution"

我得到了

XXX does not support provisioning profiles. XXX does not support provisioning profiles, but provisioning profile YYY has been manually specified. Set the provisioning profile value to "Automatic" in the build settings editor.

每个pod。 当我省略DEVELOPMENT_TEAM标志时,我得到

Signing for "myAPP" requires a development team. Select a development team in the build settings editor that matches the selected profile "YYY".

所有pod都不需要签名。在命令行中指定标志似乎忽略了不同项目的设置。我不能使用自动签名,因为我不是颁发证书的团队的成员,我的机器上只有证书和配置文件,所以任何fastlane解决方案都不起作用。此外,我不能在项目中设置一次,因为它来自第三方公司,我们无法共享我们的个人资料。 如何将此项目设置为持续集成链?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,经过多次试验后发现了一个有效的解决方案。

我无法使用命令行方法工作,尽管我在此Google小组https://groups.google.com/forum/#!topic/cocoapods/q5x653je7MA上发现了相反的声明

对我有用的是停止在命令行中指定团队,配置和身份,而是将其移动到xconfig文件。

在与Cocoapods合作的特殊情况下,它是这样的:

创建xconfig文件。这可以通过简单地创建一个新的"配置设置"使用Xcode的文件(它在新文件对话框中的'其他'下)。该文件将为空。

在xconfig文件中填写代码签名的值。这可以通过首先在xcode的构建设置中设置值然后复制&粘贴。生成的文件如下所示:

#include "Pods/Target Support Files/Pods-xxx/xxx.release.xcconfig"

//:configuration = Release
DEVELOPMENT_TEAM = xxx
//:configuration = Release
PROVISIONING_PROFILE_SPECIFIER = xxx/xxx

xxx替换为项目的正确值。 PROVISIONING_PROFILE_SPECIFIER值为

  

团队ID和个人资料名称的组合(因为它在。中命名)   Developer Portal,不一定是实际的文件名)

此处指定https://possiblemobile.com/2016/06/code-signing-xcode-8/

请注意,第一行是包含cocoapods生成的release.xconfig。这个很重要!如果你不这样做并运行pod update,你会看到一个警告弹出,要求你这样做,否则什么都不会起作用

让您的项目使用xconfig文件。这可以通过转到Project的General选项卡并滚动到Configurations设置来完成。然后,您可以从Release

下的下拉列表中选择新创建的xconfig文件

(有关如何使用xconfig文件的更多信息,请访问http://www.jontolof.com/cocoa/using-xcconfig-files-for-you-xcode-project/

完成所有这些后,您可以继续构建存档:

xcodebuild archive \
             -workspace "xxx" \
             -scheme "xxx" \
             -sdk iphoneos \
             -archivePath "xxx"