

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對 AWS Device Farm 中的 iOS 應用程式測試進行故障診斷
<a name="troubleshooting-ios-applications"></a>

下列主題會列出在上傳 iOS 應用程式測試期間出現的錯誤訊息，並建議解決每個錯誤的解決方法。

**注意**  
以下說明以 Linux x86\_64 和 Mac 為基礎。

## IOS\_APP\_UNZIP\_FAILED
<a name="IOS_APP_UNZIP_FAILED"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
無法開啟您的應用程式。請確認檔案是否有效，然後再試一次。

請確認您可以正確解壓縮應用程式套件。在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   有效的 iOS 應用程式套件應產生如下輸出：

   ```
   .
   `-- Payload (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- Info.plist
                         `-- (any other files)
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_PAYLOAD\_DIR\_MISSING
<a name="IOS_APP_PAYLOAD_DIR_MISSING"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
在應用程式中找不到承載目錄。請解壓縮您的應用程式，確認承載目錄位於套件中，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   如果 iOS 應用程式套件是有效的，您可以在工作目錄中找到{{承載}}目錄。

   ```
   .
   `-- {{Payload}} (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- Info.plist
                         `-- (any other files)
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_APP\_DIR\_MISSING
<a name="IOS_APP_APP_DIR_MISSING"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
在承載目錄中找不到 .app 目錄。請解壓縮您的應用程式，開啟承載目錄，確認目錄中有 .app 目錄，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   如果 iOS 應用程式套件有效，您會在{{承載}}目錄內的範例中找到 {{.app}} 目錄，例如 {{AWSDeviceFarmiOSReferenceApp.app}} 

   ```
   .
   `-- Payload (directory)
           `-- {{AWSDeviceFarmiOSReferenceApp.app}} (directory)
                         |-- Info.plist
                         `-- (any other files)
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_PLIST\_FILE\_MISSING
<a name="IOS_APP_PLIST_FILE_MISSING"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
在 .app 目錄中找不到 Info.plist 檔案。請解壓縮您的應用程式，開啟 .app 目錄，確認目錄中有 Info.plist 檔案，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   如果 iOS 應用程式套件有效，您會在範例中的 .{{app}} 目錄中找到 {{Info.plist}} 檔案，例如 {{AWSDeviceFarmiOSReferenceApp.app}}。

   ```
   .
   `-- Payload (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- {{Info.plist}}
                         `-- (any other files)
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_CPU\_ARCHITECTURE\_VALUE\_MISSING
<a name="IOS_APP_CPU_ARCHITECTURE_VALUE_MISSING"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
在 Info.plist 檔案中找不到 CPU 架構值。請解壓縮您的應用程式，開啟 .app 目錄中的 Info.plist 檔案，確認已指定金鑰「UIRequiredDeviceCapabilities」，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   您應該會在範例中的 {{.app}} 目錄中找到 {{Info.plist}} 檔案，例如 {{AWSDeviceFarmiOSReferenceApp.app}}：

   ```
   .
   `-- Payload (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- {{Info.plist}}
                         `-- (any other files)
   ```

1. 若要找到 CPU 架構值，您可以使用 Xcode 或 Python 開啟 Info.plist。

   若您是使用 Python，則可透過執行下列命令安裝 biplist 模組：

   ```
   $ pip install biplist
   ```

1. 接著，開啟 Python 並執行下列命令：

   ```
   import biplist
   info_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')
   print info_plist['UIRequiredDeviceCapabilities']
   ```

   有效的 iOS 應用程式套件應產生如下輸出：

   ```
   ['armv7']
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_PLATFORM\_VALUE\_MISSING
<a name="IOS_APP_PLATFORM_VALUE_MISSING"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
在 Info.plist 檔案中找不到平台值。請解壓縮您的應用程式，開啟 .app 目錄中的 Info.plist 檔案，確認已指定金鑰「CFBundleSupportedPlatforms」，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   您應該會在範例中的 {{.app}} 目錄中找到 {{Info.plist}} 檔案，例如 {{AWSDeviceFarmiOSReferenceApp.app}}：

   ```
   .
   `-- Payload (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- {{Info.plist}}
                         `-- (any other files)
   ```

1. 若要找到平台架構值，您可以使用 Xcode 或 Python 開啟 Info.plist。

   若您是使用 Python，則可透過執行下列命令安裝 biplist 模組：

   ```
   $ pip install biplist
   ```

1. 接著，開啟 Python 並執行下列命令：

   ```
   import biplist
   info_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')
   print info_plist['CFBundleSupportedPlatforms']
   ```

   有效的 iOS 應用程式套件應產生如下輸出：

   ```
   ['iPhoneOS']
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_WRONG\_PLATFORM\_DEVICE\_VALUE
<a name="IOS_APP_WRONG_PLATFORM_DEVICE_VALUE"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
Info.plist 檔案中的平台裝置值錯誤。請解壓縮您的應用程式，開啟 .app 目錄中的 Info.plist 檔案，確認金鑰「CFBundleSupportedPlatforms」的值未包含關鍵字「simulator」，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   您應該會在範例中的 {{.app}} 目錄中找到 {{Info.plist}} 檔案，例如 {{AWSDeviceFarmiOSReferenceApp.app}}：

   ```
   .
   `-- Payload (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- {{Info.plist}}
                         `-- (any other files)
   ```

1. 若要找到平台架構值，您可以使用 Xcode 或 Python 開啟 Info.plist。

   若您是使用 Python，則可透過執行下列命令安裝 biplist 模組：

   ```
   $ pip install biplist
   ```

1. 接著，開啟 Python 並執行下列命令：

   ```
   import biplist
   info_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')
   print info_plist['CFBundleSupportedPlatforms']
   ```

   有效的 iOS 應用程式套件應產生如下輸出：

   ```
   ['iPhoneOS']
   ```

   如果 iOS 應用程式是有效的，值應不包含關鍵字 `simulator`。

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_FORM\_FACTOR\_VALUE\_MISSING
<a name="IOS_APP_FORM_FACTOR_VALUE_MISSING"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
在 Info.plist 檔案中找不到表單係數值。請解壓縮您的應用程式，開啟 .app 目錄中的 Info.plist 檔案，確認已指定金鑰「UIDeviceFamily」，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   您應該會在範例中的 {{.app}} 目錄中找到 {{Info.plist}} 檔案，例如 {{AWSDeviceFarmiOSReferenceApp.app}}：

   ```
   .
   `-- Payload (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- {{Info.plist}}
                         `-- (any other files)
   ```

1. 若要找到表單係數值，您可以使用 Xcode 或 Python 開啟 Info.plist。

   若您是使用 Python，則可透過執行下列命令安裝 biplist 模組：

   ```
   $ pip install biplist
   ```

1. 接著，開啟 Python 並執行下列命令：

   ```
   import biplist
   info_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')
   print info_plist['UIDeviceFamily']
   ```

   有效的 iOS 應用程式套件應產生如下輸出：

   ```
   [1, 2]
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_PACKAGE\_NAME\_VALUE\_MISSING
<a name="IOS_APP_PACKAGE_NAME_VALUE_MISSING"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
在 Info.plist 檔案中找不到套件名稱值。請解壓縮您的應用程式，開啟 .app 目錄中的 Info.plist 檔案，確認已指定金鑰「CFBundleIdentifier」，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   您應該會在範例中的 {{.app}} 目錄中找到 {{Info.plist}} 檔案，例如 {{AWSDeviceFarmiOSReferenceApp.app}}：

   ```
   .
   `-- Payload (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- {{Info.plist}}
                         `-- (any other files)
   ```

1. 若要找到套件名稱值，您可以使用 Xcode 或 Python 開啟 Info.plist。

   若您是使用 Python，則可透過執行下列命令安裝 biplist 模組：

   ```
   $ pip install biplist
   ```

1. 接著，開啟 Python 並執行下列命令：

   ```
   import biplist
   info_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')
   print info_plist['CFBundleIdentifier']
   ```

   有效的 iOS 應用程式套件應產生如下輸出：

   ```
   Amazon.AWSDeviceFarmiOSReferenceApp
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。

## IOS\_APP\_EXECUTABLE\_VALUE\_MISSING
<a name="IOS_APP_EXECUTABLE_VALUE_MISSING"></a>

如果您看到下列訊息，請依照以下步驟修復問題。

**警告**  
在 Info.plist 檔案中找不到可執行的值。請解壓縮您的應用程式，開啟 .app 目錄中的 Info.plist 檔案，確認已指定金鑰「CFBundleExecutable」，然後再試一次。

在下列範例中，套件的名稱為 **AWSDeviceFarmiOSReferenceApp.ipa**。

1. 將您的應用程式套件複製到工作目錄，然後執行下列命令：

   ```
   $ unzip AWSDeviceFarmiOSReferenceApp.ipa
   ```

1. 成功解壓縮套件後，您可以透過執行下列命令找到樹狀結構的工作目錄：

   ```
   $ tree .
   ```

   您應該會在範例中的 {{.app}} 目錄中找到 {{Info.plist}} 檔案，例如 {{AWSDeviceFarmiOSReferenceApp.app}}：

   ```
   .
   `-- Payload (directory)
           `-- AWSDeviceFarmiOSReferenceApp.app (directory)
                         |-- {{Info.plist}}
                         `-- (any other files)
   ```

1. 若要找到可執行的值，您可以使用 Xcode 或 Python 開啟 Info.plist。

   若您是使用 Python，則可透過執行下列命令安裝 biplist 模組：

   ```
   $ pip install biplist
   ```

1. 接著，開啟 Python 並執行下列命令：

   ```
   import biplist
   info_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')
   print info_plist['CFBundleExecutable']
   ```

   有效的 iOS 應用程式套件應產生如下輸出：

   ```
   AWSDeviceFarmiOSReferenceApp
   ```

   如需詳細資訊，請參閱[AWS Device Farm 中的 iOS 測試](test-types-ios-tests.md)。