蘋果重簽名Apple iOS客戶端應(yīng)用程序以進(jìn)行企業(yè)分發(fā)
以下過程描述了如何重新簽名BMC Digital Workplace,以便可以將移動應(yīng)用程序部署到使用Apple iOS設(shè)備的最終用戶。重新簽名IOS客戶端必須在投入生產(chǎn)之前執(zhí)行。
在你開始之前
您必須是Apple Enterprise Program的成員才能從Apple Developer Portal獲得所需的開發(fā)工具。有關(guān)更多信息,請參見以下資源:
Apple企業(yè)計(jì)劃申請書-Apple要求您成為擁有DUNS編號的公司或組織。企業(yè)帳戶使您可以在內(nèi)部分發(fā)重新標(biāo)記的應(yīng)用程序。組織帳戶使您只能通過Apple商店分發(fā)應(yīng)用程序。
Apple Developer Portal?—包含用于開發(fā)Apple iOS應(yīng)用程序的開發(fā)工具和文檔。
管理團(tuán)隊(duì)?-介紹如何分配適當(dāng)?shù)膱F(tuán)隊(duì)角色。要完成以下過程,必須將團(tuán)隊(duì)代理角色分配給將創(chuàng)建證書的用戶。
維護(hù)您的簽名身份和證書?-提供有關(guān)證書的信息。
2.您必須安裝XCode和Apple根證書。
安裝Xcode和Apple根證書
您只需要執(zhí)行一次此過程。在重新簽名過程中,您需要Xcode開發(fā)人員工具來安裝權(quán)利文件。
在運(yùn)行MacOS的Apple計(jì)算機(jī)上,從App Store安裝免費(fèi)的Xcode。
Xcode不能在iPad,iPhone或其他iOS設(shè)備上使用。
安裝Apple根證書,如下所示:
轉(zhuǎn)到http://www.apple.com/certificate Authority /。
下載Apple Inc.根證書。
雙擊該文件,然后將其安裝在“?鑰匙串”中(登錄)。
重新簽署Apple iOS客戶端應(yīng)用程序
執(zhí)行以下步驟以重新簽署Apple iOS應(yīng)用程序:
創(chuàng)建企業(yè)發(fā)行證書以重新簽署B(yǎng)MC Digital Workplace
為BMC Digital Worplace創(chuàng)建一個(gè)應(yīng)用程序組
為BMC Digital Workplace創(chuàng)建一個(gè)iCloud容器
為您的BMC Digital Workplace版本創(chuàng)建應(yīng)用程序ID和捆綁ID
編輯您現(xiàn)有的應(yīng)用程序ID或?qū)pp Group和iCloud添加到您的BMC Digital Workplace版本中
創(chuàng)建蘋果推送通知服務(wù)(APNS)證書
使用您的企業(yè)憑據(jù)重新簽署移動應(yīng)用程序
創(chuàng)建企業(yè)發(fā)行證書以重新簽署B(yǎng)MC Digital Workplace
您將使用此證書對BMC Digital Workplace iOS應(yīng)用程序進(jìn)行簽名。
以團(tuán)隊(duì)代理角色登錄到https://developer.apple.com/account/ios/certificate上的iOS Provisioning Portal?。
在“?證書”部分中,單擊加號(+)添加證書。
在制作部分中,選擇內(nèi)部和臨時(shí)。
使用證書助手生成證書簽名請求(CSR)。
按照Apple在CSR屏幕上提供的說明進(jìn)行操作。
將CSR上傳到iOS Provisioning Portal,然后下載分發(fā)證書。
保存證書,然后使用“鑰匙串訪問”應(yīng)用程序?qū)⑵浯蜷_。
要將證書導(dǎo)出到其他版本,請將其保存為.p12格式:
在“?密鑰鏈訪問”中,轉(zhuǎn)到“?我的證書”部分。
右鍵單擊下載的證書,然后單擊導(dǎo)出。
將證書保存為.p12格式,并在需要時(shí)提供安全密碼。
為BMC Digital Workplace創(chuàng)建應(yīng)用程序組
使用團(tuán)隊(duì)代理角色,登錄到iOS Provisioning Portal。
在“?標(biāo)識符”部分中,單擊“?應(yīng)用程序組”選項(xiàng)卡。
單擊加號(+)添加新的標(biāo)識符。
在“?描述”字段中,鍵入一個(gè)名稱,該名稱將在門戶中輕松地為您標(biāo)識您的應(yīng)用程序(例如Calbro Digital Workplace Group)。
在“?ID”字段中,輸入唯一的組名(例如??group.com.companyName.DWP)。
點(diǎn)擊繼續(xù)。
點(diǎn)擊注冊。
出現(xiàn)新的應(yīng)用程序組,如下圖所示:

為BMC Digital Workplace創(chuàng)建iCloud容器
使用團(tuán)隊(duì)代理角色,登錄到iOS Provisioning Portal。?
在“標(biāo)識符”部分中,單擊“?iCloud容器”選項(xiàng)卡。?
單擊加號(+)添加新的標(biāo)識符。?
在“?描述”字段中,鍵入一個(gè)名稱,該名稱將在門戶中輕松地識別您的應(yīng)用程序(例如Digital Workplace iCloud Container)。?
在ID字段中,輸入一個(gè)唯一的組的名稱(例如,??iCloud中。group.com.companyName.DWP)。
點(diǎn)擊繼續(xù)。
為您的BMC Digital Workplace版本創(chuàng)建應(yīng)用程序ID和捆綁ID
在創(chuàng)建內(nèi)部分發(fā)配置概要文件中,您將需要應(yīng)用程序ID??。要使用您的企業(yè)憑據(jù)重新簽署移動應(yīng)用程序,您將需要提供捆綁軟件ID??。
使用團(tuán)隊(duì)代理角色,登錄到iOS Provisioning Portal。
在“??標(biāo)識符”??部分中,單擊“??應(yīng)用程序ID”??選項(xiàng)卡。
單擊加號(+)添加新的標(biāo)識符。
在“??描述”??字段中,輸入一個(gè)名稱,該名稱將在門戶中輕松地為您標(biāo)識您的應(yīng)用程序(例如??Calbro Digital Workplace)。
記下您將在重新簽名過程中使用的應(yīng)用程序ID前綴(團(tuán)隊(duì)ID)。
選擇??Explicit App ID,然后在Bundle ID??字段中輸入一個(gè)唯一標(biāo)識符??(例如??com.companyName.DWP)。
記下用于重新簽名過程的分發(fā)包ID。
在“?應(yīng)用程序服務(wù)”部分中,保留默認(rèn)設(shè)置,但要確保已選擇“關(guān)聯(lián)的域”,“推送通知”,“ iCloud”和“應(yīng)用程序組”。
對于??iCloud,選擇“??包括CloudKit支持??(需要Xcode 6)”選項(xiàng)。?
對于??數(shù)據(jù)保護(hù),??選擇??完全保護(hù)。
單擊??繼續(xù)。
要返回“?標(biāo)識符”列表,請單擊??“完成”。
出現(xiàn)新的應(yīng)用程序ID,如下圖所示:

編輯現(xiàn)有應(yīng)用程序ID或?qū)pp Group和iCloud添加到您的BMC Digital Workplace版本中
使用團(tuán)隊(duì)代理角色登錄到iOS Provisioning Portal。
在“?標(biāo)識符”部分中,單擊“?應(yīng)用程序ID”選項(xiàng)卡。
選擇您的BMC Digital Workplace應(yīng)用程序ID(例如??com.companyName.DWP)。
點(diǎn)擊編輯。
點(diǎn)擊“?應(yīng)用程序組?”旁邊的選擇框。
當(dāng)提示您啟用應(yīng)用程序組時(shí),單擊確定。

單擊“?應(yīng)用程序組”上的“?編輯?”?。
選擇為BMC Digital Workplace創(chuàng)建的應(yīng)用程序組(例如??group.com.companyName.DWP)。
點(diǎn)擊繼續(xù)。
點(diǎn)擊分配。
單擊完成。
單擊iCloud選項(xiàng)旁邊的“?編輯”。?
選擇上面創(chuàng)建的iCloud的容器(例如,??iCloud中。group.com.companyName.DWP)。
點(diǎn)擊繼續(xù)。
點(diǎn)擊分配。
單擊完成。
創(chuàng)建內(nèi)部分配配置文件
您需要此配置文件才能將BMC Digital Workplace移動應(yīng)用程序部署到您的組織。
以Team Agent角色登錄到iOS Provisioning Portal。
在“?配置”部分中,單擊“?分發(fā)”選項(xiàng)卡。
單擊加號(+)添加新的配置文件。
在“創(chuàng)建iOS配置文件”頁面上,完成以下步驟:
對于“?分配方法”,選擇“內(nèi)部”。
選擇您創(chuàng)建的分發(fā)證書。
選擇您在為BMC Digital Workplace版本創(chuàng)建應(yīng)用程序ID中創(chuàng)建的應(yīng)用程序ID。
下載配置文件。
創(chuàng)建Apple Push Notification Service(APNS)證書
您需要此證書,以便移動應(yīng)用程序可以接收通知。
以Team Agent角色登錄到iOS Provisioning Portal。
在“?證書”部分中,單擊“?生產(chǎn)”選項(xiàng)卡。
在右上角,單擊加號(+)。
選擇“?Apple Push Notification Service SSL(生產(chǎn))”。
選擇您創(chuàng)建的應(yīng)用前綴ID(團(tuán)隊(duì)ID)。
使用證書助手生成證書簽名請求(CSR)。
按照Apple在CSR屏幕上提供的說明進(jìn)行操作。
雙擊證書以下載并導(dǎo)入到您的鑰匙串中。
用您的企業(yè)憑據(jù)重新簽署移動應(yīng)用程序
您可以通過以下任意一種方式使用您的企業(yè)憑據(jù)重新簽署移動應(yīng)用程序:
(推薦)??通過使用iOS重新簽名和重新標(biāo)記實(shí)用程序,使用您的企業(yè)憑據(jù)重新簽名移動應(yīng)用程序
使用您的企業(yè)憑據(jù)手動重新簽署移動應(yīng)用程序
下列??視頻(3:36)展示了如何重新簽名移動應(yīng)用程序:?
用您的企業(yè)憑據(jù)重新簽署移動應(yīng)用程序?
以下過程提供了使用BMC Digital Workplace安裝隨附的iOS重新簽名和重新標(biāo)記實(shí)用程序重新簽名BMC Digital Workplace移動應(yīng)用程序的說明。
在Mac計(jì)算機(jī)上,安裝企業(yè)分發(fā)證書以重新簽署您之前創(chuàng)建的移動應(yīng)用程序。
在Mac計(jì)算機(jī)上,下載您先前創(chuàng)建的內(nèi)部分發(fā)配置文件。
將iOS重新簽名和更名實(shí)用程序Resign.dmg文件下載或復(fù)制??到Mac計(jì)算機(jī)。
該實(shí)用程序位于DigitalWorkplaceHome?\ DWP \ IPA \ download \ utils目錄中,其中DigitalWorkplaceHome??是安裝目錄。
打開Resign.dmg文件并運(yùn)行ResigningUtility.app應(yīng)用。
選擇BMC Digital Workplace應(yīng)用程序,然后單擊Next。
選擇一個(gè)版本,然后單擊下一步。
創(chuàng)建一個(gè)新的重新簽名項(xiàng)目或打開一個(gè)現(xiàn)有的項(xiàng)目。如果要創(chuàng)建新項(xiàng)目,請?zhí)峁┮韵略敿?xì)信息:
項(xiàng)目名稱?-為重新簽名的項(xiàng)目提供一個(gè)名稱,例如DigitalResignDemo。
項(xiàng)目位置—在Mac計(jì)算機(jī)上選擇一個(gè)目錄來存儲項(xiàng)目。
該實(shí)用程序會創(chuàng)建一個(gè)項(xiàng)目文件,例如DigitalResignDemo.resign和項(xiàng)目目錄中的其他子目錄。
注意
您可以使用同一項(xiàng)目文件來重新簽名作為修補(bǔ)程序或新內(nèi)部版本提供的新xarchive文件。
轉(zhuǎn)到“?配置”選項(xiàng)卡,然后輸入所有必需參數(shù)的值,并為可選參數(shù)設(shè)置值(如果需要)。
該實(shí)用程序顯示每個(gè)參數(shù)的簡短描述。標(biāo)有星號(*)的參數(shù)為必填項(xiàng)。
(可選)執(zhí)行以下步驟以自定義視覺設(shè)計(jì)。有關(guān)說明,請參閱對Apple iOS客戶端應(yīng)用程序重新命名。
注意
重新簽名和重新標(biāo)記在同一項(xiàng)目中完成。
從左窗格的項(xiàng)目列表中,導(dǎo)航到Projects>?projectName?>?Entitlements。在這里,projectName是您之前提供的項(xiàng)目的名稱,例如DigitalResignDemo。
選擇MyIT.entitlements文件。
您可以在右窗格中預(yù)覽權(quán)利文件的內(nèi)容。
點(diǎn)擊打開進(jìn)入編輯和更新的價(jià)值觀??application-identifier和keychain-access-groups。
application-identifier用您的團(tuán)隊(duì)前綴和應(yīng)用ID?替換密鑰的值。
例如,取代ABCDE-ID?.com.bmc.bsmapps.MyIT與??TEAMBUNDLEID.com.companyName.DWP
將keychain-access-groups鍵值替換為您的團(tuán)隊(duì)前綴和應(yīng)用ID。
例如,用??TEAMBUNDLEID.com.companyName.DWP替換ABCDE-?ID.com.bmc.bsmapps.MyIT
注意
僅在第一次重新簽名特定版本的BMC Digital Workplace時(shí),才必須更新權(quán)利文件。每次重新簽名BMC Digital Workplace版本時(shí),都可以重復(fù)使用相同的權(quán)利文件。
從左窗格的項(xiàng)目列表中,導(dǎo)航到??Projects>?projectName??>?xcarchive> exportOptions.plist,然后?單擊??Open to Edit。
輸入用于您的應(yīng)用程序的ProvisioningProfiles,??signingCertificate和??teamID參數(shù)的值??。
注意
請勿忘記替換代碼中的示例值,如下所示。如果要直接復(fù)制和粘貼代碼示例,也請記住刪除注釋。
{
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 =
}
保存文件。
右鍵點(diǎn)擊項(xiàng)目名稱,然后點(diǎn)擊重新簽名。
選擇以下項(xiàng)目:
用于重新簽名的xcarchive文件,并從中生成一個(gè).ipa文件。?
注意
BMC補(bǔ)救服務(wù)管理OnDemand客戶必須從EPD(位于BMC Digital Workplace??Basic Cloud??和BMC Digital Workplace??Advanced Cloud??產(chǎn)品的18.02.00版本下)下載BMC iOS Rebranding Utility版本18.02.00??xcarchive文件,并將其解壓縮。
您的企業(yè)證書,它是先前創(chuàng)建的。
您為企業(yè)證書創(chuàng)建的配置文件。
點(diǎn)擊重新簽名。在重新簽名項(xiàng)目目錄中的IPA子目錄中創(chuàng)建
一個(gè).ipa文件。向您的iOS用戶提供此.ipa文件,以安裝BMC Digital Workplace應(yīng)用程序。
使用您的企業(yè)憑據(jù)手動重新簽署移動應(yīng)用程序
此過程提供了手動重新簽名BMC Digital Workplace移動應(yīng)用程序的說明。
現(xiàn)在您可以重新簽名移動應(yīng)用程序了。您將使用dwp.ipa文件。
在終端應(yīng)用程序中,解壓縮dwp。通過輸入以下命令來創(chuàng)建ipa文件。將/path/?替換為系統(tǒng)上的特定路徑;例如,/User/bill/DWP-working/.
mkdir /path/DWP-ResignDir
cd /path/DWP-ResignDir
unzip –oq /path/dwp.ipa
通過輸入以下命令來清除以前的構(gòu)建文件:
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
創(chuàng)建exportOptions.plist文件,然后單擊??打開以編輯。
輸入??供應(yīng)配置文件,??signingCertificate和??teamID??參數(shù)的值。您可以在Apple Developer門戶中找到這些參數(shù)的值。
{
compileBitcode = 0
method = enterprise
provisioningProfiles = {
com.bmc.testdistmyit = "TestDistMyITDist";
}
signingCertificate = "iPhone Distribution: BMC Software, Inc."
signingStyle = manual
stripSwiftSymbols = 1
teamID = "M2H62N6SQK"
thinning =
}
在命令行中,運(yùn)行以下命令:
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目錄中創(chuàng)建??MyIT.entitlements文件,并添加以下行。您可以下載MyIT.entitlements的副本以用作起點(diǎn)。
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>
在樣本權(quán)利文件中,執(zhí)行以下操作:
application-identifier用您的團(tuán)隊(duì)前綴和應(yīng)用ID?替換密鑰的值。
例如,取代ABCDE-ID?.com.bmc.bsmapps.MyIT與TEAMBUNDLEID.com?.companyName.DWP。

將keychain-access-groups?鍵值替換為??您的團(tuán)隊(duì)前綴和應(yīng)用ID。
例如,更換ABCDE-ID.com?.bmc.bsmapps.MyIT與TEAMBUNDLEID.com?.companyName.DWP。

執(zhí)行以下步驟來自定義視覺設(shè)計(jì)。有關(guān)說明,請參閱對Apple iOS客戶端應(yīng)用程序重新命名。
將創(chuàng)建的配置文件放入??/ path / DWP-ResignDir?文件夾,然后將文件重命名為??MyIT.mobileprovision。有關(guān)說明,請參閱??創(chuàng)建內(nèi)部分配配置文件,??以獲取有關(guān)創(chuàng)建自己的配置文件的詳細(xì)信息。
導(dǎo)航到/ path / DWP-ResignDir?文件夾。
cd /path/DWP-ResignDir
在/ path / DWP-ResignDir?文件夾中,執(zhí)行以下操作:
設(shè)置捆綁包ID(有關(guān)更多信息,請參閱Apple Developer Site),其中CompanyDomain您的域是反向DNS格式的域(例如com.acme),并且MYIT-APPNAME是BMC Digital Workplace的唯一內(nèi)部應(yīng)用程序名稱(例如Digital-Acme)):
/usr/libexec/PlistBuddy -c "Set CFBundleIdentifier CompanyDomain.MYIT-APPNAME"
./Payload/MyIT.app/Info.plist
設(shè)置在iOS設(shè)備上顯示的應(yīng)用程序名稱,其中ApplicationName是BMC Digital Workplace應(yīng)用程序的名稱(例如Digital Workplace或Acme Digital Workplace):
/usr/libexec/PlistBuddy -c "Set CFBundleDisplayName ApplicationName" ./
Payload/MyIT.app/Info.plist
將默認(rèn)的BMC Digital Workplace服務(wù)器設(shè)置為BMC Digital Workplace服務(wù)器,其中SERVERBMC Digital Workplace服務(wù)器名稱(例如DWP.acme.com)為:
/usr/libexec/PlistBuddy -c "Set myit-server SERVER" ./Payload/MyIT.app/Info.plist
設(shè)置BMC Digital Workplace服務(wù)器的默認(rèn)端口,其中PORT是客戶端訪問服務(wù)器的TCP端口(例如80或443):
/usr/libexec/PlistBuddy -c "Set myit-port PORT" ./Payload/MyIT.app/Info.plist
如示例所示,替換移動供應(yīng)文件:
cp "MyIT.mobileprovision" "./Payload/MyIT.app/embedded.mobileprovision"
刪除BMC代碼簽名,如示例所示:
rm -r "./Payload/MyIT.app/_CodeSignature"
發(fā)出以下命令以重新簽署IPA。替換BMC Software,Inc?。與您的組織名稱。
/usr/bin/codesign -f -s "iPhone Distribution: BMC Software, Inc." -
-entitlements "./MyIT.entitlements" "./Payload/MyIT.app"
如示例所示,創(chuàng)建IPA zip文件:
zip -qr "DWP-rebranded.ipa" Payload
用您的APNS證書替換BMC Digital Workplace APNS證書