从命令行对ios应用程序进行代码签名

从命令行对ios应用程序进行代码签名,ios,command-line,codesign,Ios,Command Line,Codesign,我正在为我的ios开发创建一个命令行工作流,我被困在最后一个阶段:代码签名 我为armv7和armv7s构建了一个应用程序,将其链接并创建应用程序包: $ codesign -d -v path/to/myapp.app Executable=/path/to/myapp.app/myapp Identifier=com.mycompany.myapp Format=bundle with Mach-O universal (armv7 armv7s) CodeDirectory v=20200

我正在为我的ios开发创建一个命令行工作流,我被困在最后一个阶段:代码签名

我为armv7和armv7s构建了一个应用程序,将其链接并创建应用程序包:

$ codesign -d -v path/to/myapp.app
Executable=/path/to/myapp.app/myapp
Identifier=com.mycompany.myapp
Format=bundle with Mach-O universal (armv7 armv7s)
CodeDirectory v=20200 size=2292 flags=0x0(none) hashes=105+5 location=embedded
Signature size=4332
Signed Time=Sep 7, 2014, 2:47:55 AM
Info.plist entries=26
TeamIdentifier=XXXXXX
Sealed Resources version=2 rules=5 files=3
Internal requirements count=1 size=192
我从以下位置获得代码签名哈希XXXXX:

$ security find-identity -pcodesigning -v
  1) XXXXX "iPhone Developer: My Name (YYYY)"
     1 valid identities found
但是,在我使用以下代码设计之后:

codesign --force -vvvv --sign XXXXX --resource-rules=path/to/myapp.app/ResourceRules.plist --entitlements path/to/myapp.xcent path/to/myapp.app
path/to/myapp.app: replacing existing signature
path/to/myapp.app: signed bundle with Mach-O universal (armv7 armv7s) [com.mycompany.myapp]
它似乎仍然不快乐:

$ codesign --verify -vvvv path/to/myapp.app
path/to/myapp.app: invalid Info.plist (plist or signature have been modified)
In architecture: armv7s
作为参考,我使用xcode构建了一个(类似的)应用程序(我实际上使用了日志中的codesign行来为这个应用程序签名),它工作得很好:

$ codesign --verify -vvvv path/to/otherapp.app
path/to/otherapp.app: valid on disk
path/to/otherapp.app: satisfies its Designated Requirement
我肯定我有正确的代码签名散列,因为我已经通过xcode签名和部署了应用程序。我只是想在命令行上重复同样的步骤,结果失败了。显然,如果我更改了info.plist或其他内容,我希望看到此错误,但我不希望在执行代码设计步骤后立即看到它。一些黑魔法在这里起作用。谁能帮我弄点线索或指点一下吗

编辑:

我删除了armv7,刚刚构建了armv7,现在在代码设计验证阶段它似乎很高兴,但是我仍然无法部署应用程序,日志中有以下错误:

installd[26777]:0x10050c000验证签名者身份:错误验证/var/tmp/install\u staging.Mvi7tR/myapp.app/myapp:0xe8008019的签名和复制信息失败

我不知道发生了什么事:\

另一编辑:


我的密码验证又失败了,呵呵。所以,如果我验证myapp.app,它会说一切正常。但是,如果我尝试直接验证myapp.app/myapp二进制文件,那么它会说验证失败(除了架构armv7外,存在上述错误)

长话短说,如果我对myapp.app/myapp进行代码设计,而不是对myapp.app进行代码设计,那么我可以将该应用程序部署到我的手机上,而不会出现任何问题。我似乎还不能同时进行代码设计,因为myapp.app/myapp或myapp.app中的一个无法进行代码设计——验证,但现在已经足够好了,因为我可以部署应用程序

希望这能帮助那些把头撞在墙上的人

我会设法弄清楚我是否可以在一行上同时进行代码设计,但这是一个次要的后代问题