小编Mik*_*ler的帖子

iOS构建/ ipa创建不再适用于命令行

概观

我们的命令行构建(构建和创建.ipa)不再有效.

iTunesConnect已开始拒绝使用CODE_SIGN_RESOURCE_RULES_PATH构建设置的构建.

如果我们构建没有该设置,则PackageApplication工具(我们用于创建签名的.ipa)失败.

似乎PackageApplication使用resource-rules参数调用/ usr/bin/codesign,即使CODE_SIGN_RESOURCE_RULES_PATH排除了构建设置也是如此

我怀疑PackageApplication需要更新,以便在CODE_SIGN_RESOURCE_RULES_PATH排除构建设置时不会使用resource-rules参数调用/ usr/bin/codesign .

有人找到了解决方案吗?

细节

我们在命令行上构建我们的应用程序,如下所示:

xcodebuild -workspace myApp.xcworkspace -scheme myApp -sdk iphoneos -configuration AppStoreDistribution OBJROOT=$PWD/build SYMROOT=$PWD/build ONLY_ACTIVE_ARCH=NO 'CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist'
Run Code Online (Sandbox Code Playgroud)

我们在命令行上创建签名的.ipa,如下所示:

xcrun -log -sdk iphoneos PackageApplication "/Users/mpv/dev/myApp/build/AppStoreDistribution-iphoneos/myApp.app" -o "/Users/mpv/dev/myApp/build/AppStoreDistribution-iphoneos/myApp.ipa" -sign "iPhone Distribution: MyTeam (XXXXXXXXXX)" -embed /Users/mpv/Library/MobileDevice/Provisioning\ Profiles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.mobileprovision
Run Code Online (Sandbox Code Playgroud)

iTunesConnect现在拒绝我们的构建,并出现以下错误:

"此捆绑包无效.Info.plist包含myApp [myApp.app]包中的无效密钥'CFBundleResourceSpecification'"

如果我们'CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist'从构建命令中删除该位,那么应用程序是在没有CFBundleResourceSpecificationplist键的情况下构建的(我认为这是我们想要的).新的构建命令如下所示:

xcodebuild -workspace myApp.xcworkspace -scheme myApp -sdk iphoneos -configuration AppStoreDistribution OBJROOT=$PWD/build SYMROOT=$PWD/build ONLY_ACTIVE_ARCH=NO 
Run Code Online (Sandbox Code Playgroud)

现在的问题是构建.ipa的命令失败,出现以下错误:

错误:/ usr/bin/codesign --force --preserve-metadata = identifier,entitlements,resource-rules --sign iPhone Distribution:MyTeam(XXXXXXXXXX)--resource-rules =/var/folders/2b/7hylk7nn13dgrl9yyh2wp0lm0000gn/T /zDRRJMkKtQ/Payload/myApp.app/ResourceRules.plist …

xcode xcodebuild ios

33
推荐指数
2
解决办法
2万
查看次数

如何使用容器过渡的自动布局?

如何使用UIViewController容器转换方法使用自动布局:

-(void)transitionFromViewController:(UIViewController *)fromViewController
                   toViewController:(UIViewController *)toViewController 
                           duration:(NSTimeInterval)duration
                            options:(UIViewAnimationOptions)options
                         animations:(void (^)(void))animations
                         completion:(void (^)(BOOL finished))completion;
Run Code Online (Sandbox Code Playgroud)

传统上,使用Springs/Struts,您可以设置初始帧(在调用此方法之前),并在传递给方法的动画块中设置最终帧.

该方法可以将视图添加到视图层次结构并为您运行动画.

问题是您不能在同一位置(在方法调用之前)添加初始约束,因为视图尚未添加到视图层次结构中.

任何想法我如何使用此方法以及自动布局?

以下是使用Springs/Struts(框架)执行此操作的示例(谢谢cocoanetics) http://www.cocoanetics.com/2012/04/containing-viewcontrollers

- (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController
{

    // XXX We can't add constraints here because the view is not yet in the view hierarchy
    // animation setup 
    toViewController.view.frame = _containerView.bounds;
    toViewController.view.autoresizingMask = _containerView.autoresizingMask;

    // notify
    [fromViewController willMoveToParentViewController:nil];
    [self addChildViewController:toViewController];

    // transition
    [self transitionFromViewController:fromViewController
                      toViewController:toViewController
                              duration:1.0
                               options:UIViewAnimationOptionTransitionCurlDown
                            animations:^{
                            }
                            completion:^(BOOL finished) {
                                [toViewController didMoveToParentViewController:self];
                                [fromViewController removeFromParentViewController];
                            }];
}
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller ios autolayout

31
推荐指数
3
解决办法
8461
查看次数

Xcode构建失败,出现"致命错误:AST文件格式错误或损坏"Crashlytics.h

我最近在我的Xcode项目构建设置中启用了模块("启用模块(C和Objective-C)"),现在我经常遇到以下构建错误.它在我下次构建时工作(没有任何变化),但它很烦人,因为它经常发生(一小时几次).

致命错误:AST文件格式错误或损坏:'无法找到文件'/Users/mpv/dev/project/Crashlytics.framework/Headers/Crashlytics.h'由AST文件引用'注意:修改系统头后,请删除模块缓存在'/ Users/mpv/Library/Developer/Xcode/DerivedData/ModuleCache/M5WJ0FYE7N06'

Crashlytics建议从预编译的头文件(.pch)中删除Crashlytics.h,并直接导入需要它的每个源文件中.这大大减少了问题,但我仍然偶尔会在构建时发现Crashlytics.h文件未找到错误.

fatal error: 'Crashlytics/Crashlytics.h' file not found
#import <Crashlytics/Crashlytics.h>
Run Code Online (Sandbox Code Playgroud)

xcode objective-c crashlytics

23
推荐指数
1
解决办法
1万
查看次数