苹果重签名Apple iOS客户端应用程序以进行企业分发

苹果重签名Apple iOS客户端应用程序以进行企业分发

以下过程描述了如何重新签名BMC Digital Workplace,以便可以将移动应用程序部署到使用Apple iOS设备的最终用户。重新签名IOS客户端必须在投入生产之前执行。

在你开始之前

您必须是Apple Enterprise Program的成员才能从Apple Developer Portal获得所需的开发工具。有关更多信息,请参见以下资源:

Apple企业计划申请书-Apple要求您成为拥有DUNS编号的公司或组织。企业帐户使您可以在内部分发重新标记的应用程序。组织帐户使您只能通过Apple商店分发应用程序。

Apple Developer Portal —包含用于开发Apple iOS应用程序的开发工具和文档。

管理团队 -介绍如何分配适当的团队角色。要完成以下过程,必须将团队代理角色分配给将创建证书的用户。

维护您的签名身份和证书 -提供有关证书的信息。

2.您必须安装XCode和Apple根证书。

安装Xcode和Apple根证书

您只需要执行一次此过程。在重新签名过程中,您需要Xcode开发人员工具来安装权利文件。

在运行MacOS的Apple计算机上,从App Store安装免费的Xcode。

Xcode不能在iPad,iPhone或其他iOS设备上使用。

安装Apple根证书,如下所示:

转到http://www.apple.com/certificate Authority /

下载Apple Inc.根证书

双击该文件,然后将其安装在“ 钥匙串”中(登录)。

重新签署Apple iOS客户端应用程序

执行以下步骤以重新签署Apple iOS应用程序:

创建企业发行证书以重新签署BMC Digital Workplace

为BMC Digital Worplace创建一个应用程序组

为BMC Digital Workplace创建一个iCloud容器

为您的BMC Digital Workplace版本创建应用程序ID和捆绑ID

编辑您现有的应用程序ID或将App Group和iCloud添加到您的BMC Digital Workplace版本中

创建内部分配配置文件

创建苹果推送通知服务(APNS)证书

使用您的企业凭据重新签署移动应用程序

用您的APNS证书替换APNS证书

创建企业发行证书以重新签署BMC Digital Workplace

您将使用此证书对BMC Digital Workplace iOS应用程序进行签名。

以团队代理角色登录到https://developer.apple.com/account/ios/certificate上的iOS Provisioning Portal 。

在“ 证书”部分中,单击加号(+)添加证书。

制作部分中,选择内部和临时

使用证书助手生成证书签名请求(CSR)。

按照Apple在CSR屏幕上提供的说明进行操作。

将CSR上传到iOS Provisioning Portal,然后下载分发证书。

保存证书,然后使用“钥匙串访问”应用程序将其打开。

要将证书导出到其他版本,请将其保存为.p12格式:

在“ 密钥链访问”中,转到“ 我的证书”部分。

右键单击下载的证书,然后单击导出

将证书保存为.p12格式,并在需要时提供安全密码。

为BMC Digital Workplace创建应用程序组

使用团队代理角色,登录到iOS Provisioning Portal

在“ 标识符”部分中,单击“ 应用程序组”选项卡。

单击加号(+)添加新的标识符。

在“ 描述”字段中,键入一个名称,该名称将在门户中轻松地为您标识您的应用程序(例如Calbro Digital Workplace Group)。

在“ ID”字段中,输入唯一的组名(例如  group.com.companyName.DWP)。

点击继续

点击注册

出现新的应用程序组,如下图所示:

为BMC Digital Workplace创建iCloud容器

使用团队代理角色,登录到iOS Provisioning Portal。 

在“标识符”部分中,单击“ iCloud容器”选项卡。 

单击加号(+)添加新的标识符。 

在“ 描述”字段中,键入一个名称,该名称将在门户中轻松地识别您的应用程序(例如Digital Workplace iCloud Container)。 

ID字段中,输入一个唯一的组的名称(例如,  iCloud中group.com.companyName.DWP)。

点击继续

为您的BMC Digital Workplace版本创建应用程序ID和捆绑ID

创建内部分发配置概要文件中,您将需要应用程序ID  。要使用您的企业凭据重新签署移动应用程序,您将需要提供捆绑软件ID  。

使用团队代理角色,登录到iOS Provisioning Portal

在“  标识符”  部分中,单击“  应用程序ID”  选项卡。

单击加号(+)添加新的标识符。

在“  描述”  字段中,输入一个名称,该名称将在门户中轻松地为您标识您的应用程序(例如  Calbro Digital Workplace)。

记下您将在重新签名过程中使用的应用程序ID前缀(团队ID)。

选择  Explicit App ID,然后在Bundle ID  字段中输入一个唯一标识符  (例如  com.companyName.DWP)。

记下用于重新签名过程的分发包ID。

在“ 应用程序服务”部分中,保留默认设置,但要确保已选择“关联的域”,“推送通知”,“ iCloud”和“应用程序组”。

对于  iCloud,选择“  包括CloudKit支持  (需要Xcode 6)”选项。 

对于  数据保护,  选择  完全保护

单击  继续。

要返回“ 标识符”列表,请单击  “完成”

出现新的应用程序ID,如下图所示:

编辑现有应用程序ID或将App Group和iCloud添加到您的BMC Digital Workplace版本中

使用团队代理角色登录到iOS Provisioning Portal

在“ 标识符”部分中,单击“ 应用程序ID”选项卡。

选择您的BMC Digital Workplace应用程序ID(例如  com.companyName.DWP)。

点击编辑

点击“ 应用程序组 ”旁边的选择框。

当提示您启用应用程序组时,单击确定

单击“ 应用程序组”上的“ 编辑 ” 。

选择为BMC Digital Workplace创建的应用程序组(例如  group.com.companyName.DWP)。

点击继续

点击分配

单击完成

单击iCloud选项旁边的“ 编辑”。 

选择上面创建的iCloud的容器(例如,  iCloud中group.com.companyName.DWP)。

点击继续

点击分配

单击完成

创建内部分配配置文件

您需要此配置文件才能将BMC Digital Workplace移动应用程序部署到您的组织。

以Team Agent角色登录到iOS Provisioning Portal。

在“ 配置”部分中,单击“ 分发”选项卡。

单击加号(+)添加新的配置文件。

在“创建iOS配置文件”页面上,完成以下步骤:

对于“ 分配方法”,选择“内部”

选择您创建的分发证书。

选择您在为BMC Digital Workplace版本创建应用程序ID中创建的应用程序ID

下载配置文件。

创建Apple Push Notification Service(APNS)证书

您需要此证书,以便移动应用程序可以接收通知。

以Team Agent角色登录到iOS Provisioning Portal。

在“ 证书”部分中,单击“ 生产”选项卡。

在右上角,单击加号(+)。

选择“ Apple Push Notification Service SSL(生产)”

选择您创建的应用前缀ID(团队ID)。

使用证书助手生成证书签名请求(CSR)。

按照Apple在CSR屏幕上提供的说明进行操作。

双击证书以下载并导入到您的钥匙串中。

用您的企业凭据重新签署移动应用程序

您可以通过以下任意一种方式使用您的企业凭据重新签署移动应用程序:

推荐)  通过使用iOS重新签名和重新标记实用程序,使用您的企业凭据重新签名移动应用程序

使用您的企业凭据手动重新签署移动应用程序

下列  视频(3:36)展示了如何重新签名移动应用程序: 

用您的企业凭据重新签署移动应用程序 

以下过程提供了使用BMC Digital Workplace安装随附的iOS重新签名和重新标记实用程序重新签名BMC Digital Workplace移动应用程序的说明。

在Mac计算机上,安装企业分发证书以重新签署您之前创建的移动应用程序

在Mac计算机上,下载您先前创建的内部分发配置文件

将iOS重新签名和更名实用程序Resign.dmg文件下载或复制  到Mac计算机。

该实用程序位于DigitalWorkplaceHome \ DWP \ IPA \ download \ utils目录中,其中DigitalWorkplaceHome  是安装目录。

打开Resign.dmg文件并运行ResigningUtility.app应用。

选择BMC Digital Workplace应用程序,然后单击Next

选择一个版本,然后单击下一步

创建一个新的重新签名项目或打开一个现有的项目。如果要创建新项目,请提供以下详细信息:

项目名称 -为重新签名的项目提供一个名称,例如DigitalResignDemo

项目位置—在Mac计算机上选择一个目录来存储项目。

该实用程序会创建一个项目文件,例如DigitalResignDemo.resign和项目目录中的其他子目录。

注意

您可以使用同一项目文件来重新签名作为修补程序或新内部版本提供的新xarchive文件。


转到“ 配置”选项卡,然后输入所有必需参数的值,并为可选参数设置值(如果需要)。

该实用程序显示每个参数的简短描述。标有星号(*)的参数为必填项。

(可选)执行以下步骤以自定义视觉设计。有关说明,请参阅对Apple iOS客户端应用程序重新命名

注意

重新签名和重新标记在同一项目中完成。

从左窗格的项目列表中,导航到Projects> projectName > Entitlements。在这里,projectName是您之前提供的项目的名称,例如DigitalResignDemo

选择MyIT.entitlements文件。

您可以在右窗格中预览权利文件的内容。

点击打开进入编辑和更新的价值观  application-identifier和keychain-access-groups。

application-identifier用您的团队前缀和应用ID 替换密钥的值。

例如,取代ABCDE-ID .com.bmc.bsmapps.MyIT与  TEAMBUNDLEID.com.companyName.DWP

将keychain-access-groups键值替换为您的团队前缀和应用ID。

例如,用  TEAMBUNDLEID.com.companyName.DWP替换ABCDE- ID.com.bmc.bsmapps.MyIT

注意

仅在第一次重新签名特定版本的BMC Digital Workplace时,才必须更新权利文件。每次重新签名BMC Digital Workplace版本时,都可以重复使用相同的权利文件。

从左窗格的项目列表中,导航到  Projects> projectName  > xcarchive> exportOptions.plist,然后 单击  Open to Edit

输入用于您的应用程序的ProvisioningProfiles,  signingCertificate和  teamID参数的值  。

注意

请勿忘记替换代码中的示例值,如下所示。如果要直接复制和粘贴代码示例,也请记住删除注释。


{

compileBitcode = 0

method = enterprise

provisioningProfiles = {

com.bmc.testdistmyit = "TestDistMyITDist"; //example value, replace va

lue with profile value provided for app

}

signingCertificate = "iPhone Distribution: BMC Software, Inc." //example va

lue, replace value with enterprise certificate create earlier

signingStyle = manual

stripSwiftSymbols = 1

teamID = "M2H62N6SQK" //example value, replace value with team's ID

provided for app

thinning =

}

保存文件。

右键点击项目名称,然后点击重新签名

选择以下项目:

用于重新签名的xcarchive文件,并从中生成一个.ipa文件。 

注意

BMC补救服务管理OnDemand客户必须从EPD(位于BMC Digital Workplace  Basic Cloud  和BMC Digital Workplace  Advanced Cloud  产品的18.02.00版本下)下载BMC iOS Rebranding Utility版本18.02.00  xcarchive文件,并将其解压缩。


您的企业证书,它是先前创建的。

您为企业证书创建的配置文件。

点击重新签名。在重新签名项目目录中的IPA子目录中创建

一个.ipa文件。向您的iOS用户提供此.ipa文件,以安装BMC Digital Workplace应用程序。

使用您的企业凭据手动重新签署移动应用程序

此过程提供了手动重新签名BMC Digital Workplace移动应用程序的说明。

现在您可以重新签名移动应用程序了。您将使用dwp.ipa文件。

在终端应用程序中,解压缩dwp。通过输入以下命令来创建ipa文件。将/path/ 替换为系统上的特定路径;例如,/User/bill/DWP-working/.

mkdir /path/DWP-ResignDir

cd /path/DWP-ResignDir

unzip –oq /path/dwp.ipa

通过输入以下命令来清除以前的构建文件:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

rm -rf ~/Library/Developer/Xcode/DerivedData

rm -rf ~/Library/Caches/com.apple.dt.Xcode

创建exportOptions.plist文件,然后单击  打开以编辑

输入  供应配置文件,  signingCertificate和  teamID  参数的值。您可以在Apple Developer门户中找到这些参数的值。

{

compileBitcode = 0

method = enterprise

provisioningProfiles = {

com.bmc.testdistmyit = "TestDistMyITDist";

}

signingCertificate = "iPhone Distribution: BMC Software, Inc."

signingStyle = manual

stripSwiftSymbols = 1

teamID = "M2H62N6SQK"

thinning =

}

在命令行中,运行以下命令:


xcodebuild -exportArchive -archivePath dwp.xcarchive \

-exportPath ./dwp.ipa \

-exportOptionsPlist exportOptions.plist


使用以下命令重新签署快速代码dylib。替换BMC Software,Inc 与您的组织名称。

/usr/bin/codesign -f -s "iPhone Distribution: BMC Software, Inc." ./Payl

oad/MyIT.app/Frameworks/*.dylib

在Xcode中,在/ path / DWP-resign-ipa目录中创建  MyIT.entitlements文件,并添加以下行。您可以下载MyIT.entitlements的副本以用作起点。

MyIT.Entitlements文件

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com

/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>application-identifier</key>

<string>ABCDE-ID.com.bmc.bsmapps.MyIT</string>

<key>aps-environment</key>

<string>production</string>

<key>get-task-allow</key>

<false/>

<key>keychain-access-groups</key>

<array>

<string>ABCDE-ID.com.bmc.bsmapps.MyIT</string>

</array>

</dict>

</plist>

在样本权利文件中,执行以下操作:

application-identifier用您的团队前缀和应用ID 替换密钥的值。

例如,取代ABCDE-ID .com.bmc.bsmapps.MyITTEAMBUNDLEID.com .companyName.DWP

将keychain-access-groups 键值替换为  您的团队前缀和应用ID。

例如,更换ABCDE-ID.com .bmc.bsmapps.MyITTEAMBUNDLEID.com .companyName.DWP

执行以下步骤来自定义视觉设计。有关说明,请参阅对Apple iOS客户端应用程序重新命名

将创建的配置文件放入  / path / DWP-ResignDir 文件夹,然后将文件重命名为  MyIT.mobileprovision。有关说明,请参阅  创建内部分配配置文件,  以获取有关创建自己的配置文件的详细信息。

导航到/ path / DWP-ResignDir 文件夹。

cd /path/DWP-ResignDir

/ path / DWP-ResignDir 文件夹中,执行以下操作:

设置捆绑包ID(有关更多信息,请参阅Apple Developer Site),其中CompanyDomain您的域是反向DNS格式的域(例如com.acme),并且MYIT-APPNAME是BMC Digital Workplace的唯一内部应用程序名称(例如Digital-Acme)):

/usr/libexec/PlistBuddy -c "Set CFBundleIdentifier CompanyDomain.MYIT-APPNAME"

./Payload/MyIT.app/Info.plist

设置在iOS设备上显示的应用程序名称,其中ApplicationName是BMC Digital Workplace应用程序的名称(例如Digital WorkplaceAcme Digital Workplace):

/usr/libexec/PlistBuddy -c "Set CFBundleDisplayName ApplicationName" ./

Payload/MyIT.app/Info.plist

将默认的BMC Digital Workplace服务器设置为BMC Digital Workplace服务器,其中SERVERBMC Digital Workplace服务器名称(例如DWP.acme.com)为:

/usr/libexec/PlistBuddy -c "Set myit-server SERVER" ./Payload/MyIT.app/Info.plist

设置BMC Digital Workplace服务器的默认端口,其中PORT是客户端访问服务器的TCP端口(例如80443):

/usr/libexec/PlistBuddy -c "Set myit-port PORT" ./Payload/MyIT.app/Info.plist

如示例所示,替换移动供应文件:

cp "MyIT.mobileprovision" "./Payload/MyIT.app/embedded.mobileprovision"

删除BMC代码签名,如示例所示:

rm -r "./Payload/MyIT.app/_CodeSignature"

发出以下命令以重新签署IPA。替换BMC Software,Inc 与您的组织名称。

/usr/bin/codesign -f -s "iPhone Distribution: BMC Software, Inc." -

-entitlements "./MyIT.entitlements" "./Payload/MyIT.app"

如示例所示,创建IPA zip文件:

zip -qr "DWP-rebranded.ipa" Payload

用您的APNS证书替换BMC Digital Workplace APNS证书

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345