通过命令行构建iOS应用程序扩展

通过命令行构建iOS应用程序扩展,ios,Ios,我正在尝试从命令行构建包含应用程序扩展的iOS应用程序。但是,当我使用以下xcodebuild命令进行构建时: xcodebuild -sdk iphoneos -configuration "Debug" -workspace "/Users/user/build/app_extension_demo/app_extension_demo.xcworkspace" -scheme "AppExtensionDemo" -CODE_SIGN_IDENTITY="iPhone Developer:

我正在尝试从命令行构建包含应用程序扩展的iOS应用程序。但是,当我使用以下xcodebuild命令进行构建时:

xcodebuild -sdk iphoneos -configuration "Debug" -workspace "/Users/user/build/app_extension_demo/app_extension_demo.xcworkspace" -scheme "AppExtensionDemo" -CODE_SIGN_IDENTITY="iPhone Developer: ios developer" PROVISIONING_PROFILE=34070551-ebe8-412a-b57c-9fbdf9a42ed4 derivedDataPath "/Users/user/build/app_extension_demo/Build/Products/Debug-iphoneos" OBJROOT="/Users/user/build/app_extension_demo/Build/" SYMROOT="/Users/user/build/app_extension_demo/Build/Products" CONFIGURATION_BUILD_DIR=/Users/user/build/app_extension_demo/Build/Products/Debug-iphoneos
我得到以下错误:

ERROR: Code Sign error: Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings ("XC Ad Hoc: com.mycompany.AppExtensionDemo") has an AppID of "com.mycompany.AppExtensionDemo" which does not match your bundle identifier "com.mycompany.AppExtensionDemo.NumberWidget".

我正在使用AppID为com.mycompany.AppExtensionDemo的配置文件(XC Ad Hoc:com.mycompany.AppExtensionDemo),但应用程序扩展需要不同的AppID(com.mycompany.AppExtensionDemo.NumberWidget)。通过Xcode应用程序,一切都可以正常运行。我注意到Xcode自动为应用程序扩展目标的“com.mycompany.AppExtensionDemo.NumberWidget”创建了配置文件。但是,在通过命令行构建时,我不确定如何将应用程序扩展配置文件与应用程序扩展目标关联。任何帮助都将不胜感激

所以我刚刚弄明白了这一点,并在这里发布了我的答案:


基本上,您可以将
$ENVIRONMENT\u变量
设置到目标的构建设置中的Provisioning Profile字段中,并从命令行分配它,而不是使用
Provisioning\u Profile=…
-查看我的其他答案以了解更多详细信息。

同样的问题。但我发现可以通过命令行“today widget”单独构建。可能会生成主项目并告诉“xcodebuild”不要放弃扩展?嗨,Sergey,你能更具体地说明你是如何单独构建“今天的小部件”的吗?当然,只需再使用一个xcodebuild命令并将目标放在今天的小部件上(你看到它是proj的目标了吗?)。谢谢,我找不到一种方法来实现您想要实现的目标,所以我改为在Xcode中设置配置文件,然后在没有配置文件的情况下构建它arguments@ReyGonzales是的,我用同样的方法。没有找到另一个。谢谢