文档章节

命令行获取mobileprovision文件的UUID

yoyoso
 yoyoso
发布于 2015/08/19 10:23
字数 548
阅读 7443
收藏 2
点赞 2
评论 4

有时候我们需要获取Provisioning Profile的UUID,一般情况下我们是双击mobileprovision文件安装,在老版本Xcode里可以从Organizer窗口里找到对应的UUID,新版本Xcode里不知道为什么这个路径下就找不到uuid了,幸运地我找到了另外一个软件:iPhone配置实用工具,这个软件里也能查看。

只是每次都要借助于GUI工具来查看还是太麻烦了,更好的方法是用命令行,我找到了这个:0xc010d/mobileprovision-read

使用方法:

在Terminal下输入下面的命令并回车:

curl https://raw.githubusercontent.com/0xc010d/mobileprovision-read/master/main.m | clang -framework Foundation -framework Security -o /usr/local/bin/mobileprovision-read -x objective-c -

这条命令的作用是下载mobileprovision-read的源码,然后编译,最后把生成的二进制文件mobileprovision-read放入到/usr/local/bin/路径下。

现在你就可以执行mobileprovision-read命令来查看帮助了。

mobileprovision-read -- mobileprovision files querying tool.
USAGE
mobileprovision-read -f fileName [-o option]
OPTIONS
    type – prints mobileprovision profile type (debug, ad-hoc, enterprise, appstore)
    appid – prints application identifier
Will print raw provision's plist if option is not specified.
You can also use key path as an option.
EXAMPLES
mobileprovision-read -f test.mobileprovision -o type
    Prints profile type
mobileprovision-read -f test.mobileprovision -o UUID
    Prints profile UUID
mobileprovision-read -f test.mobileprovision -o ProvisionedDevices
    Prints provisioned devices UDIDs
mobileprovision-read -f test.mobileprovision -o Entitlements.get-task-allow
    Prints 0 if profile doesn't allow debugging 1 otherwise

查看UUID的命令是:

mobileprovision-read -f the-file-path -o UUID

测试可用。


之前也找了一些其它的方法来获取UUID,并写了下面的shell脚本:

#!/bin/bash
if [ $# -ne 1 ]
then
  echo "Usage: getmobileuuid the-mobileprovision-file-path"
  exit 1
fi
mobileprovision_uuid=`grep UUID -A1 -a $1 | grep -o "[-A-Z0-9]\{36\}"`
echo "UUID:"${mobileprovision_uuid}

但是不知道结果为什么为空

更新:

根据这个(http://stackoverflow.com/a/10775025)答案下面的评论,找到了另外一种方法,是使用了苹果的securityPlistBuddy工具,脚本如下:

#!/bin/bash
if [ $# -ne 1 ]
then
  echo "Usage: getmobileuuid the-mobileprovision-file-path"
  exit 1
fi
# mobileprovision_uuid=`grep UUID -A1 -a $1 | grep -o "[-A-Z0-9]\{36\}"`
mobileprovision_uuid=`/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i $1)`
echo "UUID is:"
echo ${mobileprovision_uuid}

测试可行。




参考:

.mobileprovision files structure and reading - iDev blog

A command line tool to parse .mobileprovision file

0xc010d/mobileprovision-read

dwelch2344/mpParse

verb-ios/install-provisioning-profile.sh at master · JonathanPorta/verb-ios

命令行导入p12证书文件 | 大白良

ios - Can an Xcode .mobileprovision file be 'installed' from the command line? - Stack Overflow



© 著作权归作者所有

共有 人打赏支持
yoyoso
粉丝 48
博文 123
码字总数 43673
作品 0
南京
高级程序员
加载中

评论(4)

n
newspring
Hi,你的第二个脚本,我转走了~~.
另外,有一点小建议,因为Mac OS中国默认存放provisioning profile的路径是带空格的,所以建议在:
mobileprovision_uuid=`/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i "$1")`
$1的位置处,加一个双引号,这样可防止: ./mobilapp.sh "/Users/newspring/Library/MobileDevice/Provisioning Profiles/XXXX.mobileprovision" 这种情况下的路径折断.
Xwoder
Xwoder
mobileprovision_uuid=`grep UUID -A1 -a $1 | grep -o "[-A-Z0-9]\{36\}"`

应更增加a-z,因为UUID可能为小写字母
YoXung
YoXung
local uuid_key=`grep -a ${KEY} -A1 ${PROVISION_FILE}`
local uuid_value=`echo ${uuid_key} | sed -E "s/\\<string\\>(.*)\\<\\/string\\>/\\1/"`
PROVISION_UUID=${uuid_value:16}
李刚iOS
李刚iOS
您好!我是公众号iOS开发:iOSDevTip的编辑,我叫李刚,同时也是一名iOS开发者~您的博客中有很多高质量的文章,希望能在公众号iOS开发:iOSDevTip上转载。我们尊重作者,会在显要位置标注出处来源。不知可否授权呢?
IOS 使用xcodebuild xrun 编译 打包app 小结分享

我做了差不多10年的开发,从以前学vfp,c,vb,java,然后玩了3个月c#就不自量力地去应聘.net程序员了,后面怀着拼一拼的心态转去玩symbian,又搞了几年的IOS,这两年又转行做项目管理,再到今...

肖XX ⋅ 2016/02/24 ⋅ 1

【新技术】不用付费开发者账号申请ios证书真机调试

虽然xcode现在可以免证书进行测试了,但众多跨平台开发者,如果还没注册苹果开发者账号。 想安装到自己非越狱手机测试是无能为力了。 不过新技术来了,只需要普通免费的苹果账号无需付费成为...

简符 ⋅ 2017/08/03 ⋅ 0

xcode7打包ipa文件

[这里有最详细的文档] http://www.pgyer.com/doc/view/build_ipa http://johannesluderschmidt.de/provision-ios-ipa-app-for-in-house-enterprise-distribution/2993/ https://developer.a......

cyper ⋅ 2015/11/10 ⋅ 2

provision profile文件过期与iOS App重新签名

本文主要参考:iOS App重新签名方法介绍 - Haven's Blog 其实iPA文件就是zip文件,只是后缀不同而已。要重签名,我们需要准备证书与provision profile, 证书直接在Keychian里管理,provisi...

yoyoso ⋅ 2015/08/19 ⋅ 0

iOS自动打包并发布脚本 

iOS自动打包并发布脚本 本文最终实现的是使用脚本打 Ad-hoc 包,并发布测试,当然稍微修改一下脚本参数就可以打其他类型的 ipa 包了。另外该脚本还实现了将生成的 ipa 包上传至蒲公英进行测试...

法斗斗 ⋅ 2016/05/11 ⋅ 0

iOS 用fastlane进行团队证书管理

团队开发中,经常会遇到新成员加入或者证书及配置文件的变更,使用fastlane进行统一管理配置,能很好解决证书冲突等问题 文章的最终的效果==>使用一个终端命令配置好一个项目所需要的所有证书及...

众人皆欢我沉默 ⋅ 03/12 ⋅ 0

iOS开发之证书申请及真机调试图文详情

•真机调试的主要步骤 1.登录开发者主页 2.生成cer证书:cer是一个跟电脑相关联的证书文件,让电脑具备真机调试的功能 3.添加App ID:调试哪些app? 4.注册真机设备:哪台设备需要做真机调试...

feng_blog ⋅ 2015/08/31 ⋅ 2

Xcode的插件安装后按快捷键无效的问题

今天在Xcode上安装了Alcatraz、KSImageNamed、VVDocumenter-Xcode和OMColorSense这几个插件,但是安装完之后重启了Xcode,敲代码时发现///不好使,打开window一看,也没有PackageManager,但...

shenhuniurou ⋅ 2016/03/16 ⋅ 0

ipa重签名

将一个ipa文件解压后,显示包内容,可以看到app文件目录下包含了这2个文件:_CodeSignature(ipa的签署文件)和embedded.mobileprovision(证书配置文件),另外还有一个自己配置的entitleme...

_柳大官人 ⋅ 2016/07/13 ⋅ 2

App云端打包失败常见问题汇总

Android云端打包 错误原因:图片格式不对,应用图标和启动图片都要求png格式,其它格式(如jpg)会报错。 解决方法:请检查应用的图标是否有格式问题,严格按照指定的尺寸使用png格式提交打包...

海二少 ⋅ 2016/03/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 12分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 34分钟前 ⋅ 0

用户登录信息-钉子效果(基于jquery2.0)

本js效果使用jquery2.0,清晰的分解用户登录信息的(钉子效果),该效果直接用在作者网站(www.phpkhbd.com)上。 里面的难点有:定时器,延时。 大致效果如下: 一开始: 鼠标放上去的时候:...

宁哥实战课堂 ⋅ 36分钟前 ⋅ 0

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 47分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 51分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 57分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 57分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 58分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部