今天用iOS7设备跑debug时发现app无法安装到设置上,并且Xcode会弹出一个显示 There was an internal API error.
错误的提示框.
搜了一圈发现几个可能因素:
1. 工程中的 Product Name
是中文导致的.
在Build Setting
中搜索Product Name
,修改成纯英文.
Build Settings
中搜索Packaging/Private Headers Folder Path
和Product Module Name
,检查下名字是否为Product Name
名.
试过以上两个之后 发现问题并没有解决, 于是我将 Main Scheme
的名字和 targetName
也改成英文,但没有起作用,然而此时, 运行项目最后报错
error: cannot parse the debug map for
"/Users/apple/Library/Developer/Xcode/DerivedData/xxx/your_app_name.app/your_app_name": Is a directory
看到这个之后, 我喜出望外, 进入到这个目录下, 发现确实存在 your_app_name
这个文件夹,而此文件夹是我们工程里的一个资源文件夹... 于是再次将 Product Name
修改为另一个英文名.随即运行通过.
总结
工程的相关命名一定要规范:
1. Product Name
要为英文, 避免上文中那种麻烦.
2. 工程的名字最好为英文,同时名字中务必不要带空格. 此举是避免在 Search path
中会将空格转义为 \
,因此导致一些文件无法被正确加载的问题.
3. targetName
, Scheme
的名字务必为英文. 虽然在上文中的问题与这俩并没有关系, 但是在之前我用 jenkins
构建自动部署的时候, 工程的 Workspace
的 Main Scheme
如果为中文的话, 总是会出现构建失败的问题, 虽然在之后的版本中 jenkins
已经没有了这个问题, 但是出于谨慎和规范起见, 这些名称都应该使用英文.