苹果重签名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版本中
创建企业发行证书以重新签署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.MyIT与TEAMBUNDLEID.com .companyName.DWP。
将keychain-access-groups 键值替换为 您的团队前缀和应用ID。
例如,更换ABCDE-ID.com .bmc.bsmapps.MyIT与TEAMBUNDLEID.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 Workplace或Acme 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端口(例如80或443):
/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证书