There was an internal api err.. & The entitlements specified in your application’s Code Signing...

来源:互联网 发布:it维修单 编辑:程序博客网 时间:2024/06/06 03:20
自己写的小demo,引入的一些地图库,准备在真机上进行调试的时候。

出现错误1There was an internal API error 错误

 搜罗了一些网上的资料记录下来:

错误原因:把Product Name作为程序名称,程序名称错乱

解决方法:检查Product Name, 不要包含中文以及特殊字符。在info.plist中新增Bundle display name:我的程序名称。程序名称改为英文,Product Name也改为一样的。 

------------------------

当我们改了工程的名称之后,运行程序时,提示找不到app。原因如下:

1.由于一个工程里有两个target,暂且称为target A和target B吧!在更改了工程名后,在模拟器中运行时就报以下错误:

ld: file not found: /Users/xxx/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphonesimulator/xxx.app/xxx

clang: error: linker command failed with exit code 1 (use -v to see invocation)

2.有可能是项目名不同造成的,建议按下面的路径更改项目名,

Build Setting----》Product Name---

如果检查工程发现,项目名没问题。

 

3.下面是另一种解决方案:

Xcode/Build Settings/Packaging/Private Headers Folder Path路径和Product Module Name 下的名字改为你的项目名称就可以了

检查工程后发现,这个也是没错的。

 

4.经过几番曲折,然后发现是由于工程中的target A和target B管理混乱的问题。按下面路径

Product —> Scheme —> Manage Schemes

打开schemes管理面板,然后删除该删除的,关联该关联的,问题就解决了。

我在项目中修改了 build setting -> Product Name  为英文后 这个错误解决了 。再次运行 报了另一个错误The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.

看了看错误 大致能明白code sign entitlements 不匹配配置证书。于是又疯狂的查找解决办法

推酷上有两种解决办法

(1)删掉在Targets中的Info中的Build选项卡中的Code Signing Entitlements的值。

(2)新建一个plist,让它成为Code Signing Entitlements值的那个文件。

具体:

第一步:在工程中添加文件new file,选择Code Signing 中的Entitlements,添加后名称为Entitlements.plist。

第二步:点击Entitlements.plist进行编辑,删除所有Root下的Key,然后添加一个Boolean类型,名称为get-task-allow的Key,状态为CHECKED。

第三步:在Targets中的Info中的Build选项卡中的Code Signing Entitlements的值设为Entitlements.plist,重新Build即可解决。

可惜这两种办法都不适用,还有另一种办法。

在target -> 上面的选项卡中点击Capabilities ,会出现一栏东西。。对应App Id中的设置,打开对应服务的开关,这时会自动在工程中生成一个“projectname.entitlements”文件。重新Build即可。


0 0
原创粉丝点击