Xcode 8中.p12文件的用途是什么?分发签名与自动签名不同吗?

时间:2017-09-03 12:10:36

标签: ios xcode

我正在尝试使用以下命令签署我的Xcode项目:

xcrun -sdk iphoneos PackageApplication #project path -o outputpath.ipa -sign="name of sign" -embed="mobileprovision"

当我输入此命令时,它返回我当前的目录而没有任何错误,但不生成IPA文件,但是如果我从命令中删除以下内容:

 xcrun -sdk iphoneos PackageApplication #project path -o outputpath.ipa 

我确实收到了一份IPA文件,但似乎没有签名。我有.p12文件和.mobileprovision文件,但不知道如何继续。我目前正在使用Xcode版本7.3.1,但也想知道如何使用Xcode 8。

1 个答案:

答案 0 :(得分:0)

实现这一目标的方法很少,但由于您不是在尝试构建脚本,因此最简单的方法是使用iReSign工具。

此工具输入是ipa / xarchive文件,第12页文件和证书(您从钥匙串中选择)。

您还可以更改ipa的Bundle ID和权利文件。 它的开源,我已经使用了一段时间。

如果您无法使用此工具并使用命令行=IF(L105=1),L105*1050,IF(AND(L105>1,L105<6),L105*750,IF(AND(L105>5,L105<11),L105*700,IF(AND(L105>10,L105<16),L105*650,IF(L105>15),L105*600)))

归档您的应用:

xcodebuild

现在您有一个xcodebuild -scheme <scheme name> archive 文件,将应用程序从存档导出到ipa文件:

xarchive

您需要创建选项plist文件,您可以看到可用选项here

以下是选项文件的示例:

xcodebuild -exportArchive -exportOptionsPlist "<pathToOptions>" -archivePath "<pathToArchive>"  -exportPath "<pathToOutput>"

注意:您始终可以使用帮助菜单:<?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>teamID</key> <string>MYTEAMID123</string> <key>method</key> <string>app-store</string> <key>uploadSymbols</key> <true/> </dict> </plist>

注意2:您可以在Xcode中设置证书和开发人员团队(需要完成一次)