1 修改xcodeproj/project.pbxproj
文件
這個文件修改的是項目的證書配置和描述文件配置
關鍵修改如下
對于打Release模式包的,找到這一段
638234841AE62041001700C9 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6A6EBCC368D67FB5C2365F82 /* Pods-Toon.release.xcconfig */;
buildSettings = {
....
PRODUCT_BUNDLE_IDENTIFIER = com.test.enterprise.xxx
PROVISIONING_PROFILE = "d73920ec-9178-4f26-a0b8-c89ca2bbea6d";
PROVISIONING_PROFILE_SPECIFIER = com.test.enterprise.xxx
DEVELOPMENT_TEAM = TLWP697Z5D;
....
};
name = Release;
};
將這四個值配置成對應的證書和描述文件即可
2 構建archive包
-
使用cocoapods管理第三方的工程使用這條命令打包
xcodebuild archive -workspace 項目名稱.xcworkspace -scheme 項目名稱 -configuration Release -archivePath archive包存儲路徑 CODE_SIGN_IDENTITY="證書" PROVISIONING_PROFILE="描述文件UUID"
-
未使用Pod管理第三方的工程使用這個
xcodebuild archive -project 項目名稱.xcodeproj -scheme 項目名稱 -configuration Release -archivePath archive包存儲路徑 CODE_SIGN_IDENTITY=證書 PROVISIONING_PROFILE=描述文件UUID
證書去鑰匙串中查找彤侍,需要注意的是這里需要把證書的完整名字拷貝過來璃搜。
描述文件的UUID在下面會有介紹如何獲取
示例
? xcodebuild archive -workspace Test.xcworkspace -scheme Test -configuration Release -archivePath ~/Desktop/Test.xcarchive CODE_SIGN_IDENTITY="iPhone Distribution: Beijing Test Internet Technology Co. Ltd." PROVISIONING_PROFILE="d78212ec-9128-4f26-a428-c89ca5232bea6d"
3 導出ipa包
xcodebuild -exportArchive
-archivePath archive文件的地址.xcarchive
-exportPath 導出的文件夾地址
-exportOptionsPlist exprotOptionsPlist.plist
CODE_SIGN_IDENTITY=證書
PROVISIONING_PROFILE=描述文件UUID
各參數(shù)說明
-
-archivePath
指定從哪里讀取archive包 -
-exportPath
指定ipa包導出后的放置位置 -
-exportOptionsPlist
該參數(shù)的值是一個plist文件的地址丙唧,打包時候的一些配置,該文件中的值如下- teamID - 值為證書的teamID
- method - 指定打包方式,是內側包、企業(yè)包晋控、App Store包。值為下面幾個: enterprise姓赤、ad-hoc赡译、..
- ...
-
CODE_SIGN_IDENTITY
- 打包證書 -
PROVISIONING_PROFILE
- 使用的描述文件
exportOptionsPlist
在用xcode手動打包的時候會自動生成的,和ipa文件在同一個目錄不铆,可以拷貝來用蝌焚。也可以手動創(chuàng)建。文件中需要配置的值在上面已經說明誓斥。
示例
? xcodebuild -exportArchive -archivePath ~/Desktop/Test.xcarchive -exportPath ~/Desktop/ -exportOptionsPlist ~/WorkSpace/archive/ExportOptions.plist CODE_SIGN_IDENTITY="iPhone Distribution: Beijing Test Internet Technology Co. Ltd." PROVISIONING_PROFILE="d78212ec-9128-4f26-a428-c89ca5232bea6d"
通過xcodebuild
命令查看項目設置
通過命令查看描述文件的詳細信息 包括UUID等信息
/usr/bin/security cms -D -i 文件路徑
輸出如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AppIDName</key>
<string>comtestenterprisexx</string>
<key>ApplicationIdentifierPrefix</key>
<array>
<string>TLWP697Z5D</string>
</array>
<key>CreationDate</key>
<date>2018-06-06T03:36:47Z</date>
<key>Platform</key>
<array>
<string>iOS</string>
</array>
<key>IsXcodeManaged</key>
<false/>
<key>DeveloperCertificates</key>
<array>
<data>MIIFvjCCBKagAwIBAgIIS3zyrKjgso8wDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTYxMjI0MDkyNjA3WhcNMTkxMjI0MDkyNjA3WjCBvzEaMBgGCgmSJomT8ixkAQEMClRMV1A2OTdaNUQxSTBHBgNVBAMMQGlQaG9uZSBEaXN0cmlidXRpb246IEJlaWppbmcgU3lzd2luIEludGVybmV0IFRlY2hub2xvZ3kgQ28uIEx0ZC4xEzARBgNVBAsMClRMV1A2OTdaNUQxNDAyBgNVBAoMK0JlaWppbmcgU3lzd2luIEludGVybmV0IFRlY2hub2xvZ3kgQ28uIEx0ZC4xCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtPL6A6upSWHyDFFuPEF+eM9fXXJicMaJU68AqdGVwloKUlS/WXPCDlDOTzL66r0i55eh91YK27WC733/TH0CBOvjT6O0jpPJLBDLzg/pMxlMD2jiKh0EOTdBQdoaDlnDZpQZ+ht5E4UudBYtzvf9C58Sit839RK43mvioZiBp4nMEUlSXRY3/S6gVlwkh4S2Lm7dLSXnX7WcoJBGi/ixXcCcE6vqNdcZ36ngs8lmWM/gJByEGNKzb4kaTkvLileYSo3cguhfrxf7Q1VGKIrL43YzHZ71Pkpeqdy5pTykKZH8RnnXhX65LlCWrJTkQsMO+qfv9tHdpbx360wD4ClkxQIDAQABo4IB4zCCAd8wPwYIKwYBBQUHAQEEMzAxMC8GCCsGAQUFBzABhiNodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDAyLXd3ZHIwMTAdBgNVHQ4EFgQU/jENRTZR9YaB3s7mnzHmn0bzU0YwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSIJxcJqbYYYIvs67r2R1nFUlSjtzCCAQ8GA1UdIASCAQYwggECMIH/BgkqhkiG92NkBQEwgfEwgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wKQYIKwYBBQUHAgEWHWh0dHA6Ly93d3cuYXBwbGUuY29tL2FwcGxlY2EvMA4GA1UdDwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAzATBgoqhkiG92NkBgEEAQH/BAIFADANBgkqhkiG9w0BAQUFAAOCAQEAmeGtWRppAcYdOe7l6hEdzlQE1YT2BztljaLW38hkrhVU+omaaF8LEb3F58fZxSCOteEsaiyTkq9lgt/3wKbmzPVFW379az1+sxnk5sb+PHCrg7BvfVIlB9/1CljxYuGwwOWKkLL6MP/sAFInrBJkDYWt3NHvpe1aH0bT/3rVW2bkV4LWfcJlVPtGzAGNYOr4itL4wma3h9ryvVQb1Eiy+RWbn//QmJGavkuICh3cJ25/ywUR6sLMsIQLMyt+GcZdUMioXJn5RqDxSDlB3wArJkav2CDP7QN83m/bbplKdph+e/r0jRoHCTXPs2A4xnIkUIQJNkGGvdDvc0AFcV+kNQ==</data>
</array>
<key>Entitlements</key>
<dict>
<key>keychain-access-groups</key>
<array>
<string>TLWP697Z5D.*</string>
</array>
<key>get-task-allow</key>
<false/>
<key>application-identifier</key>
<string>TLWP697Z5D.com.systoon.enterprise.milintoon</string>
<key>com.apple.developer.associated-domains</key>
<string>*</string>
<key>com.apple.security.application-groups</key>
<array>
</array>
<key>com.apple.developer.team-identifier</key>
<string>TLWP543Z5D</string>
<key>com.apple.external-accessory.wireless-configuration</key>
<true/>
<key>aps-environment</key>
<string>production</string>
</dict>
<key>ExpirationDate</key>
<date>2019-06-06T03:36:47Z</date>
<key>Name</key>
<string>com.markday.enterprise.test</string>
<key>ProvisionsAllDevices</key>
<true/>
<key>TeamIdentifier</key>
<array>
<string>TLWP697Z5D</string>
</array>
<key>TeamName</key>
<string>Beijing MarkDay Internet Technology Co. Ltd.</string>
<key>TimeToLive</key>
<integer>365</integer>
<key>UUID</key>
<string>d73234ec-9178-4f26-a0b8-c89ca2bbea6d</string>
<key>Version</key>
<integer>1</integer>
</dict>
</plist>%
這里面就有UUID只洒、TeamName等信息
描述文件存放的位置
/Users/用戶名稱/Library/MobileDevice/Provisioning Profiles
查看工程的信息
xcodebuild -list
輸出如下
Information about project "Toon":
Targets:
Toon
ToonTests
TNAOrgTest
TNGroupChatTests
TNShareExtension
Build Configurations:
Debug
Debug_Automation_Test
Release
If no build configuration is specified and -scheme is not passed then "Release" is used.
Schemes:
jiaoyutong
menchengtong
milin
TNAOrgTest
TNShareExtension
Toon
ToonTests