iOS 测试 xcodebuild 命令行打包遇到的坑与解决方案 2017

第一个问题

** INTERNAL ERROR: Uncaught exception **
Uncaught Exception: -[__NSCFString objectForKeyedSubscript:]: 
unrecognized selector sent to instance 0x7fd4c8e38fd0

原因分析:Export Options plist文件里的格式不对,导致参数无法识别
解决方案:修改Export Options plist文件里的格式

第二个问题:

error: exportArchive: "Cicada.app" requires a provisioning profile.
Error Domain=IDEProvisioningErrorDomain Code=9 ""Cicada.app" requires a provisioning profile." 
UserInfo={NSLocalizedDescription="Cicada.app" requires a provisioning profile., 
NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" 
dictionary in your Export Options property list.}

原因分析:取不到provisioningProfiles的信息
解决方案:在Export Options plist文件里添加以下内容

<key>provisioningProfiles</key>
    <dict>
        <key>com.lianjia.name</key>
        <string>{iOS Provisioning Profiles Name}</string>
    </dict>

解释:com.lianjia.name -> APP对应bundleID
{iOS Provisioning Profiles} -> iOS Provisioning Profiles 对应的Name

 

第三个问题
NSLocalizedDescription=Provisioning profile "General" doesn't include signing certificate "iPhone Developer: ******".}

原因分析:Provisioning Profiles文件未更新
解决方案: 资源库---->MobileDevice---->Provisioning Profiles,将里面的齿轮文件全部删除,然后到Xcode下的Preferences下Account重新下载新的齿轮文件以及证书即可

第四个问题

Error Domain=IDEProfileLocatorErrorDomain Code=4 "No "iOS App Development" profiles for team '*****' matching '1825adbe-226c-401e-940d-d3dcede386*' are installed." UserInfo={NSLocalizedDescription=No "iOS App Development" profiles for team '*****' matching '1825adbe-226c-401e-940d-d3dcede386a*' are installed., NSLocalizedRecoverySuggestion=Install a profile (by dragging and dropping it onto Xcode's dock item) or specify a different profile in your Export Options property list.}

原因分析:因为解决上一个问题的时候删除了Provisioning Profiles文件,起初设置的profile的UUID,导致设置的对应的Profiles UUID找不到了
解决方案:修改Export Options plist文件里的provisioningProfiles,改为profile name即可,可避免UUID每次更新后都会变的问题

所使用的打包命令:

  1. 进入build路径clean一下你的工程
    xcodebuild clean -workspace ${TARGET_NAME}.xcworkspace -scheme ${TARGET_NAME} -configuration ${BUILD_TYPE}

  2. archive导出.xcarchive文件
    xcodebuild archive -workspace ${TARGET_NAME}.xcworkspace -scheme ${TARGET_NAME} -archivePath {ARCHIVEPATH}

  3. 导出ipa包
    xcodebuild -exportArchive -archivePath "${ARCHIVEPATH}/${TARGET_NAME}.xcarchive" -exportPath ${EXPORTPATH} -exportOptionsPlist ${EXPORTOPTIONSPLIST}

解释:

  1. ${TARGET_NAME} 项目对应targets的名字
  2. ${BUILD_TYPE} 打包类型 Debug,Release 等
  3. ${archivePath} .xcarchive文件导出目录
  4. ${EXPORTPATH} 导出.ipa包的目录
  5. ${EXPORTOPTIONSPLIST} exportOptionsPlist文件所在目录,可判断development, ad-hoc等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要进行uniapp在iOS上的测试打包,可以按照以下步骤进行操作: 1. 确保你已经在自己的电脑上安装了Xcode开发工具。如果没有安装,可以通过Mac App Store进行下载和安装。 2. 打开你的uniapp项目,在命令行工具中进入项目的根目录。 3. 运行以下命令来安装依赖项:`npm install`。 4. 在命令行中运行以下命令来添加iOS平台支持:`uni-app add --platform ios`。 5. 继续运行以下命令来生成iOS项目文件:`uni-app build --platform ios`。 6. 进入生成的iOS项目文件夹,路径为`/uni-app/uni-app.xcodeproj`。 7. 双击打开Xcode项目文件。 8. 在Xcode中选择你要测试的模拟器设备或者连接真实iOS设备进行测试。 9. 点击Xcode菜单栏中的"Product",然后选择"Run"来运行你的uniapp项目。 10. 等待Xcode完成编译和打包的过程。 11. 运行成功后,在你选择的模拟器设备上或者真实iOS设备上,将会打开你的uniapp应用程序。 通过以上步骤,你可以在iOS平台上进行uniapp项目的测试打包,并在模拟器设备或者真实iOS设备上进行应用程序的测试。 ### 回答2: 使用UniApp进行iOS测试打包的步骤如下: 1. 首先,在UniApp项目的根目录下找到`manifest.json`文件,确保文件中的`"app-plus"`节点下的`"ios"`子节点中,`"bundleID"`字段的值是你打算用来打包应用的唯一标识符(Bundle Identifier)。 2. 然后,在终端中进入项目根目录,执行`npm run dev:mp-ios`命令,以运行iOS版的UniApp。 3. 运行成功后,会在项目根目录下生成一个`unpackage`文件夹,这个文件夹中包含了iOS版的UniApp源码和资源文件。 4. 打开终端,进入`unpackage`文件夹所在的路径,并执行`cd ios`命令,进入iOS工程目录。 5. 在iOS工程目录中,执行`pod install`命令,安装UniApp SDK的依赖库。 6. 安装完成后,使用Xcode打开iOS工程的`.xcworkspace`文件。 7. 在Xcode中,选择正确的设备和目标,点击运行按钮。这将会在模拟器或连接的iOS设备上安装并运行UniApp应用。 8. 在Xcode的菜单中,选择`Product -> Archive`,开始打包UniApp应用。 9. 打包完成后,Xcode将弹出打包工具的窗口,你可以选择导出为.ad-hoc包、企业包、App Store包等不同类型的包。 以上就是使用UniApp进行iOS测试打包的基本步骤。请注意,在进行打包前,确保你已经安装了Xcode和相应的开发者证书,并选择了正确的开发者账号。另外,根据不同的需求,你可能需要对Xcode工程进行进一步的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值