![](/img/trans.png)
[英]xcode is creating generic xcode archive instead of iOS App Archive
[英]Xcode creating generic Xcode archive instead of iOS App Archive?
我正在嘗試將我的應用程序上傳到應用程序商店連接,但我無法驗證我的應用程序。 我還看到標識符和其他信息沒有顯示。 為什么是這樣? 這是個問題嗎? 如果我可以改變這個,怎么辦? [![在此處輸入圖片描述][1]][1]
我已經嘗試了在 [這里][2] 中找到的投票 2+ 的東西。
櫃面其相關:我正在使用一個項目與 cocoapods
XML 用於 info.plist:
<?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>ArchiveVersion</key>
<integer>2</integer>
<key>CreationDate</key>
<date>2019-09-01T20:47:53Z</date>
<key>Name</key>
<string>FinalAppPrj</string>
<key>SchemeName</key>
<string>FinalAppPrj</string>
</dict>
</plist>
[![在此處輸入圖片描述][3]][3]
為什么是這樣?
這通常發生在 xCode 無法創建用於分發的有效存檔時,因此它只會在管理器的“其他項目”中創建為“通用 Xcode 存檔”。
這是個問題嗎?
是的,因為您將無法將其提交到 Apple Store Connect。 您不能打包通用檔案,也不能提交它們以供審核。
如果我可以改變這一點,如何改變?
首先,我們需要檢查項目設置:
Target > Manage Schemes...
檢查您當前的目標是否是選中了Shared
標志的有效項目Target > Edit Scheme...
檢查目標是否是唯一啟用存檔的目標。 還要檢查分析和存檔選項卡是否在構建配置中選擇了發布Product > Analyze
( Shift + command + B
) 中,檢查是否沒有錯誤。 您可以在導航器面板上的最后一個圖標中訪問報告:我檢查了此鏈接上的所有 2 個投票答案,它們主要涵蓋了所有可能的解決方案,但我想仔細檢查Apple 的支持頁面疑難解答:
1) 您的存檔包含頭文件。
如果您使用的是靜態庫,請檢查是否存在 Headers 構建階段。 如果是這樣,請刪除此階段,將Copy Files build phase
添加到您的庫中,並使用它導出您的頭文件。
2) 您的存檔包含靜態庫或框架。
在這種情況下,庫和框架需要將標志skip install
設置為YES
然后嘗試再次存檔。
如果沒有一個解決方案有效,這里有一個解決方法,包括手動修改存檔.plist
文件並添加缺少的信息。 它可以訪問:
您的有效.plist
文件將如下所示:
只需將PASTE_YOUR_BUNDLE_IDENTIFIER_HERE
替換為您的包標識符,將PASTE_YOUR_CERTIFICATE_NAME_HERE
為您的證書名稱,將PASTE_YOUR_CERTIFICATE_ID_HERE
為您的證書 ID,將PASTE_YOUR_TEAM_ID_HERE
為您的團隊 ID。
<?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>ApplicationProperties</key>
<dict>
<key>ApplicationPath</key>
<string>Applications/FinalAppPrj.app</string>
<key>CFBundleIdentifier</key>
<string>PASTE_YOUR_BUNDLE_IDENTIFIER_HERE</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>SigningIdentity</key>
<string>iPhone Distribution: PASTE_YOUR_CERTIFICATE_NAME_HERE (PASTE_YOUR_CERTIFICATE_ID_HERE)</string>
<key>Team</key>
<string>PASTE_YOUR_TEAM_ID_HERE</string>
</dict>
<key>ArchiveVersion</key>
<integer>2</integer>
<key>CreationDate</key>
<date>2019-09-01T20:47:53Z</date>
<key>Name</key>
<string>FinalAppPrj</string>
<key>SchemeName</key>
<string>FinalAppPrj</string>
</dict>
</plist>
要檢查證書名稱和 ID,最簡單的方法是打開Keychain Access.app
(Mac Finder > Applications > Utilities > Keychain Access.app
),找到證書(您可以通過文本“分發”過濾)並查看其詳細信息. 綠色標注的是名稱,紅色標注的是括號內的ID。
然后關閉並重新打開 xCode。 在Window > Organizer
,如果存檔在 iOS Apps 下,那么您可以驗證和分發應用程序。
編輯
要添加 iOS 分發證書,請在 xCode 中單擊xCode > Preferences > Accounts >
選擇團隊並單擊Manage Certificates...
。 在Plus button
您應該會看到 iOS 發行版:
將此證書添加到項目中,檢查鑰匙串是否添加到那里並將其指向 .plist 文件。
當您使用簽名團隊時,您還需要將團隊添加到 .plist。 我用所需的條目更新了 .plist 文件。
我嘗試了@alxlives 所說的所有內容,但沒有幫助。 最后我解決了我的問題:
這是一個小眾答案,但 Xcode 13.4.1 和 13.4.2 似乎存在問題,導致存檔成為通用的並且“驗證應用程序”按鈕被禁用。
在 Shopify Github 上發現了 13.4.1 的構建錯誤,我注意到使用 13.4.2 構建 Qt 應用程序的問題
升級到 Xcode 14.2 為我解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.