蘋(píng)果重簽名Apple iOS客戶端應(yīng)用程序以進(jìn)行企業(yè)分發(fā)
以下過(guò)程描述了如何重新簽名BMC Digital Workplace,以便可以將移動(dòng)應(yīng)用程序部署到使用Apple iOS設(shè)備的最終用戶胸私。重新簽名IOS客戶端必須在投入生產(chǎn)之前執(zhí)行堡称。
在你開(kāi)始之前
您必須是Apple Enterprise Program的成員才能從Apple Developer Portal獲得所需的開(kāi)發(fā)工具脐湾。有關(guān)更多信息,請(qǐng)參見(jiàn)以下資源:
Apple企業(yè)計(jì)劃申請(qǐng)書(shū)-Apple要求您成為擁有DUNS編號(hào)的公司或組織。企業(yè)帳戶使您可以在內(nèi)部分發(fā)重新標(biāo)記的應(yīng)用程序陈莽。組織帳戶使您只能通過(guò)Apple商店分發(fā)應(yīng)用程序。
Apple Developer Portal?—包含用于開(kāi)發(fā)Apple iOS應(yīng)用程序的開(kāi)發(fā)工具和文檔虽抄。
管理團(tuán)隊(duì)?-介紹如何分配適當(dāng)?shù)膱F(tuán)隊(duì)角色传透。要完成以下過(guò)程,必須將團(tuán)隊(duì)代理角色分配給將創(chuàng)建證書(shū)的用戶极颓。
維護(hù)您的簽名身份和證書(shū)?-提供有關(guān)證書(shū)的信息朱盐。
2.您必須安裝XCode和Apple根證書(shū)。
安裝Xcode和Apple根證書(shū)
您只需要執(zhí)行一次此過(guò)程菠隆。在重新簽名過(guò)程中兵琳,您需要Xcode開(kāi)發(fā)人員工具來(lái)安裝權(quán)利文件。
在運(yùn)行MacOS的Apple計(jì)算機(jī)上骇径,從App Store安裝免費(fèi)的Xcode躯肌。
Xcode不能在iPad,iPhone或其他iOS設(shè)備上使用破衔。
安裝Apple根證書(shū)清女,如下所示:
轉(zhuǎn)到http://www.apple.com/certificate Authority /。
下載Apple Inc.根證書(shū)晰筛。
雙擊該文件嫡丙,然后將其安裝在“?鑰匙串”中(登錄)。
重新簽署Apple iOS客戶端應(yīng)用程序
執(zhí)行以下步驟以重新簽署Apple iOS應(yīng)用程序:
創(chuàng)建企業(yè)發(fā)行證書(shū)以重新簽署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)建蘋(píng)果推送通知服務(wù)(APNS)證書(shū)
使用您的企業(yè)憑據(jù)重新簽署移動(dòng)應(yīng)用程序
創(chuàng)建企業(yè)發(fā)行證書(shū)以重新簽署B(yǎng)MC Digital Workplace
您將使用此證書(shū)對(duì)BMC Digital Workplace iOS應(yīng)用程序進(jìn)行簽名读第。
以團(tuán)隊(duì)代理角色登錄到https://developer.apple.com/account/ios/certificate上的iOS Provisioning Portal?曙博。
在“?證書(shū)”部分中,單擊加號(hào)(+)添加證書(shū)怜瞒。
在制作部分中父泳,選擇內(nèi)部和臨時(shí)。
使用證書(shū)助手生成證書(shū)簽名請(qǐng)求(CSR)吴汪。
按照Apple在CSR屏幕上提供的說(shuō)明進(jìn)行操作惠窄。
將CSR上傳到iOS Provisioning Portal,然后下載分發(fā)證書(shū)漾橙。
保存證書(shū)杆融,然后使用“鑰匙串訪問(wèn)”應(yīng)用程序?qū)⑵浯蜷_(kāi)。
要將證書(shū)導(dǎo)出到其他版本近刘,請(qǐng)將其保存為.p12格式:
在“?密鑰鏈訪問(wèn)”中擒贸,轉(zhuǎn)到“?我的證書(shū)”部分臀晃。
右鍵單擊下載的證書(shū),然后單擊導(dǎo)出介劫。
將證書(shū)保存為.p12格式徽惋,并在需要時(shí)提供安全密碼。
為BMC Digital Workplace創(chuàng)建應(yīng)用程序組
使用團(tuán)隊(duì)代理角色座韵,登錄到iOS Provisioning Portal险绘。
在“?標(biāo)識(shí)符”部分中,單擊“?應(yīng)用程序組”選項(xiàng)卡誉碴。
單擊加號(hào)(+)添加新的標(biāo)識(shí)符宦棺。
在“?描述”字段中,鍵入一個(gè)名稱黔帕,該名稱將在門(mén)戶中輕松地為您標(biāo)識(shí)您的應(yīng)用程序(例如Calbro Digital Workplace Group)代咸。
在“?ID”字段中,輸入唯一的組名(例如??group.com.companyName.DWP)成黄。
點(diǎn)擊繼續(xù)呐芥。
點(diǎn)擊注冊(cè)。
出現(xiàn)新的應(yīng)用程序組奋岁,如下圖所示:
為BMC Digital Workplace創(chuàng)建iCloud容器
使用團(tuán)隊(duì)代理角色思瘟,登錄到iOS Provisioning Portal。?
在“標(biāo)識(shí)符”部分中闻伶,單擊“?iCloud容器”選項(xiàng)卡滨攻。?
單擊加號(hào)(+)添加新的標(biāo)識(shí)符。?
在“?描述”字段中蓝翰,鍵入一個(gè)名稱光绕,該名稱將在門(mén)戶中輕松地識(shí)別您的應(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ù)重新簽署移動(dòng)應(yīng)用程序,您將需要提供捆綁軟件ID??拒啰。
使用團(tuán)隊(duì)代理角色驯绎,登錄到iOS Provisioning Portal。
在“??標(biāo)識(shí)符”??部分中谋旦,單擊“??應(yīng)用程序ID”??選項(xiàng)卡剩失。
單擊加號(hào)(+)添加新的標(biāo)識(shí)符屈尼。
在“??描述”??字段中,輸入一個(gè)名稱拴孤,該名稱將在門(mén)戶中輕松地為您標(biāo)識(shí)您的應(yīng)用程序(例如??Calbro Digital Workplace)脾歧。
記下您將在重新簽名過(guò)程中使用的應(yīng)用程序ID前綴(團(tuán)隊(duì)ID)。
選擇??Explicit App ID演熟,然后在Bundle ID??字段中輸入一個(gè)唯一標(biāo)識(shí)符??(例如??com.companyName.DWP)鞭执。
記下用于重新簽名過(guò)程的分發(fā)包ID。
在“?應(yīng)用程序服務(wù)”部分中芒粹,保留默認(rèn)設(shè)置兄纺,但要確保已選擇“關(guān)聯(lián)的域”,“推送通知”化漆,“ iCloud”和“應(yīng)用程序組”估脆。
對(duì)于??iCloud,選擇“??包括CloudKit支持??(需要Xcode 6)”選項(xiàng)座云。?
對(duì)于??數(shù)據(jù)保護(hù)旁蔼,??選擇??完全保護(hù)。
單擊??繼續(xù)疙教。
要返回“?標(biāo)識(shí)符”列表棺聊,請(qǐng)單擊??“完成”佳励。
出現(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)識(shí)符”部分中塑悼,單擊“?應(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移動(dòng)應(yīng)用程序部署到您的組織。
以Team Agent角色登錄到iOS Provisioning Portal压鉴。
在“?配置”部分中崖咨,單擊“?分發(fā)”選項(xiàng)卡。
單擊加號(hào)(+)添加新的配置文件晴弃。
在“創(chuàng)建iOS配置文件”頁(yè)面上掩幢,完成以下步驟:
對(duì)于“?分配方法”,選擇“內(nèi)部”上鞠。
選擇您創(chuàng)建的分發(fā)證書(shū)际邻。
選擇您在為BMC Digital Workplace版本創(chuàng)建應(yīng)用程序ID中創(chuàng)建的應(yīng)用程序ID。
下載配置文件芍阎。
創(chuàng)建Apple Push Notification Service(APNS)證書(shū)
您需要此證書(shū)世曾,以便移動(dòng)應(yīng)用程序可以接收通知。
以Team Agent角色登錄到iOS Provisioning Portal谴咸。
在“?證書(shū)”部分中轮听,單擊“?生產(chǎn)”選項(xiàng)卡。
在右上角岭佳,單擊加號(hào)(+)血巍。
選擇“?Apple Push Notification Service SSL(生產(chǎn))”。
選擇您創(chuàng)建的應(yīng)用前綴ID(團(tuán)隊(duì)ID)珊随。
使用證書(shū)助手生成證書(shū)簽名請(qǐng)求(CSR)述寡。
按照Apple在CSR屏幕上提供的說(shuō)明進(jìn)行操作。
雙擊證書(shū)以下載并導(dǎo)入到您的鑰匙串中叶洞。
用您的企業(yè)憑據(jù)重新簽署移動(dòng)應(yīng)用程序
您可以通過(guò)以下任意一種方式使用您的企業(yè)憑據(jù)重新簽署移動(dòng)應(yīng)用程序:
(推薦)??通過(guò)使用iOS重新簽名和重新標(biāo)記實(shí)用程序鲫凶,使用您的企業(yè)憑據(jù)重新簽名移動(dòng)應(yīng)用程序
使用您的企業(yè)憑據(jù)手動(dòng)重新簽署移動(dòng)應(yīng)用程序
下列??視頻(3:36)展示了如何重新簽名移動(dòng)應(yīng)用程序:?
用您的企業(yè)憑據(jù)重新簽署移動(dòng)應(yīng)用程序?
以下過(guò)程提供了使用BMC Digital Workplace安裝隨附的iOS重新簽名和重新標(biāo)記實(shí)用程序重新簽名BMC Digital Workplace移動(dòng)應(yīng)用程序的說(shuō)明。
在Mac計(jì)算機(jī)上衩辟,安裝企業(yè)分發(fā)證書(shū)以重新簽署您之前創(chuàng)建的移動(dò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??是安裝目錄财饥。
打開(kāi)Resign.dmg文件并運(yùn)行ResigningUtility.app應(yīng)用换吧。
選擇BMC Digital Workplace應(yīng)用程序,然后單擊Next钥星。
選擇一個(gè)版本,然后單擊下一步满着。
創(chuàng)建一個(gè)新的重新簽名項(xiàng)目或打開(kāi)一個(gè)現(xiàn)有的項(xiàng)目谦炒。如果要?jiǎng)?chuàng)建新項(xiàng)目贯莺,請(qǐng)?zhí)峁┮韵略敿?xì)信息:
項(xiàng)目名稱?-為重新簽名的項(xiàng)目提供一個(gè)名稱,例如DigitalResignDemo宁改。
項(xiàng)目位置—在Mac計(jì)算機(jī)上選擇一個(gè)目錄來(lái)存儲(chǔ)項(xiàng)目缕探。
該實(shí)用程序會(huì)創(chuàng)建一個(gè)項(xiàng)目文件,例如DigitalResignDemo.resign和項(xiàng)目目錄中的其他子目錄还蹲。
注意
您可以使用同一項(xiàng)目文件來(lái)重新簽名作為修補(bǔ)程序或新內(nèi)部版本提供的新xarchive文件爹耗。
轉(zhuǎn)到“?配置”選項(xiàng)卡,然后輸入所有必需參數(shù)的值谜喊,并為可選參數(shù)設(shè)置值(如果需要)潭兽。
該實(shí)用程序顯示每個(gè)參數(shù)的簡(jiǎn)短描述。標(biāo)有星號(hào)(*)的參數(shù)為必填項(xiàng)斗遏。
(可選)執(zhí)行以下步驟以自定義視覺(jué)設(shè)計(jì)山卦。有關(guān)說(shuō)明,請(qǐng)參閱對(duì)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)擊打開(kāi)進(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ù)的值??捻撑。
注意
請(qǐng)勿忘記替換代碼中的示例值,如下所示。如果要直接復(fù)制和粘貼代碼示例顾患,也請(qǐng)記住刪除注釋番捂。
{
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è)證書(shū)桨螺,它是先前創(chuàng)建的宾符。
您為企業(yè)證書(shū)創(chuàng)建的配置文件。
點(diǎn)擊重新簽名彭谁。在重新簽名項(xiàng)目目錄中的IPA子目錄中創(chuàng)建
一個(gè).ipa文件吸奴。向您的iOS用戶提供此.ipa文件,以安裝BMC Digital Workplace應(yīng)用程序缠局。
使用您的企業(yè)憑據(jù)手動(dòng)重新簽署移動(dòng)應(yīng)用程序
此過(guò)程提供了手動(dòng)重新簽名BMC Digital Workplace移動(dòng)應(yīng)用程序的說(shuō)明则奥。
現(xiàn)在您可以重新簽名移動(dòng)應(yīng)用程序了。您將使用dwp.ipa文件狭园。
在終端應(yīng)用程序中读处,解壓縮dwp。通過(guò)輸入以下命令來(lái)創(chuàng)建ipa文件唱矛。將/path/?替換為系統(tǒng)上的特定路徑罚舱;例如,/User/bill/DWP-working/.
mkdir /path/DWP-ResignDir
cd /path/DWP-ResignDir
unzip –oq /path/dwp.ipa
通過(guò)輸入以下命令來(lái)清除以前的構(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文件绎谦,然后單擊??打開(kāi)以編輯管闷。
輸入??供應(yīng)配置文件,??signingCertificate和??teamID??參數(shù)的值窃肠。您可以在Apple Developer門(mén)戶中找到這些參數(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í)行以下步驟來(lái)自定義視覺(jué)設(shè)計(jì)。有關(guān)說(shuō)明囊榜,請(qǐng)參閱對(duì)Apple iOS客戶端應(yīng)用程序重新命名审胸。
將創(chuàng)建的配置文件放入??/ path / DWP-ResignDir?文件夾,然后將文件重命名為??MyIT.mobileprovision卸勺。有關(guān)說(shuō)明砂沛,請(qǐng)參閱??創(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)更多信息悟狱,請(qǐng)參閱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èn)服務(wù)器的TCP端口(例如80或443):
/usr/libexec/PlistBuddy -c "Set myit-port PORT" ./Payload/MyIT.app/Info.plist
如示例所示挣菲,替換移動(dòng)供應(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證書(shū)替換BMC Digital Workplace APNS證書(shū)