One of the joys of developing for the iPhone is the need to renew the various certificates from time to time. This starts out easy enough but can soon get complicated when you need to manage developer certificates, provisioning profiles and maybe Apple Push Notification certificates for development, distribution and ad hoc distribution builds. Since these certificates all expire at different times you quickly become a frequent visitor to the Apple iPhone Provisioning Portal.
Renewing Development Provisioning Profiles
The development provisioning profiles expire every 3 months so even if you never submit an application to the App Store you have to deal with renewing this certificate. There is normally plenty of warning that it will expire since your test device will pop up warning messages for several weeks before the expiration. Once the profile has expired the application will no longer launch on the device and if you attempt to build and install the app from Xcode you will get the following build error:
Code Sign error: Provisioning profile 'App-name' has expired
A good place to see in advance when the profiles will expire on a device is within the Settings application. Under General > Profiles you should see a list of all profiles installed on the device. Selecting an individual profile will show when it was installed and when it will expire. You can also remove the profile from this screen. You can see similar detail from the Xcode organizer window when the device is attached.
To renew the profile you need to visit the iPhone Provisioning Portal. From the iPhone Provisioning Profiles page you should see the profile with a status of Expired and a Renew button under Actions as follows:
Clicking Renew changes the status to Pending and with a refresh of the page it should already have changed to Active. You can now download it and save it. I keep a directory called keys under my project directory where I store all of that projects keys so that they also get checked into the source code repository. Within the keys directory I create three separate sub-directories for Development, Distribution and Ad Hoc keys to store the provisioning profile and any push certificates for each build.
With the new provisioning profile downloaded it needs to be installed. Open the Xcode Organizer window (^O) and drag the new profile onto the Provisioning Profiles page. You should also delete the old, expired profile which should be showing up with a red cross next to it in the list of profiles.
At this point the project should build without error and install on the test device. If it doesn’t check the code signing section of the target Build settings and make sure the correct profile is being used. One other error that I have seen when installing a new provisioning profile is a security policy error when Xcode attempts to install the application on the device:
Error launching remote program: security policy error.
This can happen when the device has two provisioning profiles for the same application installed. If you get this error check the profiles installed on the devices with the Settings application (General > Profiles). If you still see the old, expired profile select it and remove it. The application should now install correctly.
If you are still getting problems at this point it is always worth doing a complete clean and rebuild (Build –> Clean All Targets) or finally quitting Xcode and with the Finder delete the build directory for your application. Both of these have resolved strange provisioning errors for me in the past.
相关推荐
功能使用certbot工具,为不能自动给letencrypt通配符证书自动续期(更新)而烦恼吗?这个工具能够帮忙!不论是申请还是续期,只要是通配符证书,只能采用dns-01的方式验证申请者的域名,即certbot操作者必须手动添加...
Mishear 查找给定单词的可能信息。 安装 npm install mishear (这可能需要一段时间,因为其依赖项... ['RUINING', 'RAINING', 'REIGNING', 'RENEWING'] 您可以createMishear所需方式配置的实例传递给createMishear
在本项目中,我们面临一个典型的二分类问题——"Travel-Insurance-Claim-Prediction",目标是构建一个机器学习模型来预测旅行保险购买者是否会在未来申领保险赔偿。这个任务对于保险公司至关重要,因为它可以帮助...
5. pre-output creation, renewing SQL script. 6. providing data import and export capabilities; Supporting for two-way edition, which inputting and outputting from Excel. 7. Supporting the Programming...
5. pre-output creation, renewing SQL script. 6. providing data import and export capabilities; Supporting for two-way edition, which inputting and outputting from Excel. 7. Supporting the Programming...
4. **非自动续订订阅(Non-Auto-Renewing Subscription)**: 用户需要手动续订的服务,通常用于短期订阅或特殊事件。 5. **免费试用订阅(Free Trial Subscription)**: 允许用户在一定时间内免费体验订阅服务,之后...
- 非自动续期订阅(Non-Renewing Subscriptions):不自动续订,需要用户手动续费。 - 共享家庭组购买(Family Sharing with Ask to Buy):允许家庭成员共享购买,但儿童需请求家长批准。 2. **内购流程** - ...
14.5 Renewing old timestamps 379 14.6 Multicollisions 380 14.7 Steganography 384 15.1 State transitions 393 15.2 Partial correctness 394 15.3 Propositional logic 396 15.4 First-order logic 397 ...
本文主要探讨了一种名为SRMC(Self-Renewing Mask Circuit,自更新掩模电路)的多位忆阻器交叉开关架构,该架构被提出以解决深度卷积神经网络(DCNN)在预处理阶段所面临的高内存/通信负担问题。深度学习中的预处理...
4. "renewing-the-nikko-turbo-2-rc-car-e4336e.pdf":这可能是一个PDF文档,详细介绍了如何更新或修复Nikko Turbo 2 RC汽车的步骤,包括可能的技术指南、材料清单和注意事项。 综上所述,这个项目涉及了以下知识点...